Auch wenn wir in der Veranstaltung kaum symbolisch rechnen werden, sei hier eine kleine Einführung in SymPy gegeben. 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 sympy2.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 + zLoading...
2.3.2Formeln vereinfachen¶
x = sympy.symbols('x')
a = (x + 1) ** 2
b = x ** 2 + 2 * x + 1
sympy.simplify(a - b)Loading...
x = sympy.symbols('x')
sympy.simplify(sympy.cos(x) ** 2 + sympy.sin(x) ** 2)Loading...
2.3.3Grenzwerte¶
x = sympy.symbols('x')
sympy.limit(sympy.sin(x) / x, x, 0)Loading...
n = sympy.symbols('n')
sympy.limit((1 + 1 / n) ** n, n, sympy.oo)Loading...
2.3.4Ableitungen¶
x, c = sympy.symbols('x c')
sympy.diff(x ** 2 * sympy.sin(x + c), x)Loading...
2.3.5Integrale¶
x = sympy.symbols('x')
sympy.integrate(x ** 2 * sympy.sin(x), x)Loading...
x = sympy.symbols('x')
sympy.integrate(x ** 2 * sympy.sin(x), (x, 0, sympy.pi))Loading...
2.3.6Nullstellen von Polynomen¶
SymPy liefert Polynomnullstellen samt Vielfachheiten:
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}2.3.7Gleichungen 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]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)Loading...
2.3.8Numerisches Rechnen mit vielen Stellen¶
sympy.N('1 / 6', 50)Loading...
sympy.N('pi', 50)Loading...