如何使用给定的数学表达式在python中找到x和y的值?

时间:2019-06-11 06:24:15

标签: python triangulation

如何在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中实现该过程?

2 个答案:

答案 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