Я хочу решить систему уравнений. Но я хочу уметь точно определить значение «получить» и как функцию «что».Решение системы уравнений с Sympy, python2.7
Чтобы лучше понять, я беру Exemple из here, которым я modfified:
import sympy as sp
x, y, z = sp.symbols('x, y, z')
rho, sigma, beta = sp.symbols('rho, sigma, beta')
f1 = sigma * (y - x)
f2 = x * (rho - z) - y
f3 = x * y - beta * z
print sp.solvers.solve((f1, f2, f3), (x, y, z))
в
import sympy as sp
x, y, z, w = sp.symbols('x, y, z, w')
rho, sigma, beta = sp.symbols('rho, sigma, beta')
f1 = sigma * (y - x)
f2 = x * (rho - z) - y
f3 = x * y - beta * w
f4 = z - w
print sp.solvers.solve((f1, f2, f3, f4), (x, y, z))
Итак, как вы можете видеть, я заменяю г на ж в последнем уравнении, и я добавляю новое для точного z = w. Но, sympy (на python 2.7) не может решить эту новую систему уравнений !!
Так что мой вопрос: Как получить результат для x, y, z как функции rho, sigma, beta. И в целом, как мы можем точно определить переменную «переменная ответа».
Я думаю, что это может быть очень полезно, потому что часто вы не хотите разрабатывать свою систему уравнений, прежде чем попросить python решить ее.
Точно так же, если я возьму более сложный пример:
import sympy as sp
x, y, z, w, u = sp.symbols('x, y, z, w, u')
rho, sigma, beta = sp.symbols('rho, sigma, beta')
f1 = sigma * (y - x)
f2 = x * (rho - u) - y
f3 = x * y - beta * w
f4 = z - w
f5 = w - u
print sp.solvers.solve((f1, f2, f3, f4, f5), (x, y, z))
Ответ я получаю:
[]
Но, как вы видите, я г = ш = и Сын, я должен получить тот же ответ!
Спасибо, но это не отвечает на мой вопрос. Точнее, у меня есть 8 уравнений, и я хочу, чтобы выражение переменной 2 было как функция другого. Если взять более сложный пример: импорта SymPy как зр х, у, Z, W, U = sp.symbols ('х, у, Z, W, U') ро, Sigma, бета = sp.symbols ('rho, sigma, beta') f1 = sigma * (y - x) f2 = x * (rho - u) - y f3 = x * y - beta * w f4 = z - w f5 = w - u print sp.solvers.решить ((f1, f2, f3, f4, f5), (х, у, г,)) Ответ я получаю: [] Но, как вы видите, я г = ш = и Son I должен получить тот же ответ! –
Где вы определили 'z = w = u' ?, если я определяю его явно, я получаю такой же ответ. Попробуйте это: 'import sympy as sp x, y, z, w, u = sp.symbols ('x, y, z, w, u') rho, sigma, beta = sp.symbols ('rho, sigma , бета ') г = ш = и f1 = сигма * (у - х) f2 = х * (Rho - и) - у f3 = х * у - бета * W f4 = г - ш f5 = w - u print sp.solvers.solve ((f1, f2, f3, f4, f5), (x, y, z)) ' –
Я изменил вопрос, чтобы быть более понятным. –