Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

To work with symbolic mathematics in Python we have chosen to use the libary SympySymPy. More detailed Sympy ymPy documentation and packages for installation can be found on http://sympy.org/.

...

To make symbolic variables in Sympy SymPy you have to declare the variable explicitly.:

Code Block
languagepy
>>> from sympy import *
>>> x = Symbol('x')
>>> y = Symbol('y')

Then may then manipulate them as you want.:

Code Block
languagepy
>>> x + y + x - y
2*x


>>> (x + y)**2
(x + y)**2


>>> ((x + y)**2).expand()
x**2 + 2*x*y + y**2

...

Code Block
languagepy
>>> ((x + y)**2).subs(x, 1)
(y + 1)**2

>>> ((x + y)**2).subs(x, y)
4*y**2

Some regular constants are already included in SymPy as symbols, like e, pi and infinite (oo)evalf() evaluates the symbols as floation-point numbers.

Code Block
languagepy
>>> pi**2
pi**2



>>> pi.evalf()
3.141592653589793238462643383


<<< E**2
exp(2)


>>> oo > 99999
True

>>> oo + 1
oo


Differentiation

You can differentiate any SymPy expression using diff(func, var). Higher derivatives can be solved using diff(func, var, n).

Code Block
languagepy
>>> from sympy import *
>>> x = Symbol('x')

>>> diff(sin(x), x)
cos(x)


>>> diff(sin(2*x), x, 1)
2*cos(2*x)

>>> diff(sin(2*x), x, 2)
-4*sin(2*x)

Integration

SymPy has support for both indefinite and definite integration:

Code Block
languagepy
>>> from sympy import *
>>> x, y = symbols('x y')

Indefinite integration of some elementary functions:

Code Block
languagepy
>>> integrate(6*x**5, x)
x**6


>>> integrate(log(x), x)
x*log(x) - x

>>> integrate(2*x + sinh(x), x)
x**2 + cosh(x)	

Definite integration:

Code Block
languagepy
>>> integrate(x**3, (x, -1, 1))
0

>>> integrate(sin(x), (x, 0, pi/2))
1

Some special integrals:

Code Block
languagepy
>>> integrate(exp(-x), (x, 0, oo))
1

>>> integrate(log(x), (x, 0, 1))
-1