2016-12-02 1 views
0

Je veux une fonction python, qui résout le système donné d'équations à des paramètres donnés. Par exemple:Solveur d'équation symbolique en 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 

Le premier argument de la fonction exemple foo est l'équation. Le deuxième argument est variable à résoudre. Le troisième argument est le tuple d'arguments qui peuvent être utilisés en solution. Dans l'exemple, le système d'équation est écrit en LaTeX, mais peu importe la langue utilisée par le solveur. Dois-je utiliser un module importable?

Répondre

0

Découvrez sympy. Il est largement utilisé pour le traitement symbolique par de nombreux projets, donc il est très probable qu'il vous a couvert

Dans la section solvers essayez linsolve([x + y + z - 1, x + y + 2*z - 3 ], (x, y, z)), il va résoudre pour x. Si vous voulez résoudre pour y remplacer (x,y,z) avec (y,x,z) et ainsi de suite

+0

J'ai regardé de la documentation de sympy, mais je n'ai trouvé aucune fonction appropriée pour cela. – user2952903

+0

Vérifiez l'édition. est-ce que cela aide? – themistoklik