To work with symbolic mathematics in Python we have chosen to use the libary SymPy. More detailed SymPy documentation and packages for installation can be found on http://sympy.org/.
Table of Contents |
---|
indent | 10px |
---|
style | disk |
---|
separator | klammer |
---|
|
Tutorial
Symbols
To make symbolic variables in SymPy you have to declare the variable explicitly:
Code Block |
---|
|
>>> from sympy import *
>>> x = Symbol('x')
>>> y = Symbol('y') |
Then may then manipulate them as you want:
Code Block |
---|
|
>>> x + y + x - y
2*x
>>> (x + y)**2
(x + y)**2
>>> ((x + y)**2).expand()
x**2 + 2*x*y + y**2 |
You can also substitute variables for numbers or other symbolic variables with subs(var, substitution).
Code Block |
---|
|
>>> ((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 |
---|
|
>>> 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 |
---|
|
>>> 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 |
---|
|
>>> from sympy import *
>>> x, y = symbols('x y') |
Indefinite integration of some elementary functions:
Code Block |
---|
|
>>> 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 |
---|
|
>>> integrate(x**3, (x, -1, 1))
0
>>> integrate(sin(x), (x, 0, pi/2))
1 |
Some special integrals:
Code Block |
---|
|
>>> integrate(exp(-x), (x, 0, oo))
1
>>> integrate(log(x), (x, 0, 1))
-1 |
...