Lösen algebraischer Gleichungen mit Python
-
Lösen Sie algebraische Gleichungen in einer Variablen mit der Methode
solve()
aus dem PaketSymPy
-
Lösen algebraischer Gleichungen in mehreren Variablen mit dem Paket
SymPy
- Lösen von algebraischen Gleichungen in zwei multiplen Variablen
- Lösen von algebraischen Gleichungen in drei multiplen Variablen
Python hat eine Bibliothek für symbolische Mathematik, nämlich SymPy
. Diese Bibliothek enthält Dienstprogramme zum Lösen komplexer mathematischer Probleme und Konzepte wie Matrizen, Infinitesimalrechnung, Geometrie, diskrete Mathematik, Integrale, Kryptographie, Algebra usw.
Wir können diese Bibliothek verwenden, um algebraische Gleichungen zu lösen. Dieser Artikel zeigt, wie Sie mit SymPy
algebraische Gleichungen in Python lösen.
Im Folgenden sind einige Möglichkeiten aufgeführt, mit denen wir das Modul SymPy
auf unseren Maschinen installieren können.
Mit dem Paketmanager pip
Sympy
installieren
Verwenden Sie den folgenden Befehl, um das Paket SymPy
mit pip
zu installieren.
pip install sympy
oder
pip3 install sympy
Mit Anaconda Sympy
installieren
Anaconda ist eine kostenlose Python-Distribution, die standardmäßig die Bibliothek SymPy
in ihre Umgebung integriert. Mit dem folgenden Befehl kann die vorhandene Version aktualisiert werden.
conda update sympy
Einen detaillierten Überblick über die oben besprochenen Methoden und einige andere verfügbare Methoden zur Installation der SymPy
-Bibliothek finden Sie in der offiziellen Dokumentation hier.
Lösen Sie algebraische Gleichungen in einer Variablen mit der Methode solve()
aus dem Paket SymPy
Die Bibliothek SymPy
verfügt über eine Funktion solve()
, die algebraische Gleichungen lösen kann. Diese Funktion akzeptiert die folgenden Hauptargumente.
f
: Eine algebraische Gleichung.Symbole
: Die Variablen, für die die Gleichung gelöst werden soll.dict
: Ein boolesches Flag zum Zurückgeben einer Liste von Lösungszuordnungen.set
: Ein boolesches Flag für eine Liste von Symbolen und eine Menge von Lösungstupeln.check
: Ein boolesches Flag zum Testen der erhaltenen Lösungen im algebraischen Ausdruck.minimal
: Ein boolesches Flag zum schnellen und minimalen Testen der Lösung.
Nachdem wir nun mit einer kurzen Theorie fertig sind, lernen wir anhand einiger Beispiele, wie man mit dieser Methode solve()
algebraische Gleichungen löst. Siehe den folgenden Code für dasselbe.
from sympy.solvers import solve
from sympy import Symbol
x = Symbol("x")
print(solve(x ** 2 - 1, x))
print(solve(x ** 3 + x ** 2 + x + 1, x))
print(solve(x ** 3 - 0 * x ** 2 + 4 * x - 5, x))
Ausgabe:
[-1, 1]
[-1, -i, i]
[1, -1/2 - √19i / 2, -1/2 + √19i / 2]
Lösen algebraischer Gleichungen in mehreren Variablen mit dem Paket SymPy
Um algebraische Gleichungen in mehreren Variablen zu lösen, benötigen wir mehrere Gleichungen.
Zum Beispiel benötigen wir mindestens zwei solcher Gleichungen, wenn wir algebraische Gleichungen in zwei Variablen lösen müssen. Um algebraische Gleichungen in drei Variablen zu lösen, benötigen wir mindestens drei solcher Gleichungen.
Und zum Lösen solcher Gleichungen benötigen wir drei Hilfsprogramme, nämlich Symbole
, Eq
, solve
aus dem Modul SymPy
.
Die Funktion Symbole
wandelt Variablenketten in Instanzen der Klasse Symbol
um.
Die Klasse Eq
repräsentiert eine gleichberechtigte Beziehung zwischen zwei Objekten, insbesondere Ausdrücken. Wenn wir zum Beispiel eine Gleichung x + y = 3
haben, dann sind x + y
und 3
die beiden Objekte oder Ausdrücke. Für x + y - 5 = x + 6
sind x + y - 5
und x + 6
die beiden Objekte.
Und die Methode solve()
verwendet die beiden oben genannten, um die Gleichungen zu lösen.
Sehen wir uns anhand einiger relevanter Beispiele an, wie wir diese Dienstprogramme verwenden können, um algebraische Gleichungen in zwei und drei Variablen zu lösen.
Lösen von algebraischen Gleichungen in zwei multiplen Variablen
Um zu verstehen, wie algebraische Gleichungen in zwei Werten mit den oben besprochenen Dienstprogrammen gelöst werden, betrachten wir die folgenden zwei Beispiele.
Beispiel 1:
x + y = 5
x - y = 5
Beispiel 2:
2 * x + 4 * y = 10
4 * x + 2 * y = 30
Das erste Beispiel finden Sie im folgenden Python-Code.
from sympy import symbols, Eq, solve
x, y = symbols("x y")
equation_1 = Eq((x + y), 5)
equation_2 = Eq((x - y), 5)
print("Equation 1:", equation_1)
print("Equation 2:", equation_2)
solution = solve((equation_1, equation_2), (x, y))
print("Solution:", solution)
Ausgabe:
Equation 1: Eq(x + y, 5)
Equation 2: Eq(x - y, 5)
Solution: {x: 5, y: 0}
Das zweite Beispiel finden Sie im folgenden Python-Code.
from sympy import symbols, Eq, solve
x, y = symbols("x y")
equation_1 = Eq((2 * x + 4 * y), 10)
equation_2 = Eq((4 * x + 2 * y), 30)
print("Equation 1:", equation_1)
print("Equation 2:", equation_2)
solution = solve((equation_1, equation_2), (x, y))
print("Solution:", solution)
Ausgabe:
Equation 1: Eq(2*x + 4*y, 10)
Equation 2: Eq(4*x + 2*y, 30)
Solution: {x: 25/3, y: -5/3}
Lösen von algebraischen Gleichungen in drei multiplen Variablen
Um zu verstehen, wie algebraische Gleichungen in drei Werten mit den oben besprochenen Dienstprogrammen gelöst werden, betrachten wir die folgenden zwei Beispiele.
Beispiel 1:
x + y + z = 5
x - y + z = 5
x + y - z = 5
Beispiel 2:
2 * x - 4 * y + 6 * z = 10
4 * x + 2 * y + 6 * z = 30
4 * x + 2 * y - 10 * z = 50
Das erste Beispiel finden Sie im folgenden Python-Code.
from sympy import symbols, Eq, solve
x, y, z = symbols("x y z")
equation_1 = Eq((x + y + z), 5)
equation_2 = Eq((x - y + z), 5)
equation_3 = Eq((x + y - z), 5)
print("Equation 1:", equation_1)
print("Equation 2:", equation_2)
print("Equation 3:", equation_3)
solution = solve((equation_1, equation_2, equation_3), (x, y, z))
print("Solution:", solution)
Ausgabe:
Equation 1: Eq(x + y + z, 5)
Equation 2: Eq(x - y + z, 5)
Equation 3: Eq(x + y - z, 5)
Solution: {x: 5, z: 0, y: 0}
Das zweite Beispiel finden Sie im folgenden Python-Code.
from sympy import symbols, Eq, solve
x, y, z = symbols("x y z")
equation_1 = Eq((2 * x - 4 * y + 6 * z), 10)
equation_2 = Eq((4 * x + 2 * y + 6 * z), 30)
equation_3 = Eq((4 * x + 2 * y - 10 * z), 50)
print("Equation 1:", equation_1)
print("Equation 2:", equation_2)
print("Equation 3:", equation_3)
solution = solve((equation_1, equation_2, equation_3), (x, y, z))
print("Solution:", solution)
Ausgabe:
Equation 1: Eq(2*x - 4*y + 6*z, 10)
Equation 2: Eq(4*x + 2*y + 6*z, 30)
Equation 3: Eq(4*x + 2*y - 10*z, 50)
Solution: {x: 37/4, z: -5/4, y: 1/4}