Seite 1 von 1

Lineares Gleichungssystem lösen

Verfasst: Dienstag 16. Februar 2016, 19:22
von Vauban
Hallo zusammen.

Ich habe vor kurzem mit Python angefangen und übe nebenbei indem ich kleine Programme zu den Themen die wir in der Schule in Mathe durchnehmen schreibe.
Im Moment ist Vektorenrechnung an der Reihe und ich komm bei der Lösung der Linearen Gleichungssysteme nicht weiter um z.B zu überprüfen ob
ein bestimmter Punkt auf einer Ebene liegt.
Gibt es denn vielleicht irgendeinen Befehl oder ein Modul was das vereinfacht das man z.B nur noch
p1==o1+r*r11+s*r21
p2==o2+r*r12+s*r22
p3==o3+r*r13+s*r23

print("R:",r,"S:",s)
schreibt und dann die passenden Werte bekommt?
In einem anderen Programm habe ich r und s umgestellt, aber das ist doch auf Dauer zu umständlich

Code: Alles auswählen

print("Zwei Geraden gleichsetzen")
print("Geradengleichun g")
o11= float(input("g Ortsv. 1:"))
o12= float(input("g Ortsv. 2:"))
o13= float(input("g Ortsv. 3:"))
r11= float(input("g Richtungsv. 1:"))
r12= float(input("g Richtungsv. 2:"))
r13= float(input("g Richtungsv. 3:"))

print("Geradengleichun h")
o21= float(input("h Ortsv. 1:"))
o22= float(input("h Ortsv. 2:"))
o23= float(input("h Ortsv. 3:"))
r21= float(input("h Richtungsv. 1:"))
r22= float(input("h Richtungsv. 2:"))
r23= float(input("h Richtungsv. 3:"))

# Ermittlung von s und r
s=(((o23-o13)*r12)-((o22-o12)*r13))/((r22*r13)-(r23*r12))
r=(s*r23+(o23-o13))/r13
print("r: ",r,"s: ",s)
# Überprüfung der Werte durch die 1. Gleichung
try: o11+r*r11==o21+s*r21
except: print("Gleichsetzung nicht möglich; Geraden sind windschief zueinander")

input("Ende")
oder kann man das um einiges simpler schreiben?

Re: Lineares Gleichungssystem lösen

Verfasst: Mittwoch 17. Februar 2016, 00:39
von DasIch
Um Gleichungssysteme zu lösen bietet sich das Gaußsche Eliminationsverfahren an. Ansonsten hat numpy auch was um Gleichungssysteme zu lösen.

Re: Lineares Gleichungssystem lösen

Verfasst: Mittwoch 17. Februar 2016, 17:10
von Vauban
Ok danke :) werd ich morgen mal austesten