Lösung nichtlinear Gleichungssysteme • In dieser Vorlesung werden wir uns mit der gemischt symbolischen und numerischen Lösung algebraisch gekoppelter nichtlinear Gleichungssysteme befassen. • Die Aufschneidemethode eignet sich auch zur effizienten Behandlung nichtlinear Gleichungssysteme. • Die numerische Iteration nichtlinear Gleichungssysteme kann auf die Schnittvariablen begrenzt werden. 10. November, 2004 Anfang Präsentation Übersicht • • • • 10. November, 2004 Nichtlineare Gleichungssysteme Newton Iteration Newton Iteration mit Aufschneiden Newton Iteration linearer Gleichungssysteme Anfang Präsentation Nichtlineares Gleichungssystem: Ein Beispiel I 10. November, 2004 Anfang Präsentation Nichtlineares Gleichungssystem: Ein Beispiel II q 1 Schleuse Stausee p p 1 q 2 3 Verbraucher I Verbraucher II q 2 p 0 10. November, 2004 Umgebungsdruck Anfang Präsentation Nichtlineares Gleichungssystem: Ein Beispiel III q q p q: Durchflussrate p: Druckabfall 10. November, 2004 p q = k · sign(p ) · p p = sign(q) · q2 / k Anfang Präsentation Nichtlineares Gleichungssystem: Ein Beispiel IV q 1 Schleuse Stausee p p 1 q 2 3 Verbraucher I Verbrau cher II q 2 p 0 10. November, 2004 Umgebungsdruck p2 = 100 p0 = 1 fS(q1 ,p1 ,p2) = 0 fI(q2 ,p0 ,p1) = 0 fII(q3 ,p0 ,p1) = 0 q1 = q2 + q3 Anfang Präsentation Nichtlineares Gleichungssystem: Ein Beispiel V p2 = 100 p0 = 1 fS (q1 ,p1 ,p2 ) = 0 fI (q2 ,p0 ,p1 ) = 0 fII (q3 ,p0 ,p1 ) = 0 q1 - q2 - q3 = 0 p2 = 100 p0 = 1 fS (q1 ,p1 ,p2 ) = 0 fI (q2 ,p0 ,p1 ) = 0 fII (q3 ,p0 ,p1 ) = 0 q1 - q2 - q3 = 0 Nichtlineares Gleichungssystem in 4 Unbekannten 10. November, 2004 Anfang Präsentation Newton’sches Iterationsverfahren I xn fn Nichtlineares Gleichungssystem: f(x) = 0 Anfangsschätzwert: x0 Iterationsformel: x i+1 = x i - x i x n Inkrement: x i = H(x i )-1 · f(x i ) H nn Hess’sche Matrix: f(x) H(x) = x 10. November, 2004 Anfang Präsentation Newton’sches Iterationsverfahren: Beispiel I x= p1 q1 q2 q3 f(x) = H(x) = 10. November, 2004 p2 - p1 - sign(q1) · q12 / k1 p1 – p0 - sign(q2) · q22 / k2 =0 p1 – p0 - sign(q3) · q32 / k3 q1 - q2 - q3 -1 - 2|q1 |/k1 0 0 1 0 - 2|q2 |/k2 0 0 - 2|q3 |/k3 1 0 -1 -1 0 1 Anfang Präsentation Newton’sches Iterationsverfahren II Bestimmung des Inkrements: x i = H(x i )-1 · f(x i ) H(x i ) · x i = f(x i ) Lineares Gleichungssystem in den Unbekannten x 10. November, 2004 x n Anfang Präsentation Newton Iteration mit Schneideverfahren I p2 = 100 p0 = 1 fS (q1 ,p1 ,p2 ) = 0 fI (q2 ,p0 ,p1 ) = 0 fII (q3 ,p0 ,p1 ) = 0 q1 - q2 - q3 = 0 p2 = 100 p0 = 1 fS (q1 ,p1 ,p2 ) = 0 fI (q2 ,p0 ,p1 ) = 0 fII (q3 ,p0 ,p1 ) = 0 q1 - q2 - q3 = 0 p2 = 100 p0 = 1 fS (q1 ,p1 ,p2 ) = 0 fI (q2 ,p0 ,p1 ) = 0 fII (q3 ,p0 ,p1 ) = 0 q1 - q2 - q3 = 0 Wahl 10. November, 2004 Anfang Präsentation Newton Iteration mit Schneideverfahren II p2 = 100 p0 = 1 fS (q1 ,p1 ,p2 ) = 0 fI (q2 ,p0 ,p1 ) = 0 fII (q3 ,p0 ,p1 ) = 0 q1 - q2 - q3 = 0 p2 = 100 p0 = 1 q1 = q2 + q3 p1 = f1 (q1 ,p2 ) q2 = f2 (p0 ,p1 ) q3 = f3 (p0 ,p1 ) q1 = f2 (p0 ,p1 ) + f3 (p0 ,p1 ) = f2 (p0 , f1 (q1 ,p2 ) ) + f3 (p0 , f1 (q1 ,p2 )) 10. November, 2004 Anfang Präsentation Newton Iteration mit Schneideverfahren III q1 = f2 (p0 ,p1 ) + f3 (p0 ,p1 ) = f2 (p0 , f1 (q1 ,p2 ) ) + f3 (p0 , f1 (q1 ,p2 )) x = q1 f(x) = q1 - f2 (p0 , f1 (q1 ,p2 ) ) - f3 (p0 , f1 (q1 ,p2 )) = 0 H(x i ) · x i = f(x i ) 10. November, 2004 Lineares Gleichungssystem in den Unbekannten x x 1 Anfang Präsentation Newton’sches Iterationsverfahren: Beispiel II p2 = 100 p0 = 1 q1 = q2 + q3 p1 = p2 - sign(q1 ) · q12 / k1 q2 = k2 · sign(p1 - p0 ) · p1 - p0 q3 = k3 · sign(p1 - p0 ) · p1 - p0 pq1q1 = 1 pp1q1 = - 2|q1| / k1 pq2q1 = k2 / ( 2 · p1 - p0 ) · pp1q1 pq3q1 = k3 / ( 2 · p1 - p0 ) · pp1q1 f = q1 - q2 - q3 h = pq1q1 - pq2q1 - pq3q1 10. November, 2004 Das Substituieren von Ausdrücken lohnt sich kaum je. Es ist besser, über alle Gleichungen zu iterieren und bei der Ermittlung der partiellen Ableitungen jede Gleichung separat abzuleiten. Anfang Präsentation Newton’sches Iterationsverfahren: Beispiel III q1 = Anfangsschätzwert dx = 1 while dx > dxmin p1 = p2 - sign(q1 ) · q12 / k1 q2 = k2 · sign(p1 - p0 ) · p1 - p0 q3 = k3 · sign(p1 - p0 ) · p1 - p0 pp1 = - 2|q1| / k1 pq2 = k2 / ( 2 · p1 - p0 ) · pp1 pq3 = k3 / ( 2 · p1 - p0 ) · pp1 f = q1 - q2 - q3 h = 1 - pq2 - pq3 dx = h \ f q1 = q1 – dx end 10. November, 2004 Es wird über alle Gleichungen iteriert. Das interne lineare Gleichungssystem muss jedoch nur für die Schnittvariablen gelöst werden. Anfang Präsentation Newton Iteration für lineare Systeme Lineares System: A·x = b f(x) = A·x – b = 0 H(x) = f(x)/ x = A A·x = A·x – b x = x – A-1·b x 1 = x 0 – (x 0 – A-1·b) = A-1·b 10. November, 2004 Die Newton Iteration konvergiert in einem Schritt Anfang Präsentation Zusammenfassung • Das Schneideverfahren eignet sich genau so gut für nichtlineare wie für lineare Systeme. • Die Νewton’sche Iteration eines nichtlinearen Gleichungssystems führt intern zur Lösung eines linearen Gleichungssystems. Die Hess’sche Matrix dieses Gleichungssystems erstreckt sich nur über die Schnittvariablen. • Die Νewton’sche Iteration kann auch sehr effizient im Falle grösserer linearer Systeme eingesetzt werden, da sie (bei korrekter Berechnung der H(x) Matrix) in einem einzigen Schritt konvergiert. • In Praxis wird die H(x) Matrix jedoch häufig numerisch ermittelt und nur angenähert. • Es ist aber möglich, symbolische Formelmanipulationstechniken zu entwickelt, welche symbolische Ausdrücke für die Elemente der Hess’schen Matrix ermitteln. 10. November, 2004 Anfang Präsentation