Search code examples
pythonnumpyscipysympy

How to solve a pair of nonlinear equations using Python?


What's the (best) way to solve a pair of non linear equations using Python. (Numpy, Scipy or Sympy)

eg:

  • x+y^2 = 4
  • e^x+ xy = 3

A code snippet which solves the above pair will be great


Solution

  • for numerical solution, you can use 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))