如何在python中转换给定的数学表达式以查找x和y值?
(x-x2)**2 + (y-y2)**2 = d1**2 ====> 1
(x-x3)**2 + (y-y3)**2 = d3**2 ====> 2
By subtracting one from another,
2(x3-x2)x+2(y3-y2)y+(x2**2-x3**2+y2**2-y3**2)=d1**2-d3**2 ====> 3
可以通过将获得的值替换为1或2中的3来找到另一个值。
如何在python中实现该过程?
答案 0 :(得分:1)
我不完全知道您的预期结果,因为我不知道您的变量是什么。通常,使用sympy定义代数:
import sympy as smp
from sympy.solvers.polysys import solve_poly_system
# Define variables
x, x2, x3, y, y2, y3, d, d3 = smp.symbols("x x_2 x_3 y y_2 y_3 d_1 d_3")
# Define equations
eq1 = smp.Eq((x - x2)**2 + (y - y2)**2, d**2)
eq2 = smp.Eq((x - x3)**2 + (y - y3)**2, d3**2)
然后可以使用sympys solvers之一求解方程组。我猜你想要solve_poly_system
答案 1 :(得分:1)
使用sympy因子
import sympy as sp
x, x2, x3, y, y2, y3, d, d3 = sp.symbols("x x2 x3 y y2 y3 d1 d3")
eq1 = (x - x2)**2 + (y - y2)**2- d**2
eq2 = (x - x3)**2 + (y - y3)**2- d3**2
print(sp.factor(eq1-eq2,x,y))
# -d1**2 + d3**2 - x*(2*x2 - 2*x3) + x2**2 - x3**2 - y*(2*y2 - 2*y3) + y2**2 - y3**2