SymPy ist ein Python-Paket für symbolisches Rechnen (Ableitungen, Stammfunktionen, Formeln vereinfachen, Gleichungen lösen,...). Siehe auch Introductory Tutorial in der SymPy-Dokumentation.
import sympy3.3.1Variablen¶
SymPy verwendet ganz normale Python-Variablen, die aber einen SymPy-spezifischen Typ haben. Variablen, die später mit SymPy verwendet werden sollen, müssen deshalb zunächst durch SymPy erstellt werden.
x = sympy.symbols('x') # zeige Python-Variable x in Formeln als x an
print(x)
print(type(x))x
<class 'sympy.core.symbol.Symbol'>
Mehrere Variablen können gemeinsam erstellt werden:
x, y, z = sympy.symbols('x y z')
2 * x + y ** 2 + z3.3.2Formeln vereinfachen¶
x = sympy.symbols('x')
a = (x + 1) ** 2
b = x ** 2 + 2 * x + 1
sympy.simplify(a - b)x = sympy.symbols('x')
sympy.simplify(sympy.cos(x) ** 2 + sympy.sin(x) ** 2)3.3.3Nullstellen von Polynomen¶
SymPy liefert Polynomnullstellen samt Vielfachheiten (der Begriff “Vielfachheit” wird im Laufe der Veranstaltung erklärt):
x = sympy.symbols('x')
sympy.roots(x ** 3 - 4 * x ** 2 + x + 6, x){3: 1, 2: 1, -1: 1}x = sympy.symbols('x')
sympy.roots(x ** 3 - 3 * x ** 2 + 3 * x - 1, x){1: 3}3.3.4Gleichungen lösen¶
x = sympy.symbols('x')
sympy.solve(x ** 2 - 2, x) # löst x ** 2 - 2 = 0[-sqrt(2), sqrt(2)]Das Ergebnis ist eine Liste (kein Intervall!) von Lösungen.
x = sympy.symbols('x')
formel = x ** 4 - 4 * x ** 3 + 7 * x ** 2 - 16 * x + 12
sympy.solve(formel, x)[1, 3, -2*I, 2*I]Die Werte mit I sind sogenannte komplexe Zahlen, die in der Veranstaltung nicht behandelt werden. Die Gleichung hat also nur zwei reelle Zahlen als Lösungen.
x = sympy.symbols('x', real=True)
formel = x ** 4 - 4 * x ** 3 + 7 * x ** 2 - 16 * x + 12
sympy.solve(formel, x)[1, 3]x = sympy.symbols('x')
sympy.solve(sympy.sin(x), x)[0, pi]x = sympy.symbols('x')
sympy.solveset(sympy.sin(x), x)3.3.5Numerisches Rechnen mit vielen Stellen¶
sympy.N('1 / 6', 50)sympy.N('pi', 50)