Nichtlineare Gleichungssysteme
Nichtlineare und auch lineare Gleichungen und Gleichungssysteme werden mit Hilfe des Newton-Verfahrens gelöst.
Die Unbekannten in den Gleichungen können dabei beliebige Namen haben. Ihre Anzahl muss der Anzahl der Gleichungen entsprechen.
Nichtlineare Gleichungssysteme haben häufig mehr als eine Lösung.
Ihre Lösung erfordert eine iterative Vorgehensweise beginnend bei einem Satz von Startwerten.
Welche Lösung gefunden wird und ob überhaupt eine gefunden wird, hängt von den jeweiligen Startwerten ab.
Startwerte kann man entweder explizit (z.B. x=5) oder aber als Intervall (z.B. x=4.5,5.5) angeben.
Werden keine Startwerte angegeben, verwendet das Programm Zufallswerte aus dem Intervall [-10,10].
In jedem Rechenlauf wird nur jeweils eine Lösung bestimmt. Bereits gefundene, andere Lösungen werden gespeichert und mit angezeigt.
Durch die Angabe "Anzahl der Berechnungen" können entsprechend der Angabe mehrere Rechenläufe auf einmal ausgelöst werden.
Die in den Gleichungen nutzbaren Funktionen sind im Wesentlichen die von JavaScript unterstützten Funktionen.
Lineare Gleichungssysteme haben normalerweise (wenn ihre Koeffizientendeterminante ungleich 0 ist) eine eindeutige Lösung.
Diese hängt dann nicht von den Startwerten der Iteration ab. Die Verwendung des Newton-Verfahrens ist hier eigentlich nicht optimal, funktioniert aber.
Das Newton'sche Verfahren
Zur Lösung des im Allgemeinen nichtlinearen Gleichungssystems
f(x) = 0
macht das Newton-Verfahren die iterativ zu wiederholenden 2 Schritte
J(xk) sk = -f(xk)
xk+1 = xk + sk
Darin ist J(x) die Jacobi-Matrix, die alle partiellen Ableitungen 1. Ordnung von f(x) enthält.
Der erste Schritt besteht darin ein lineares Gleichungssystem zur Bestimmung von sk zu lösen.
Der zweite Schritt besteht darin eine bereits bestehende Näherungslösung mit Hilfe von sk zu verbessern.
Sonderfall lineares Gleichungssystem
Für ein lineares Gleichungssystem gilt:
f(x) = A x - b = 0.
Weil alle Unbekannten in f(x) nur linear vorkommen ist die Jacobi-Matrix unabhängig von x
und es gilt dann:
J(x) = A.
Somit vereinfacht sich der 1. Schritt des Verfahrens zu
A sk = -A xk + b.
Formal aufgelöst nach sk:
sk = -xk + A-1 b
und formal eingesetzt in den 2. Schritt des Verfahrens ergibt sich Iterationsvorschrift:
xk+1 = xk - xk + A-1 b.
Man sieht hier, dass die Iteration im Falle eines linearen Gleichungssystems die Lösung theoretisch mit einem Schritt liefert.
Für diesen Schritt muss aber das lineare Gleichungssystem ohnehin einmal gelöst werden.
weitere JavaScript-Programme