Lineare Gleichungen

Lineare Gleichungen sind eine grundlegende Form von mathematischen Gleichungen, die in vielen verschiedenen Anwendungen auftreten. Sie beschreiben eine Beziehung zwischen Variablen, die linear miteinander verbunden sind. Eine lineare Gleichung hat in der Regel die Form:

ax + b = c

Hier sind die Hauptkomponenten einer linearen Gleichung:

  1. Variablen (‘x’): Dies ist der unbekannte Wert, den du herausfinden möchtest. Es ist die Variable, die in der Gleichung gesucht wird.
  2. Koeffizienten (‘a’ und ‘b’): Dies sind bekannte Zahlen, die die lineare Beziehung zwischen der Variablen ‘x’ und dem konstanten Wert ‘c’ beschreiben.
  • Der Koeffizient ‘a’ ist der Koeffizient der Variablen ‘x’. Er zeigt an, um wie viel sich ‘x’ ändert, wenn sich ‘x’ um 1 ändert.
  • Der Koeffizient ‘b’ ist ein Konstantenterm, der den Schnittpunkt der linearen Funktion mit der y-Achse darstellt. Es ist der Wert von ‘x’, wenn ‘x’ gleich null ist.
  1. Konstante (‘c’): Dies ist der bekannte Wert, zu dem die linke Seite der Gleichung gleich sein soll.

Das Ziel beim Lösen einer linearen Gleichung besteht darin, den Wert der Variablen ‘x’ zu finden, der die Gleichung wahr macht. In anderen Worten, du suchst den Wert von ‘x’, der die Gleichung ‘ax + b = c’ erfüllt.

Hier sind einige grundlegende Schritte, um eine lineare Gleichung zu lösen:

  1. Isolieren der Variablen ‘x’ Versuche, die Variable ‘x’ auf einer Seite der Gleichung zu isolieren, indem du mathematische Operationen anwendest, um die Gleichung zu vereinfachen. Ziel ist es, ‘x’ alleine auf einer Seite der Gleichung zu haben.
  2. Berechnen des Wertes von ‘x’: Nachdem die Gleichung in der Form ‘x = …’ vorliegt, berechne den Wert von ‘x’.
  3. Überprüfen der Lösung: Setze den berechneten Wert von ‘x’ in die ursprüngliche Gleichung ein, um sicherzustellen, dass sie wahr ist.

Beispiel:

Angenommen, wir haben die Gleichung ‘2x + 3 = 7’. Um ‘x’ zu isolieren, subtrahieren wir zuerst 3 von beiden Seiten der Gleichung:

2x + 3 – 3 = 7 – 3
2x = 4

Jetzt teilen wir beide Seiten der Gleichung durch 2, um ‘x’ zu isolieren:

(2x)/2 = 4/2
x = 2

Die Lösung der Gleichung ist ‘x = 2’, und wenn wir diese Lösung in die ursprüngliche Gleichung einsetzen (‘2 * 2 + 3 = 7’), ergibt sich ‘4 + 3 = 7’, was wahr ist. Daher ist ‘x = 2’ die richtige Lösung.

Klingt jetzt vielleicht ein klein wenig kompliziert das in ein Programm umzuwandeln, ist es jedoch nicht. Die einfachste Möglichkeit ist es die Gleichung einfach numerisch zu lösen, das heißt wir setzen einfach Werte für x ein und machen das so lange bis die Gleichung stimmt.
Das ganze ist nicht sehr effizient und kann vor allem bei großen Werten etwas langwierig sein.
Eine andere Herausforderung ist das sogenannte parsen der Formel. Mit ‘4x+6=10’ fängt der Computer nichts an – es ist für ihn einfach ein String. Wir müssen die Formel zerlegen, damit wir sie für ein Programm verständlich machen können.
Dank der vielen Bibliotheken von Python und einer, für unsere Linearen Gleichungen Übungsprogramm, können wir es einfach halten.
Für unsere Zwecke ist die Bibliothek SymPy bestens geeignet.
SymPy ist eine Open-Source-Bibliothek und frei verfügbar.
SymPy ist eine leistungsstarke Python-Bibliothek für symbolische Mathematik. Sie bietet eine umfassende Sammlung von Funktionen und Werkzeugen, die es ermöglichen, mathematische Berechnungen in Python auf symbolischer Ebene durchzuführen. Im Gegensatz zu numerischer Mathematik, bei der Werte berechnet werden, ermöglicht symbolische Mathematik die Manipulation von mathematischen Ausdrücken, Variablen und Symbolen, um komplexe mathematische Probleme zu lösen.
Mit SymPy kannst du eine Vielzahl von mathematischen Aufgaben erledigen, darunter:
Algebraische Manipulationen: Vereinfachung von Ausdrücken, Faktorisierung, Ausdehnung von Termen und mehr.
Symbolisches Lösen von Gleichungen und Ungleichungen: SymPy kann algebraische und transzendente Gleichungen lösen und Ungleichungen vereinfachen.
Ableitungen und Integration: Berechnung von Ableitungen und Integrationen symbolischer Ausdrücke.
Lineare Algebra: Arbeit mit Matrizen, Determinanten, Eigenwerten und Eigenvektoren.
Trigonometrie und komplexe Zahlen: SymPy unterstützt trigonometrische Funktionen, komplexe Zahlen und deren Operationen.
Differentialgleichungen: Lösen von gewöhnlichen und partiellen Differentialgleichungen.
Geometrie: SymPy kann geometrische Formen und Konzepte repräsentieren und Berechnungen durchführen, die in der Geometrie benötigt werden.
Zahlentheorie: Faktorisierung von ganzen Zahlen und Arbeit mit Primzahlen.
Nun aber genug mit der ganzen Theorie fangen wir an in die Tasten zu hauen und uns einen Trainer für die linearen Gleichungen zu schreiben.
Als erstes müssen wir die SymPy in unserer Umgebung installieren. Dazu öffnen wir die Eingabeaufforderung und geben
“python -m pip install sympy”
ein.
Nach wenigen Sekunden ist es installiert.

So nun können wir anfangen

import random
import sympy as sp

Wir importieren die zwei benötigten Bibliotheken. Sympy geben wir einen sogenannten Alias damit wir keine Hornhaut an den Finger bekommen.

Als nächstes müssen wir drei Variablen (a,b,c) deklarieren und diese dann mit Zufallszahlen befüllen.
Das ganze packen wir gleich in eine Funktion

def lineare_gleichung_loesen():
# Eingabe der Gleichung
a =  random.randint(1, 10)
b = random.randint(1, 10)
c = random.randint(1, 10)

print(f"Loese die linearen Gleichung '{a}x + {b} = {c}'")

Der Einfachheit nehmen wir für a, b und c Zahlen von 1 bis 10.
Das Programm würde jetzt z.B. 1x+5=5 ausgeben.
Nun muss der User diese Gleichung lösen und die Antwort eingeben.

user_input = input(f"x= ")

Nun müssen wir nun noch dem Programm das Lösen der Gleichung beibringen.
Dazu müssen wir mit SymPy die Gleichung erstellen.

# Gleichung erstellen
x = sp.symbols(‚x‘)
gleichung = sp.Eq(a * x + b, c)

Das war ja ganz einfach, oder?
Nun lassen wir die Gleichung von SymPy lösen.

# Gleichung lösen
loesung = sp.solve(gleichung, x)

So nun ist unser kleiner Trainer fertig
Das ganze Programm

import random
from fractions import Fraction
import sympy as sp

def lineare_gleichung_loesen():
    # Eingabe der Gleichung
    
    a =  random.randint(1, 10)
    b = random.randint(1, 10)
    c = random.randint(1, 10)

    print(f"Loese die linearen Gleichung '{a}x + {b} = {c}'")
    
    user_input = input(f"x= ")
    
    # Gleichung erstellen
    x = sp.symbols('x')
    gleichung = sp.Eq(a * x + b, c)

    # Gleichung lösen
    loesung = sp.solve(gleichung, x)
    
    # Ergebnis ausgeben
    print(f"Die Loesung der Gleichung {a}x + {b} = {c} ist x =", loesung)
    if float(Fraction(user_input)) == float(loesung[0]):
        print("RICHTIG!!");
    else:
        print ("Leider falsch!");
    

if __name__ == "__main__":
    while True:
        lineare_gleichung_loesen()
        weitermachen = input("Willst du eine weitere Gleichung loesen? (Ja/Nein): ").lower()
        if weitermachen != "ja":
            break

Den Source Code kann unter gpiwonka/LineareGleichungen (github.com) angeschaut oder herunter geladen werden.