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