Solvers


In [1]:
from sympy import *
from sympy.solvers.solveset import solveset
init_printing()

For each exercise, fill in the function according to its docstring.


In [2]:
a, b, c, d, x, y, z, t = symbols('a b c d x y z t')
f, g, h = symbols('f g h', cls=Function)

Algebraic Equations

Write a function that computes the quadratic equation.


In [3]:
def quadratic():
    return solveset(a*x**2 + b*x + c, x)
quadratic()


Out[3]:
$$\left\{- \frac{b}{2 a} - \frac{1}{2 a} \sqrt{- 4 a c + b^{2}}, - \frac{b}{2 a} + \frac{1}{2 a} \sqrt{- 4 a c + b^{2}}\right\}$$

Write a function that computes the general solution to the cubic $x^3 + ax^2 + bx + c$.


In [4]:
def cubic():
    return solveset(x**3 + a*x**2 + b*x + c, x)
cubic()


Out[4]:
$$\left\{- \frac{a}{3} - \frac{a^{2} - 3 b}{3 \sqrt[3]{a^{3} - \frac{9 a}{2} b + \frac{27 c}{2} + \frac{1}{2} \sqrt{- 4 \left(a^{2} - 3 b\right)^{3} + \left(2 a^{3} - 9 a b + 27 c\right)^{2}}}} - \frac{1}{3} \sqrt[3]{a^{3} - \frac{9 a}{2} b + \frac{27 c}{2} + \frac{1}{2} \sqrt{- 4 \left(a^{2} - 3 b\right)^{3} + \left(2 a^{3} - 9 a b + 27 c\right)^{2}}}, - \frac{a}{3} - \frac{a^{2} - 3 b}{3 \left(- \frac{1}{2} - \frac{\sqrt{3} i}{2}\right) \sqrt[3]{a^{3} - \frac{9 a}{2} b + \frac{27 c}{2} + \frac{1}{2} \sqrt{- 4 \left(a^{2} - 3 b\right)^{3} + \left(2 a^{3} - 9 a b + 27 c\right)^{2}}}} - \frac{1}{3} \left(- \frac{1}{2} - \frac{\sqrt{3} i}{2}\right) \sqrt[3]{a^{3} - \frac{9 a}{2} b + \frac{27 c}{2} + \frac{1}{2} \sqrt{- 4 \left(a^{2} - 3 b\right)^{3} + \left(2 a^{3} - 9 a b + 27 c\right)^{2}}}, - \frac{a}{3} - \frac{a^{2} - 3 b}{3 \left(- \frac{1}{2} + \frac{\sqrt{3} i}{2}\right) \sqrt[3]{a^{3} - \frac{9 a}{2} b + \frac{27 c}{2} + \frac{1}{2} \sqrt{- 4 \left(a^{2} - 3 b\right)^{3} + \left(2 a^{3} - 9 a b + 27 c\right)^{2}}}} - \frac{1}{3} \left(- \frac{1}{2} + \frac{\sqrt{3} i}{2}\right) \sqrt[3]{a^{3} - \frac{9 a}{2} b + \frac{27 c}{2} + \frac{1}{2} \sqrt{- 4 \left(a^{2} - 3 b\right)^{3} + \left(2 a^{3} - 9 a b + 27 c\right)^{2}}}\right\}$$

Differential Equations

A population that grows without bound is modeled by the differential equation

$$f'(t)=af(t)$$

Solve this differential equation using SymPy.


In [5]:
dsolve(f(t).diff(t) - a*f(t), f(t))


Out[5]:
$$f{\left (t \right )} = C_{1} e^{a t}$$

If the population growth is bounded, it is modeled by

$$f'(t) = f(t)(1 - f(t))$$

Solve this differential equation using SymPy.


In [8]:
dsolve(f(t).diff(t) - f(t)*(1 - f(t)), f(t))


Out[8]:
$$\log{\left (\operatorname{f}{\left (t \right )} -1 \right )} - \log{\left (\operatorname{f}{\left (t \right )} \right )} = C_{1} - t$$