无法使用sympy获取简化坐标-python

时间:2019-06-11 10:10:00

标签: 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)

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中?

1 个答案:

答案 0 :(得分:3)

您可以对求浮点的数值进行数值评估:

In [40]: [[x.evalf(3) for x in s] for s in sol_dict]                                                                              
Out[40]: [[62.2, -78.3], [62.2, 78.3]]

尽管如此,我只建议这样做。如果要使用sol_dict中的值进行进一步的计算,最好将它们保留为精确的有理数。