Skip to content

Solving Equations

Solving Equations

SymPy's solve() function can be used to solve equations and expressions that contain symbolic math variables.

Equations with one solution

A simple equation that contains one variable like x-4-2 = 0 can be solved using the SymPy's solve() function. When only one value is part of the solution, the solution is in the form of a list.

The code section below demonstrates SymPy's solve() function when an expression is defined with symbolic math variables.

In [1]:
from sympy import symbols, solve

x = symbols('x') expr = x-4-2

sol = solve(expr)

sol

Out[1]:
[6]

To pull the value out of the solution list sol, regular list indexing can be used.
In [2]:
num = sol[0]

num

Out[2]:
6

The code section below demonstrates SymPy's solve() function when an equation is defined with symbolic math variables.
In [3]:
from sympy import symbols, Eq, solve

y = symbols('y') eq1 = Eq(y + 3 + 8)

sol = solve(eq1) sol

Out[3]:
[-11]

Equations with two solutions

Quadratic equations, like x^2 - 5x + 6 = 0, have two solutions. SymPy's solve() function can be used to solve an equation with two solutions. When an equation has two solutions, SymPy's solve() function outputs a list. The elements in the list are the two solutions.

The code section below shows how an equation with two solutions is solved with SymPy's solve() function.

In [4]:
from sympy import symbols, Eq, solve

y = symbols('x') eq1 = Eq(x*2 -5x + 6)

sol = solve(eq1) sol

Out[4]:
[2, 3]

If you specify the keyword argument dict=True to SymPy's solve() function, the output is still a list, but inside the list is a dictionary that shows which variable was solved for.
In [5]:
from sympy import symbols, Eq, solve

y = symbols('x') eq1 = Eq(x*2 -5x + 6)

sol = solve(eq1, dict=True) sol

Out[5]:
[{x: 2}, {x: 3}]

In [6]:
sol[0]

Out[6]:
{x: 2}

In [7]:
sol[1]

Out[7]:
{x: 3}