Quelle est la (meilleure) façon de résoudre une paire d'équations non linéaires en utilisant Python. (Numpy, Scipy ou Sympy)
par exemple:
- x + y ^ 2 = 4
- e ^ x + xy = 3
Un extrait de code qui résout la paire ci-dessus sera génial
Quelle est la (meilleure) façon de résoudre une paire d'équations non linéaires en utilisant Python. (Numpy, Scipy ou Sympy)
par exemple:
- x + y ^ 2 = 4
- e ^ x + xy = 3
Un extrait de code qui résout la paire ci-dessus sera génial
pour la solution numérique, vous pouvez utiliser fsolve:
http://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.fsolve.html#scipy.optimize.fsolve
from scipy.optimize import fsolve
import math
def equations(p):
x, y = p
return (x+y**2-4, math.exp(x) + x*y - 3)
x, y = fsolve(equations, (1, 1))
print equations((x, y))
Vous pouvez utiliser openopt paquet et de la méthode de la PNL. Il a de nombreux algorithmes de programmation dynamique pour résoudre les équations algébriques non linéaires comprenant:
goldenSection, scipy_fminbound, scipy_bfgs, scipy_cg, scipy_ncg, amsg2p, scipy_lbfgsb, scipy_tnc, bobyqa, ralg, ipopt, scipy_slsqp, scipy_cobyla, lincher, algencan, que vous pouvez choisir.
Certains de ces derniers algorithmes peuvent résoudre la contrainte du problème de programmation non linéaire.
Ainsi, vous pouvez introduire votre système d'équations à openopt.La PNL() avec une fonction comme ceci:
lambda x: x[0] + x[1]**2 - 4, np.exp(x[0]) + x[0]*x[1]
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.