und Verfahrenstechnik Korrektur Übung 7
Transcrição
und Verfahrenstechnik Korrektur Übung 7
Berechnungsmethoden der Energie- und Verfahrenstechnik Korrektur Übung 7 Giuseppe Bonfigli IFD, ETH-Zürich 4. Mai 2010 Giuseppe Bonfigli (IFD, ETH-Zürich) Korrektur Übung 7 4. Mai 2010 1 / 21 Aufgabe 1 Teil a Aufgabe 1, Teil a Das Runge-Kutta-Verfahren 4. Ordnung zur Integration des Anfangswertproblems du = f (u, t), dt u(0) = u0 . (1) sieht, mit der üblichen Notation tn = n∆t, un ≈ u(tn ), n ∈ N, folgende Schritte vor: 1 Euler explizit von tn nach tn+ 2 = tn + ∆t/2 u1 = un + ∆t n n f (u , t ) 2 (2a) 1 “Euler implizit” von tn nach tn+ 2 = tn + ∆t/2 u2 = un + 1 ∆t f (u1 , tn+ 2 ) 2 (2b) “Leap-Frog” von tn nach tn+1 1 u3 = un + ∆t f (u2 , tn+ 2 ) n (2c) n+1 “Simpson” von t nach t » – 1 1 1 n n 2 2 1 un+1 = un + ∆t f (u , t ) + f (u1 , tn+ 2 ) + f (u2 , tn+ 2 ) + f (u3 , tn+1 ) 6 6 6 6 Giuseppe Bonfigli (IFD, ETH-Zürich) Korrektur Übung 7 4. Mai 2010 (2d) 2 / 21 Aufgabe 1 Teil a Zur Bestimmung des Verstärkungsfaktors G(z) wendet man die Integrationsvorschrift (2) auf das Dahlquist-Anfangswertproblem an du = λu, u(0) = u0 , λ ∈ C, (3) dt welches dem allgemeineren Problem (1) für f (u, t) = λu, entspricht. » – λ∆t ∆t λ = un 1 + (4a) u1 = un + 2 2 | {z } G1 (λ∆t) » – ∆t λ∆t (λ∆t)2 u2 = un + λu1 = un 1 + + 2 2 4 | {z } (4b) G2 (λ∆t) – » (λ∆t)3 (λ∆t)2 + u3 = un + ∆tλu1 = un 1 + ∆t + 2 4 | {z } (4c) G3 (λ∆t) n+1 u – 2 1 1 n 2 λu + λu1 + λu2 + λu3 = = u + ∆t 6 6 6 6 » – 2 3 (λ∆t) (λ∆t) (λ∆t)4 = un 1 + λ∆t + + + 2 6 24 | {z } n » (4d) G(λ∆t) Giuseppe Bonfigli (IFD, ETH-Zürich) Korrektur Übung 7 4. Mai 2010 3 / 21 Aufgabe 1 Teil a Gleichung (4a) wurde verwendet, um u1 in (4b) zu eliminieren. Analog wurde (4b) in (4c) angewendet, um u2 zu ersetzen, und Gleichungen (4a-c) wurden berücksichtigt, um den letzten Schritt in Gleichung (4d) durchzuziehen. Die Gleichungen (4a-d) stellen die geforderten Beziehungen zwischen un und u1 , u2 , u3 , un+1 dar. Die komplexen Funktionen G1 (z), G2 (z), G3 (z) und G(z), mit z = λ∆t, stellen die dazugehörigen Verstärkungsfaktoren (lineare Schrittoperatoren) dar. Giuseppe Bonfigli (IFD, ETH-Zürich) Korrektur Übung 7 4. Mai 2010 4 / 21 Aufgabe 1 Teil b Teil b 3 3 2 2 1 RK1 RK2 RK3 RK4 0 Im(λ∆t) Im(λ∆t) 1 −1 −1 −2 −2 −3 −3 −2 −1 Re(λ∆t) 0 RK1 RK2 RK3 RK4 0 −3 −0.2 0 0.2 Re(λ∆t) Abbildung: Bereiche absoluter Stabilität für explizite Runge-Kutta-Verfahren 1. bis 4. Ordnung. Das rechte Bild stellt den Bereich um die imaginäre Achse vergrössert dar. Alle betrachteten expliziten Runge-Kutta-Verfahren sind bedingt stabil. Die Bereiche absoluter Stabilität für die Verfahren 3. und 4. Ordnung enthalten Teile der imaginären Achse, diejenige für die Verfahren 1. und 2. Ordnung jedoch nicht. =⇒ Diese Verfahren 1. und 2. Ordnung sind nicht geeignet, um ungedämpfte Schwingungen (λ rein imaginär in (3)) zu integrieren. Giuseppe Bonfigli (IFD, ETH-Zürich) Korrektur Übung 7 4. Mai 2010 5 / 21 Aufgabe 1 Teil c Teil c Das Runge-Kutta-Verfahren wird auf die Dahlquist-Anfangswertprobleme du = λu, dt im Nπ + π 2 θ mit λ = λm := e angewendet. u(0) = 1 (5) , m = 0, . . . , Nθ für ∆t = ∆tn := n · 0.003, n = 0, . . . , Nt Sei Pm,n der Algorithmus, der aus der Anwendung des Runge-Kutta-Verfahrens zur Integration von Gleichung (5) mit λ = λm und ∆t = ∆tn resultiert. Sei u1m,n die Annäherung, die Pm,n liefert, für die exakte Lösung u(∆tn ) nach dem ersten Zeitschritt. Der Algorithmus Pm,n ist genau dann stabil wenn |u1m,n | ≤ |u(0)| = 1. Der komplexe Wert zm,n := λm ∆tn , wird in die Ebene (zr , zi ) nur eingetragen, wenn Pm,n instabil ist, d.h. wenn |u1m,n | > |u(0)| = 1. Giuseppe Bonfigli (IFD, ETH-Zürich) Korrektur Übung 7 4. Mai 2010 6 / 21 Aufgabe 1 Teil c Das geforderte Matlab-Skript kann wie folgt implementiert werden. Input-Parameter setzen: Nθ , Nt und Grenzen der zu untersuchenden Intervalle für ∆t und θ (λ = eiθ ). Ntheta = 100; mintheta=pi/2; maxtheta=pi*3/2; Nt=100; mindt=0; maxdt=3; %Anzahl der Punkte im Intervall fuer Phase theta %Kleinster Wert fuer theta %Groesster Wert fuer theta %Anzahl der Punkte im Intervall fuer dt %Kleinster Wert fuer dt %Groesster Wert fuer dt Wert zm,n als Element zz(m + 1,n + 1) des 2-d Arrays zz für alle m und n speichern. theta = mintheta:pi/Ntheta:maxtheta; dt = mindt:3/Nt:maxdt; zz= (exp(i*theta))’*dt; Anfangsbedingung u0m,n = 1 für den Algorithmus Pm,n als Element un(m + 1,n + 1) des 2-d Arrays un für alle m und n speichern. un=ones(size(zz)); Giuseppe Bonfigli (IFD, ETH-Zürich) Korrektur Übung 7 4. Mai 2010 7 / 21 Aufgabe 1 Teil c Runge-Kutta-Schritt für alle Algorithmen Pm,n durchführen. u1=un+1/2*un.*zz; u2=un+1/2*u1.*zz; u3=...... unp1=....... %1. %2. %3. %4. Teilschritt Teilschritt Teilschritt Teilschritt (Euler explizit) (Euler implizit) (Leap-Frog) (Simpson) Nach diesem Schritt enthält unp1(m + 1, n + 1) das Ergebnis u1m,n (∆tn ) des Algorithmus Pm,n nach einem Zeitschritt. Nur Werte von zm,n , für die |u1m,n | > |u0m,n | = 1, in die Ebene (zr , zi ) eintragen. hold on; for j=1:Ntheta+1; for i=1:Nt; if (abs(unp1(j,i))>1.) plot(real(zz(j,i)),imag(zz(j,i)),’x’); end; end end Giuseppe Bonfigli (IFD, ETH-Zürich) Korrektur Übung 7 4. Mai 2010 8 / 21 Aufgabe 1 Teil c 3 2 Im(λ∆ t) 1 0 −1 −2 −3 −3 −2 −1 Re(λ∆ t) 0 Abbildung: Werte zm,n := λm · ∆tn , für die der entsprechende Algorithmus Pm,n instabil ist. Die Region in der kein Punkt eingetragen wurde, da die entsprechenden Algorithmen Pm,n stabil sind, ist im Bereich absoluter Stabilität des Runge-Kutta-Verfahrens 4. Ordnung enthalten (vgl. Ergebnisse aus Teil b). Die Stabilität des Runge-Kutta-Verfahrens in der rechten Halbebene zr > 0 wurde hier nicht untersucht. Giuseppe Bonfigli (IFD, ETH-Zürich) Korrektur Übung 7 4. Mai 2010 9 / 21 Aufgabe 2 Teil a Aufgabe 2, Teil a Analog wie in Aufgabe 1 wird der Verstärkungsfaktor G(z) für das Zeitintegrationsverfahren durch dessen Anwendung auf das Dahlquist-Anfangswertproblem (3) untersucht. Mit der üblichen Notation ergibt sich h i un+1 = un + ∆t θ(λun+1 ) + (1 − θ)(λun ) , un+1 = un 1 + (1 − θ)λ∆t 1 + (1 − θ)z = un , 1 − θλ∆t 1 − θz {z } | 0 ≤ θ ≤ 1, (6) 0 ≤ θ ≤ 1. (7) G(λ∆t)=G(z) Die Isokonturen aus Teil b (vgl. nächste Folie) zeigen, dass das Verfahren für 0 ≤ θ < 1/2 bedingt und für 1/2 ≤ θ ≤ 1 unbedingt stabil ist. Giuseppe Bonfigli (IFD, ETH-Zürich) Korrektur Übung 7 4. Mai 2010 10 / 21 Aufgabe 2 Teil b Teil b Theta= 2.500000e−01 Theta= 5.000000e−01 Theta= 7.500000e−01 6 4 4 4 4 2 2 2 2 0 0 Im(λ∆t) 6 Im(λ∆t) 6 Im(λ∆t) Im(λ∆t) Theta= 0 6 0 0 −2 −2 −2 −2 −4 −4 −4 −4 −6 −6 −6 −6 −6 −6 −4 −2 0 Re(λ∆t) 2 4 6 −4 −2 0 Re(λ∆t) 2 4 6 −4 −2 0 Re(λ∆t) 2 4 6 −6 −6 −4 −2 0 Re(λ∆t) 2 4 Abbildung: Bereiche absoluter Stabilität für das Verfahren (6). Isokonturen |G| ≤ 1 sind schwarz dargestellt (∆-Isowerte= 0.2). Giuseppe Bonfigli (IFD, ETH-Zürich) Korrektur Übung 7 4. Mai 2010 11 / 21 Aufgabe 2 Teil c Teil c Für θ = 1 folgt aus dem Ausdruck für G(z) in Gleichung (7) G(z) = 1 . 1−z (8) Der Rand ∂S des Bereiches absoluter Stabilität ist durch die Gleichung |G(z)| = 1 bestimmt. Dies ergibt eine Gleichung, welche Real- und Imaginärteil von z = zr + izi verbindet: ˛ ˛ ˛ 1 ˛2 ˛ ˛ |G(z)| = 1 =⇒ |G(z)|2 = 1 =⇒ |1 − z|2 = 1 ˛ 1 − z ˛ = 1 =⇒ =⇒ |1 − zr − izi |2 = 1 =⇒ (zr − 1)2 + z2i = 1 (9) Die letzte Gleichung ist die Gleichung eines Kreises mit Radius 1 und Zentrum in (zr , zi ) = (1, 0) (vgl. Isokonturen aus Teil b). Giuseppe Bonfigli (IFD, ETH-Zürich) Korrektur Übung 7 4. Mai 2010 12 / 21 Aufgabe 3 Teil a Aufgabe 3, Teil a Um Zweideutigkeiten zu vermeiden, werden im Folgenden Zeitindizes in runden Klammern geschrieben (z.B. u(n∆t) = u(n) ). Ein hoch gestellter Index ohne Klammern ist dagegen, wie üblich, ein Exponent. Die Schritt-Vorschrift für Mehrschrittverfahren ist in der Form u(n+1) = u(n) + ∆t r X ak f (u(n−k) , t(n−k) ) , ak ∈ R. (10) k=−1 darstellbar und bezieht die Werte u(n−k) der zu integrierenden Funktion nicht nur zum aktuellen (u(n) ) und zum neuen (u(n+1) ) Zeitpunkt ein, sondern auch zu früheren Zeitpunkten (u(n−k) , k ≥ 1). Dies erschwert die Untersuchung der Stabilität, da die Darstellung der Schritt-Vorschrift für das Dahlquist-Anfangswertproblem in der skalaren Form u(n+1) = Gu(n) (wie in den Aufgaben 1 und 2) nicht mehr möglich ist. Giuseppe Bonfigli (IFD, ETH-Zürich) Korrektur Übung 7 4. Mai 2010 13 / 21 Aufgabe 3 Teil a Um die Stabilität des Verfahren zu untersuchen, muss die bisher verwendete Prozedur verallgemeinert werden. Dazu wird die Schritt-Vorschrift u(n+1) = u(n) + z r X ak u(n−k) , z = λ∆t. (11) k=−1 für das Dahlquist-Anfangswertproblem (3) in Matrix-Form dargestellt: v(n+1) = G(z) v(n) , (12) mit 2 v(n) = [u(n) u(n−1) . . . u(n−r) ], 6 6 6 G=6 6 6 4 1+a0 z 1−a−1 z a1 z 1−a−1 z 1 0 0 1 0 ... 0 .. 0 . ... ... ... .. . 1 ar z 1−a−1 z 0 0 0 3 7 7 7 7. 7 7 5 (13) Daraus folgt v(n) = Gn v(0) und die Untersuchung der Stabilität ist auf die Untersuchung der Beschränktheit der Norm ||Gn || für n −→ ∞ zurückgeführt. Dies kann durch die Berechnung des Spektralradius ρ(G) von G erreicht werden: Notwendige Bedingung für die Stabilität ist ρ(G) < 1. Hinreichende Bedingung für die Instabilität ist ρ(G) > 1. Giuseppe Bonfigli (IFD, ETH-Zürich) Korrektur Übung 7 4. Mai 2010 14 / 21 Aufgabe 3 Teil a Zur Lösung dieser Übung wird das folgende Ergebnis zu Nutze gemacht, nach dem das charakteristische Polynom der Matrix G in sehr einfacher Weise durch die Koeffizienten ak der Schritt-Vorschrift (10) bestimmt wird: Die Eigenwerte der Schritt-Matrix G für das Dahlquist-Anfangswertproblem sind genau die Lösungen der algebraischen Gleichung Gr+1 = Gr + ∆t r X ak λGr−k (14) ak Gr−k . (15) k=−1 oder, mit z = λ∆t, Gr+1 = Gr + z r X k=−1 Ein Beweis dieser Aussage wird in Anschluss zur Lösung der Aufgabe der Vollständigkeit halber geliefert. Giuseppe Bonfigli (IFD, ETH-Zürich) Korrektur Übung 7 4. Mai 2010 15 / 21 Aufgabe 3 Teil a Aus Gleichung (15) folgt, dass für alle Eigenwerte G von G gilt G−1 , −k k=−1 ak G | {z } z = Pr (16) z(G) und insbesondere für das zu untersuchende Adams-Moulton-Verfahren 3. Ordnung z= 5 G 12 | Giuseppe Bonfigli (IFD, ETH-Zürich) G−1 . 8 + 12 − 121 G−1 {z } (17) z(G) Korrektur Übung 7 4. Mai 2010 16 / 21 Aufgabe 3 Teil b Teil b Um eine aussagekräftige graphische Darstellung des Bereiches absoluter Stabilität S des Integrationsverfahrens zu erreichen, ist es ausreichend, dessen Rand ∂S := {z ∈ C : ρ(G) = 1}, (18) in der komplexen z-Ebene darzustellen. Weiter vereinfachend stellen wir die Menge U := {z ∈ C : z = z(G) für ein G ∈ C mit |G| = 1} (19) in der z-Ebene dar, welche alle Werte enthält, für die zumindest eine Lösung G von Gleichung (15) (d.h. ein Eigenwert von G) den Betrag 1 aufweist. Damit ist U eine Obermenge von ∂S, da ∂S genau die Werte von z enthält, für die die grösste Lösung von (15) den Betrag |G| = 1 besitzt. Der Bereich absoluter Stabilität S ist dann einer der Bereiche, oder die Vereinigung einiger Bereiche, in die die komplexe z-Ebene durch U aufgeteilt wird. Giuseppe Bonfigli (IFD, ETH-Zürich) Korrektur Übung 7 4. Mai 2010 17 / 21 Aufgabe 3 Teil b Die Menge U kann mittels Matlab dargestellt werden, indem man die Abbildung des Einheitskreises G = eiθ , 0 ≤ θ ≤ 2π, durch die Funktion z(G), in der komplexen z-Ebene aufträgt. Dies kann wie folgt erreicht werden. Gleichmässig verteilte Punkte auf dem Einheitskreis der komplexen G-Ebene ins Array glim speichern. Ntheta = 100; mintheta=0; maxtheta=pi*2; %Anzahl der Punkte im Intervall fuer Phase theta %Kleinster Wert fuer theta %Groesster Wert fuer theta dtheta= (maxtheta-mintheta)/Ntheta; theta = mintheta:dtheta:maxtheta; glim = exp(i*theta); Abbildungen durch z(G) der Punkte in glim ins Array zlim speichern. zlim=(glim-1)./(5/12*glim+8/12-1/12*glim.^(-1)); Berechnete Abbildungen in der Ebene (zr , zi ) auftragen. plot(real(zlim),imag(zlim),’g’); Giuseppe Bonfigli (IFD, ETH-Zürich) Korrektur Übung 7 4. Mai 2010 18 / 21 Teil b 4 2 3 1.5 2 1 O1 O2 O3 O4 O5 1 0 −1 Im(λ∆ t) Im(λ∆ t) Aufgabe 3 0.5 −0.5 −2 −1 −3 −1.5 −4 −6 −4 −2 Re(λ∆ t) 0 2 O1 O2 O3 O4 0 −2 −2 −1 Re(λ∆ t) 0 Abbildung: Mengen U für die impliziten Adams-Moulton-Verfahren und die expliziten Adams-Bashforth-Verfahren unterschiedlicher Ordnung. Giuseppe Bonfigli (IFD, ETH-Zürich) Korrektur Übung 7 4. Mai 2010 19 / 21 Aufgabe 3 Beweis zu Gleichung (15) Beweis zu Gleichung (15) Es soll bewiesen werden, dass die Eigenwerte der Schritt-Matrix G aus Gleichung (12) genau die Wurzeln von Gleichung (15) sind. Zuerst wird gezeigt, dass, wenn G ∈ C Gleichung (15) erfüllt, dann G ein Eigenwert von G mit Eigenvektor v = [Gr Gr−1 . . . G0 ]T ist. Mit der vorher eingeführten Notation sei v(0) = [u(0) u(−1) . . . u(−r) ]T = v. Dann ergibt die Schritt-Vorschrift (10) angewendet auf die Dahlquist-Gleichung (3) u(1) = u(0) + ∆t r X ak λu(−k) = Gr + z k=−1 r X ak G(r−k) . (20) k=−1 Aus dem Vergleich der Gleichungen (15) und (20) folgt u(1) = Gr+1 , und also G v = G v(0) = v(1) = [u(1) u(0) . . . u(−r+1) ]T = [Gr+1 ; . . . G1 ]T = Gv. Damit ist die erste Teilaussage bewiesen. Giuseppe Bonfigli (IFD, ETH-Zürich) Korrektur Übung 7 4. Mai 2010 20 / 21 Aufgabe 3 Beweis zu Gleichung (15) Es bleibt zu zeigen, dass alle Eigenwerte von G Lösungen der Gleichung (15) sind. Dazu bezeichnet im Folgenden die Notation (v)k den k-ten Eintrag des Vektors v. Sei G ein Eigenwert und v der entsprechende Eigenvektor. Durch Nachrechnen zeigt man (v)k = (Gr+1−k v) r+1 , 1 ≤ k ≤ r + 1, (21) und, da v ein Eigenvektor von G ist, folgt (Gr+1−k v) r+1 = Gr+1−k (v)r+1 , 1 ≤ k ≤ r + 1. (22) Daraus folgt (v)k = (v)r+1 Gr+1−k , k = 1, . . . , r + 1. =⇒ v = (v)r+1 · [Gr Gr−1 . . . G0 ]. Und, ohne Einschränkung der Allgemeinheit, darf man Annehmen (v)r+1 = 1. Sei nun v(0) = v. Berechnet man v(1) durch die Schritt-Vorschrift (12), dann folgt v(1) = G v(0) = G v = Gv. =⇒ u(1) = (v(1) )1 = (Gv(0) )1 = G · Gr = Gr+1 . Wegen der Definition von u(1) , erfüllen u(1) = Gr+1 , u(0) = Gr , . . ., u(−r) = G0 die Schritt-Vorschrift (11). =⇒ G erfüllt Gleichung (15). Giuseppe Bonfigli (IFD, ETH-Zürich) Korrektur Übung 7 4. Mai 2010 21 / 21