Как найти значения x и y в python, используя данное математическое выражение? - PullRequest
0 голосов
/ 11 июня 2019

Как я могу преобразовать данное математическое выражение в 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

Еще одно значение можно узнать, подставив полученное значение из 3 в 1 или 2.

Как мне добиться этого в python?

Ответы [ 2 ]

1 голос
/ 11 июня 2019

Использование коэффициента симпии

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
1 голос
/ 11 июня 2019

Я точно не знаю вашего ожидаемого результата, потому что я не знаю, каковы ваши переменные. Как правило, используйте 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

...