3.1 Beispiel: mathematisches Pendel Fadenpendels in einer ... · 3.1 Beispiel: mathematisches...

23
3.1 Beispiel: mathematisches Pendel Wir untersuchen die Bewegungsleichung des mathematischen (ged¨ ampften) Fadenpendels in einer Dimension ¨ ϕ + α ˙ ϕ 2 0 sin ϕ =0, Ω 2 0 = g/ℓ (1) Das ¨ aquivalente System 1. Ordnung: ˙ ϕ = ω ˙ ω = αω Ω 2 0 sin ϕ (2) + Anfangsbedingungen ϕ(0) = ϕ 0 , ω (0) = ω 0 . Zwei Fixpunkte (Ruhelagen) ˙ ϕ ω = 0: ϕ (0) 0 =0, ϕ (0) 1 = π ϕ (0) 0 : stabiler Fokus, ϕ (0) 1 : instabiler Sattelpunkt.

Transcript of 3.1 Beispiel: mathematisches Pendel Fadenpendels in einer ... · 3.1 Beispiel: mathematisches...

Page 1: 3.1 Beispiel: mathematisches Pendel Fadenpendels in einer ... · 3.1 Beispiel: mathematisches Pendel Wir untersuchen die Bewegungsleichung des mathematischen (ged¨ampften) Fadenpendels

3.1 Beispiel: mathematisches Pendel

Wir untersuchen die Bewegungsleichung des mathematischen (gedampften)

Fadenpendels in einer Dimension

ϕ+ α ϕ+Ω20 sinϕ = 0, Ω2

0 = g/ℓ (1)

Das aquivalente System 1. Ordnung:

ϕ = ω

ω = −αω −Ω20 sinϕ (2)

+ Anfangsbedingungen

ϕ(0) = ϕ0, ω(0) = ω0 .

Zwei Fixpunkte (Ruhelagen) ϕ = ω = 0:

ϕ(0)0 = 0, ϕ

(0)1 = π

ϕ(0)0 : stabiler Fokus, ϕ

(0)1 : instabiler Sattelpunkt.

Page 2: 3.1 Beispiel: mathematisches Pendel Fadenpendels in einer ... · 3.1 Beispiel: mathematisches Pendel Wir untersuchen die Bewegungsleichung des mathematischen (ged¨ampften) Fadenpendels

Energiesatz

Multiplikation von (1) mit ϕ und Integration uber t:

1

2ϕ2 −Ω2

0 cosϕ = E0 − EW (t) (3)

E0: Integrationskonstante. Warmeenergie (Reibung)

EW (t) = α∫

dt ϕ2

Im reibungsfreien Fall (α = 0) gilt Energieerhatlung

E = E0

und das Pendel kommt nie zur Ruhe.

Page 3: 3.1 Beispiel: mathematisches Pendel Fadenpendels in einer ... · 3.1 Beispiel: mathematisches Pendel Wir untersuchen die Bewegungsleichung des mathematischen (ged¨ampften) Fadenpendels

Euler-Vorwarts-Verfahren

PROGRAM PENDELCHARACTER*1 cINTEGER PGCURSREAL, DIMENSION(2) :: fipg,ompgpi=3.14159265omega=1.; alpha ! Eigenfrequenz, Daempfungtper=2.*pi/omega ! Priodenlaenge

CWRITE(6,*)’dt?’READ(5,*) dtCALL PGBEGIN(0,’/xwin’,1,1): CALL PGPAP(6.,1.)CALL PGENV(-pi,pi,-pi,pi,0,1)

1 fi=0.; om=0.K=PGCURS(fi,om,c) ! Startpunkt mit Cursor waehlenIF(C.EQ.’L’) THEN ! Bildschirm loeschen durch LCALL PGERASCALL PGBOX(’ABCNT’,0.,0,’ABCNT’,0.,0)GOTO 1

ENDIF

Page 4: 3.1 Beispiel: mathematisches Pendel Fadenpendels in einer ... · 3.1 Beispiel: mathematisches Pendel Wir untersuchen die Bewegungsleichung des mathematischen (ged¨ampften) Fadenpendels

IF(C.EQ.’ ’) GOTO 999 ! Programm beenden durch <blank>

t=0.; n=010 CONTINUE ! Zeitschleife

t=t+dtfip=om ! Euler Vorwaertsomp=-alpha*om-omega**2*SIN(fi)

Cfi=fi+fip*dtom=om+omp*dt

Cfipg(1)=fipg(2); ompg(1)=ompg(2)fipg(2)=fi; ompg(2)=omIF(fi.GT.pi) THENfi=fi-2.*pifipg=fi

ELSEIF(n.NE.0) CALL PGLINE(2,fipg,ompg)

ENDIFIF(fi.LT.-pi) THENfi=fi+2.*pifipg=fi

ELSEIF(n.NE.0) CALL PGLINE(2,fipg,ompg)

ENDIF

Page 5: 3.1 Beispiel: mathematisches Pendel Fadenpendels in einer ... · 3.1 Beispiel: mathematisches Pendel Wir untersuchen die Bewegungsleichung des mathematischen (ged¨ampften) Fadenpendels

n=n+1IF(n.EQ.50) THENE=.5*fip**2-omega**2*cos(FI) ! Gesamtenergien=1WRITE(6,*) t,fi,e

ENDIFIF(t.LT.50.*tper) GOTO 10GOTO 1

999 CALL PGENDEND

Programm

Page 6: 3.1 Beispiel: mathematisches Pendel Fadenpendels in einer ... · 3.1 Beispiel: mathematisches Pendel Wir untersuchen die Bewegungsleichung des mathematischen (ged¨ampften) Fadenpendels

Phasenraum und Gesamtenergie Pendel, Euler-Vorwarts-Verfahren

α = 0, ∆t = 0.05

Page 7: 3.1 Beispiel: mathematisches Pendel Fadenpendels in einer ... · 3.1 Beispiel: mathematisches Pendel Wir untersuchen die Bewegungsleichung des mathematischen (ged¨ampften) Fadenpendels

Phasenraum und Gesamtenergie Pendel, Euler-Vorwarts-Verfahren

α = 0.1, ∆t = 0.05

Page 8: 3.1 Beispiel: mathematisches Pendel Fadenpendels in einer ... · 3.1 Beispiel: mathematisches Pendel Wir untersuchen die Bewegungsleichung des mathematischen (ged¨ampften) Fadenpendels

Phasenraum und Gesamtenergie Pendel, Euler-Vorwarts-Verfahren

α = 0.1, ∆t = 0.15

Page 9: 3.1 Beispiel: mathematisches Pendel Fadenpendels in einer ... · 3.1 Beispiel: mathematisches Pendel Wir untersuchen die Bewegungsleichung des mathematischen (ged¨ampften) Fadenpendels

Vorlaufiges Fazit (Euler-Vorwarts):

– Die Ergebnisse fur α = 0 sind alle falsch (negative numerische Dampfung)

– Fur α > 0 erhalt man qualitativ richtige Resultate fur kleine ∆t

– Auch im gedampften Fall wachst die Energie an und die Trajektorien

entfernen sich vom stabilen (!) Fixpunkt, wenn ∆t zu groß wird.

Page 10: 3.1 Beispiel: mathematisches Pendel Fadenpendels in einer ... · 3.1 Beispiel: mathematisches Pendel Wir untersuchen die Bewegungsleichung des mathematischen (ged¨ampften) Fadenpendels

Phasenraum und Gesamtenergie Pendel, Euler-Ruckwarts-Verfahren

Harmonischer Oszillator, implizites Verfahren 1. Ordnung, α = 0

∆t = 0.05 (schwarz), ∆t = 0.1 (rot)

Page 11: 3.1 Beispiel: mathematisches Pendel Fadenpendels in einer ... · 3.1 Beispiel: mathematisches Pendel Wir untersuchen die Bewegungsleichung des mathematischen (ged¨ampften) Fadenpendels

3.3 Verfahren hoherer Ordnung

Euler-Verfahren konvergiert schlecht, liefert ungenaue, (unphysikalische)

Ergebnisse.

Bei konservativen Systemen qualitativ falsches Verhalten.

Ausweg: Verfahren hoherer Ordnung in ∆t.

3.3.1 Verfahren von Heun

Zunachst eindimensionales System

dx

dt= f(t, x) , (4)

Integriere (4) uber t

∫ t+∆t

tdt′

dx

dt′= x(t+∆t)− x(t) =

∫ t+∆t

tdt′ f(t′, x(t′)) (5)

Ergibt exakte Iterationsvorschrift

x(t+∆t) = x(t) +∫ t+∆t

tdt′ f(t′, x(t′)) . (6)

Page 12: 3.1 Beispiel: mathematisches Pendel Fadenpendels in einer ... · 3.1 Beispiel: mathematisches Pendel Wir untersuchen die Bewegungsleichung des mathematischen (ged¨ampften) Fadenpendels

Euler-Methode, wenn Integral durch Rechteckregel genahert:

∫ t+∆t

tdt′ f(t′, x) ≈ f(t, x(t))∆t .

durch genauere Trapezregel

∫ t+∆t

tdt′ f(t′, x) ≈

(

f(t, x(t)) + f(t+∆t, x(t+∆t))

)

∆t

2,

ergibt sich in (6)

x(t+∆t) = x(t) +

(

f(t, x(t)) + f(t+∆t, x(t+∆t))

)

∆t

2. (7)

Rechte Seite enthalt x(t+∆t), deshalb implizite Vorschrift.

Berechnet man x(t+∆t) rechts aus einem Euler-Verfahren

x(t+∆t) = x(t) + f(t, x(t))∆t

ergibt sich

x(t+∆t) = x(t) +

(

f(t, x(t)) + f(t+∆t, x(t) + f(t, x(t))∆t)

)

∆t

2, (8)

das Verfahren von Heun.

Page 13: 3.1 Beispiel: mathematisches Pendel Fadenpendels in einer ... · 3.1 Beispiel: mathematisches Pendel Wir untersuchen die Bewegungsleichung des mathematischen (ged¨ampften) Fadenpendels

Genauigkeit

Von welcher Ordnung ist der Fehler beim Verfahren von Heun?

x(t+∆t)− x(t) =

(

f(x(t)) + f(x(t) + f(x(t))∆t)

)

∆t

2

Entwickeln der linken Seite nach ∆t

L.S. =dx

dt∆t+

1

2

d2x

dt2∆t2 +

1

6

d3x

dt3∆t3 + ... = f∆t+

1

2

df

dxf∆t2

+1

6

(

f2d2f

dx2+ f

(

df

dx

)2)

∆t3 + .... ,

der rechten nach f∆t:

R.S. =∆t

2

(

2f +df

dxf∆t+

1

2

d2f

dx2f2∆t2

)

+ ... ,

wobei ... Terme der Ordnung ∆t4 bedeuten.

Beide Seiten stimmen bis zur Ordnung ∆t2 uberein.

Fehler hat die Ordnung ∆t3

Page 14: 3.1 Beispiel: mathematisches Pendel Fadenpendels in einer ... · 3.1 Beispiel: mathematisches Pendel Wir untersuchen die Bewegungsleichung des mathematischen (ged¨ampften) Fadenpendels

Numerische Stabilitat

Wie beim Euler-Verfahren lasst Linearisierung um stabilen Fixpunkt

~u(t+∆t) = Q · ~u(t)

Q = 1+∆t L+1

2∆t2L2

mit L als Jacobi-Matrix

Lij =∂fi∂xj

~x(0). (9)

Numerische Stabilitat folgt aus ρ(Q) < 1, also

ρ = maxi

|1+∆tλi +1

2∆t2λ2i | < 1

mit Eigenwerten λi von L.

Page 15: 3.1 Beispiel: mathematisches Pendel Fadenpendels in einer ... · 3.1 Beispiel: mathematisches Pendel Wir untersuchen die Bewegungsleichung des mathematischen (ged¨ampften) Fadenpendels

Beispiel harmonischer Oszillator:

λ12 = −α

1

2i√

4Ω20 − α2

ergibt Bedingung fur die Stabilitatsgrenze (maximaler Zeitschritt):

−α+1

2α2∆t−

1

2αΩ2

0∆t2 +1

4Ω4

0∆t3 = 0 .

Maximaler Zeitschritt, der fur α > 0 großer als beim Eulerverfahren ist

Fur ungedampften Fall α = 0 ist Heun-Verfahren fur das Pendel immer

noch bedingungslos instabil.

Page 16: 3.1 Beispiel: mathematisches Pendel Fadenpendels in einer ... · 3.1 Beispiel: mathematisches Pendel Wir untersuchen die Bewegungsleichung des mathematischen (ged¨ampften) Fadenpendels

Spektralradien uber ∆t, harmonischer Oszillator, Ω0 = 1, links: gedampft,

α = 1/2, rechts: ungedampft, α = 0. Grun: Euler, Rot: Heun, Gelb:

Runge-Kutta (RK4).

Page 17: 3.1 Beispiel: mathematisches Pendel Fadenpendels in einer ... · 3.1 Beispiel: mathematisches Pendel Wir untersuchen die Bewegungsleichung des mathematischen (ged¨ampften) Fadenpendels

3.3.2 Runge-Kutta-Verfahren

– Erhohung der Ordnung wirkt sich positiv auf Schrittweite und Genauigkeit

aus.

– Verfahren hoherer Ordnung

Runge-Kutta-Verfahren (RK).

Normalerweise 4. Ordnung (RK4).

Der Einfachheit halber hier nur 2. Ordnung:

Sei x = x(t) gesuchte Losung der DGL

x = f(t, x(t)) .

Man entwickelt x um t+∆t/2

x(t) = x(t+∆t/2)−∆t

2x(t+∆t/2) +

1

2

(

∆t

2

)2

x(t+∆t/2) +O(∆t3)

x(t+∆t) = x(t+∆t/2) +∆t

2x(t+∆t/2) +

1

2

(

∆t

2

)2

x(t+∆t/2) +O(∆t3)

Page 18: 3.1 Beispiel: mathematisches Pendel Fadenpendels in einer ... · 3.1 Beispiel: mathematisches Pendel Wir untersuchen die Bewegungsleichung des mathematischen (ged¨ampften) Fadenpendels

Subtraktion der beiden Gleichungen

x(t+∆t) = x(t) +∆t x(t+∆t/2) +O(∆t3) ,

Iterationsvorschrift der Ordnung ∆t2.

man muss x = f fur t+∆t/2 kennen.Euler-Verfahren:

x(t+∆t/2) = f(t+∆t/2, x(t+∆t/2)) = f(t+∆t/2, x(t) +∆t/2 f(t, x(t))) +O(∆t2) .

Ein Iterationschritt sieht so aus:

k1 = ∆t f(t, x(t))

k2 = ∆t f(t+∆t/2, x(t) + k1/2) (10)

x(t+∆t) = x(t) + k2 .

Genauso lasst sich ein Verfahren 4. Ordnung (RK4) konstruieren:

k1 = ∆t f(t, x(t))

k2 = ∆t f(t+∆t/2, x(t) + k1/2)

k3 = ∆t f(t+∆t/2, x(t) + k2/2) (11)

k4 = ∆t f(t+∆t, x(t) + k3)

x(t+∆t) = x(t) +1

6(k1 + k2 + k3 + k4) .

Page 19: 3.1 Beispiel: mathematisches Pendel Fadenpendels in einer ... · 3.1 Beispiel: mathematisches Pendel Wir untersuchen die Bewegungsleichung des mathematischen (ged¨ampften) Fadenpendels

SUBROUTINE rk4(y,t,n,dt,eq)C integriert das dgl-System definiert in eq von t bis t+dt

C y abh. Variablen y(n)C t unabh. VariableC n Anzahl der abh. VariablenC dt ZeitschrittC eq die rechten Seiten der dgls (subroutine)

REAL, DIMENSION(n) :: yREAL, DIMENSION(size(y)) :: f1,f2,f3,f4

CALL eq(f1,y,t); f1=dt*f1CALL eq(f2,y+.5*f1,t+dt/2.); f2=dt*f2CALL eq(f3,y+.5*f2,t+dt/2.); f3=dt*f3CALL eq(f4,y+f3,t+dt)y=y+(f1+2.*f2+2.*f3+f4*dt)/6.END

Fehler bei RK4 O(∆t5), die Stabilitat (ohne Rechnung)

ρ = maxi

1+∆tλi +1

2∆t2λ2i +

1

6∆t3λ3i +

1

24∆t4λ4i

< 1 . (12)

Page 20: 3.1 Beispiel: mathematisches Pendel Fadenpendels in einer ... · 3.1 Beispiel: mathematisches Pendel Wir untersuchen die Bewegungsleichung des mathematischen (ged¨ampften) Fadenpendels

Beispiel: Mathematisches Pendel mit RK4

Als RK4-Anwendung wird das mathematische Pendel untersucht.

RK4 liefert selbst fur den problematischen ungedampften Grenzfall α = 0

konvergierende Ergebnisse.

Fur kleine Zeitschritte wird Energie gut konserviert.

Programmbeispiel zur Berechnung einer Trajektorie,Anfangsbedingung ϕ = 2, ω = 0:

PROGRAM pendel_rk4REAL, DIMENSION(2) :: y ! Variable phi, omega

...y=(/2.,0./) ! Anfangswert fuer phi und omegat=0.; dt=0.01 ! dt am AnfangDO ! Beginn Zeitschleife

t=t+dtCALL rk4(y,t,2,dt,pendel_dgl) ! Ein Zeitschritt RK4

...IF(t.GT.tend) EXIT

ENDDO...

Page 21: 3.1 Beispiel: mathematisches Pendel Fadenpendels in einer ... · 3.1 Beispiel: mathematisches Pendel Wir untersuchen die Bewegungsleichung des mathematischen (ged¨ampften) Fadenpendels

Steht die Routine rk4 in der Programm-Library, so muss in der Datei inder das Hauptprogramm steht nur die Subroutine pendel dgl spezifiziertwerden.

...CONTAINS ! Dadurch sind alpha, omega bekannt (globale Variable)

SUBROUTINE pendel_dgl(rhside,y,t)REAL, DIMENSION(2) :: rhside,yrhside(1)=y(2)rhside(2)=-alpha*y(2)-omega**2*SIN(Y(1))END SUBROUTINE pendel_dgl

END PROGRAM pendel_rk4

Page 22: 3.1 Beispiel: mathematisches Pendel Fadenpendels in einer ... · 3.1 Beispiel: mathematisches Pendel Wir untersuchen die Bewegungsleichung des mathematischen (ged¨ampften) Fadenpendels

Das ungedampfte mathematische Pendel (α = 0) mit RK4

fur ∆t = 0.1 bleibt die Energie uber viele Perioden in guter Naherung

erhalten.

Page 23: 3.1 Beispiel: mathematisches Pendel Fadenpendels in einer ... · 3.1 Beispiel: mathematisches Pendel Wir untersuchen die Bewegungsleichung des mathematischen (ged¨ampften) Fadenpendels

Das ungedampfte mathematische Pendel (α = 0) mit RK4

Bei zu großem Zeitschritt verfalscht die numerische Dampfung das Re-

sultat (∆t = 1)

Programm