2016-12-02 14 views
0

Я хочу функцию python, которая решает данную систему уравнений заданным параметрам. Например:Решение символьного уравнения в python

>>>>foo("""\begin{cases} 
& c^2=\frac{1}{\epsilon_0 \cdot \mu_0}\\ 
& k_E=\frac{1}{4 \cdot \pi \epsilon_0} \\ 
& \epsilon_0=1+\chi_0 
\end{cases}""","\chi_0",("c","\mu_0")) 
#outputs: 
\frac{c^2 \cdot \mu_0-1}{c^2 \cdot \mu_0} 

>>>>foo("""\begin{cases} 
& c^2=\frac{1}{\epsilon_0 \cdot \mu_0}\\ 
& k_E=\frac{1}{4 \cdot \pi \epsilon_0} \\ 
& \epsilon_0=1+\chi_0 
\end{cases}""","\chi_0",("k_E","\pi")) 
#outputs: 
\frac{1-k_E \cdot 4 \cdot \pi}{k_E \cdot 4 \cdot \pi} 

>>>>foo("A+B+C=D","A",("B","C","D")) 
#outputs: 
D-B-C 

Первый аргумент примера функции foo - это уравнение. Второй аргумент - переменная для решения. Третий аргумент - это набор аргументов, которые можно использовать в решении. В примере система уравнений написана в LaTeX, но не важно, на каком языке использует решатель. Должен ли я использовать импортируемый модуль?

ответ

0

Отъезд sympy. Он широко используется для символической обработки по многим проектам, поэтому очень вероятно, что он вас охватывает

В разделе solvers попробуйте linsolve([x + y + z - 1, x + y + 2*z - 3 ], (x, y, z)), он решит проблему x. Если вы хотите решить для y, замените (x,y,z) на (y,x,z) и т. Д.

+0

Я смотрел из документации sympy, но для этого не нашел подходящей функции. – user2952903

+0

Проверьте правильность. Помогает ли это? – themistoklik