Python 3.x 无法使用Symphy-python获取简化坐标
我有x2,x3,y2,y3,d1,d2,d3的值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 = 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)时,它对我有效