Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 无法使用Symphy-python获取简化坐标_Python 3.x_Sympy - Fatal编程技术网

Python 3.x 无法使用Symphy-python获取简化坐标

Python 3.x 无法使用Symphy-python获取简化坐标,python-3.x,sympy,Python 3.x,Sympy,我有x2,x3,y2,y3,d1,d2,d3的值 x2 = 0 x3 = 100 y2 = 0 y3 = 0 d1 = 100 d2 = 100 d3 = 87 当我使用下面的脚本时 from sympy import symbols, Eq, solve x, y = symbols('x y') eq1 = Eq((x - x2) ** 2 + (y - y2) ** 2 - d2 ** 2) eq2 = Eq((x - x3) ** 2 + (y - y3) ** 2 - d3 ** 2

我有x2,x3,y2,y3,d1,d2,d3的值

x2 = 0
x3 = 100
y2 = 0
y3 = 0
d1 = 100
d2 = 100
d3 = 87
当我使用下面的脚本时

from sympy import symbols, Eq, solve
x, y = symbols('x y')
eq1 = Eq((x - x2) ** 2 + (y - y2) ** 2 - d2 ** 2)
eq2 = Eq((x - x3) ** 2 + (y - y3) ** 2 - d3 ** 2)

sol_dict = solve((eq1, eq2), (x, y))
我得到的答案是

sol_dict = [(12431/200, -87*sqrt(32431)/200), (12431/200, 87*sqrt(32431)/200)]
如何实现简化的解决方案,如

sol_dict = [(62.155, -78.33), (62.155, 78.33)]

在python中?

您可以对解决方案进行数值计算以获得浮点值:

[40]中的
:[[x.evalf(3)表示s中的x]表示s中的s]
出[40]:[62.2,-78.3],[62.2,78.3]]

不过,我只建议您在展示时这样做。如果您想使用sol_dict中的值进行进一步的计算,最好将它们保留为精确的有理数。

请尝试对从Symphy获得的每个数字调用
.evalf()
。@ForceBru,谢谢您的建议。当我将等式((x-x2)**2+(y-y2)**2-d2**2)更改为等式((x-x2)**2+(y-y2)**2-d2**2)时,它对我有效