Lösen algebraischer Gleichungen mit Python

Vaibhav Vaibhav 30 Januar 2023
  1. Lösen Sie algebraische Gleichungen in einer Variablen mit der Methode solve() aus dem Paket SymPy
  2. Lösen algebraischer Gleichungen in mehreren Variablen mit dem Paket SymPy
  3. Lösen von algebraischen Gleichungen in zwei multiplen Variablen
  4. Lösen von algebraischen Gleichungen in drei multiplen Variablen
Lösen algebraischer Gleichungen mit Python

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}
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Verwandter Artikel - Python Math