21.06.2014 Aufrufe

Serie 13 - SAM

Serie 13 - SAM

Serie 13 - SAM

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

D-MATH Numerische Methoden für D-PHYS FS 20<strong>13</strong><br />

Dr. Vasile Gradinaru<br />

Dr. Roger Käppeli<br />

<strong>Serie</strong> <strong>13</strong><br />

1. Anfangsamplitude eines Pendels zu gegebener Periode<br />

Die Bewegungsgleichung eines mathematischen Pendels (Reibung vernachlässigt) der Länge l ist eine<br />

nicht-lineare gewöhnliche Differentialgleichung 2. Ordnung, und das zugehörige Anfangswertproblem<br />

ist<br />

¨φ = − g l sin(φ), φ(0) = φ 0 ∈ (0,π/2] , ˙φ(0) = 0 , (1)<br />

wobeiφder Winkel des Pendels in Bezug zur vertikalen Richtung andg die Gravitationskonstante ist.<br />

Bei kleinen Winkelnφist es gerechtfertig die Näherungsin(φ) ≈ φ zu verwenden, um die Gleichung zu<br />

approximieren. In diesem Fall ist die Lösung eine harmonische Oszillation, deren PeriodeT unabhängig<br />

vom Anfangswertφ 0 ist. Für grosse Amplituden jedoch ist die PeriodeT der Lösung eine Funktion des<br />

Anfangswertes.<br />

Wir betrachten daher im Folgenden das nicht-lineare Anfangswertproblem (1) mit l = 0.6 m und<br />

g = 9.81 ms −2 und betrachten das Problem:<br />

Bestimme den Anfangswertφ 0 , so dassT = 1.8 die Periode der Lösung ist.<br />

Für die numerische Lösung dieses Problems müssen wir sowohl numerische Integration als auch numerische<br />

Nullstellensuche verwenden.<br />

a) Schreibe die Differentialgleichung 2. Ordnung (1) als eine System von Differentialgleichungen 1.<br />

Ordnung.<br />

b) Schreibe eine Python Funktion<br />

IntegratePendulum(phi0,tEnd,l,g,flag)<br />

die den Integratorode45 verwendet um (1) mit den Parameternl andg zu lösen. Fürflag=True<br />

soll nur die numerische Approximation von ϕ(tEnd) anstatt die gesamte numerische Lösung zurückgegeben<br />

werden.<br />

c) Löse das Anfangswertproblem (1) für die Anfangswerte φ 0 = 0.8 π 2 und φ 0 = 0.99 π 2<br />

. Plotte in<br />

beiden Fällen den zeitlichen Verlauf vonφund ˙φ. Verifiziere, dass die Periode der Lösung für den<br />

ersten Startwert kleiner und für den zweiten Startwert grösser alsT = 1.8.<br />

Aufgrund der Symmetrie folgt: Das Pendel passiert in jedem Fall beit = T 4 undt = 3 4T seinen tiefsten<br />

Punkt. Daher können wir das Problem (1.) folgendermassen formulieren:<br />

Bestimme φ 0 > 0, so dass für die Lösungt ↦→ φ(t) von (1)φ(0.45) = 0. gilt<br />

Dieses Problem kann als Nullstellensuche für die Funktion F : [0,π/2] ↦→ R, F(φ 0 ) := φ(0.45)<br />

formuliert werden, wobeiφ(t) durch (1) definiert ist.<br />

Die Funktion F ist stetig and steigend auf [0.8π/2,0.99π/2] (grössere Anfangswerte sind längere Perioden).<br />

Daher hatF auf diesem Intervall eine eindeutige Nullstelle, die beispielsweise mit der Bisektionsmethode<br />

numerisch berechnet werden kann.


d) Verwende die Python-Funktonfsolve aus dem Modulescipy.optimize um die Nullstelle<br />

von F(φ 0 ) zu bestimmmen. VerwendeIntegratePendulum aus Teilaufgabe b) um den Wert<br />

F(φ 0 ) = φ(0.45) zu approximieren.<br />

Plotte die Lösung und verifiziere, dass die numerische Lösung tatsächlich die PeriodeT = 1.8 hat.<br />

Hinweis: Verwende das TemplatePendulum_Template.py undode45.py.<br />

2. Numerische Lösung der Pendelgleichung und Energieerhaltung<br />

Implementiere im TemplatependSolver_Template.py jeweils das explizite Eulerverfahren, das<br />

implizite Eulerverfahren und die implizite Mittelpunktsregel in den Funktionen{IntegratePendulumEE,<br />

IntegratePendulumIE<br />

undIntegratePendulumIM um numerische Lösungen der Pendelgleichung (s. <strong>Serie</strong> 12) auf einem<br />

equidistanten Gitter zu bestimmen.<br />

Plotte die numerischen Lösungen der drei Methoden zu den Daten l = 0.6 m, g = 9.81 ms −2 , T = 4,<br />

ϕ 0 = 1.4855<strong>13</strong> undN = 500 Zeitschritten im Phasenraum(ϕ, ˙ϕ).<br />

Plotte auch den zeitlichen Verlauf der kinetischen Energie, der potentiellen Energie und der Gesamtenergie.<br />

Hinweis: Verwende fsolve aus dem Modul scipy.optimize um nicht-lineare Gleichungen zu<br />

lösen.<br />

Abgabe: 28./29.05.20<strong>13</strong>, in den Übungsgruppen oder in den Fächern im (Vor)Raum HG G 53<br />

Koordinator: Dr. Roger Käppeli, HG G 52.1,roger.kaeppeli@sam.math.ethz.ch<br />

Webpage:<br />

http://www.math.ethz.ch/education/bachelor/lectures/fs20<strong>13</strong>/other/nm_pc

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!