Benutzer-Werkzeuge

Webseiten-Werkzeuge


einfuehrung_in_die_numerik

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
einfuehrung_in_die_numerik [2024/01/12 22:04] torsten.roehleinfuehrung_in_die_numerik [2024/01/13 15:13] (aktuell) torsten.roehl
Zeile 7: Zeile 7:
 ** Ut tensio, sic vis (1678)** ** Ut tensio, sic vis (1678)**
  
 +==== Hook'sche Gesetz ====
 Das Hook'sche Gesetz wird in der  Physik behandelt. Wir wollen es hier nur so weit in Erinnerung rufen (bzw. in eine Form bringen), wie es für die Numerik nützlich ist.  Das Hook'sche Gesetz wird in der  Physik behandelt. Wir wollen es hier nur so weit in Erinnerung rufen (bzw. in eine Form bringen), wie es für die Numerik nützlich ist. 
  
-Das Hook'sche Gesetz lautet$\overrightarrow{F} = -k \cdot \overrightarrow{x}$ +Für das  Hook'sche Gesetz gilt:
 \\ \\
-Hierbei ist: 
- 
-  * $\overrightarrow{x}$ die Strecke (in m), um die die Feder (von ihrer Ruhelage aus gemessen) ausgedehnt wird. 
-  * $\overrightarrow{F}$ die rücktreibende Kraft (in Newton N). Die rücktreibende Kraft ist der Kraft, die zur Auslenkung der Feder benötigt wird, entgegengesetzt, deshalb ist ein Minuszeichen nötig. 
-  * k die Federkonstante (Einheit: N/m). Sie hängt von der Federsorte ab. Ist also experimentell zu bestimmen. //Eine Federkonstante von z.B. k = 3 N/m bedeutet, dass sich die Feder um einen halben Meter dehnt, wenn sie mit einer Kraft von 1.5 N belastet würde.// 
-  * Vektoren werden mit Pfeilen gekennzeichnet, manchmal werden sie hier der Übersichtshaber weggelassen, gehören dann aber immer dazu gedacht :-) 
  
  
 +  * $\overrightarrow{x}$, ist die Strecke (in m), um die die Feder (von ihrer Ruhelage aus gemessen) ausgedehnt wird.
 +  * $\overrightarrow{F}$, ist die rücktreibende Kraft (in Newton N). Die rücktreibende Kraft ist der Kraft, die zur Auslenkung der Feder benötigt wird, entgegengesetzt, deshalb ist ein Minuszeichen nötig.
 +  * k, ist die Federkonstante (Einheit: N/m). Sie hängt von der Federsorte ab. Ist also experimentell zu bestimmen. //Eine Federkonstante von z.B. k = 3 N/m bedeutet, dass sich die Feder um einen halben Meter dehnt, wenn sie mit einer Kraft von 1.5 N belastet würde.//
 +  
    
-| {{ :inf:170px-hooke_de_potentia_restitutiva_frontispiece_detail.png?120 |}}  a) |{{url>http://i4k.informatics4kids.de/addons-i4k/misc/simple_harmonic_oscillator.gif 100, 300, noborder}} a) | a) Die Orginalversuchsanordnung von Robert Hook (1635-1704). b) FederpendelEine Animation der Gleichung  F  = - k x von Oleg Alexandrow | +| {{ :inf:170px-hooke_de_potentia_restitutiva_frontispiece_detail.png?120 |}}  **a)** |{{url>https://www.informatics4kids.de/addons-i4k/misc/simple_harmonic_oscillator.gif 100, 300, noborder}} **b)** **a)**\\ Der originale \\ Versuchsaufbau \\ von Robert Hook (1635-1704).\\ \\ **b)**\\ Federpendel\\ Eine Animation  der\\ Gleichung   F  = - k x \\ von Oleg Alexandrow | 
  
 Die Kraft, die nötig ist, um die Feder zu dehnen, wird umso größer je weiter die Feder gedehnt werden soll. Wir gehen davon aus, dass wir die Feder nur so weit dehnen wollen, dass sie, ohne beschädigt zu werden, wieder in den Ausgangszustand gelangt, ansonsten gilt das Hook'sche Gesetz natürlich nicht.  Die Kraft, die nötig ist, um die Feder zu dehnen, wird umso größer je weiter die Feder gedehnt werden soll. Wir gehen davon aus, dass wir die Feder nur so weit dehnen wollen, dass sie, ohne beschädigt zu werden, wieder in den Ausgangszustand gelangt, ansonsten gilt das Hook'sche Gesetz natürlich nicht. 
Zeile 55: Zeile 53:
 ---- ----
  
-=== Was ist ein Phasendiagramm? ===+==== Was ist ein Phasendiagramm? ====
  
 +| <wrap lo><color #00a2e8>**Phasendiagramm** - ein  Diagramm mit der \\ Geschwindigkeit (Impuls) \\ als Ordinate und dem Ort  als Abszisse.</color>\\ \\  **Phasenpunkt** - ein Punkt in der x-v-Ebene zu einem bestimmten Zeitpunkt <color #00a2e8>\\ \\ **Trajektorie** - eine Kurve, die sich ergibt, wenn der Phasenpunkt \\ sich in der Zeit bewegt. </color> </wrap>|<wrap lo>
 +Wenn sich ein Teilchen entlang der **x-Achse** bewegt, wird  dessen Bewegung häufig als ein Graph der Koordinate (wir nennen sie hier x) oder aber der Geschwindigkeit (v=dx/dt)  als Funktion der Zeit dargestellt.\\ \\
 +Eine andere aber überaus nützliche Darstellungsweise erhält man, wenn man die  Geschwindigkeit v des Teilchens in Abhängigkeit von der Position **x** zu jedem Zeitpunkt **t** graphisch darstellt. \\ \\ Für einen bestimmten Zeitpunkt t erhält man so einen Punkt (x(t),v(t)), den man als **Phasenpunkt** bezeichnet. Dieser Punkt wird sich im Laufe der Zeit weiter bewegen. Die Kurve die sich dabei ergibt, bezeichnet man als **Trajektorie** und die Fläche (b.z.w. Raum), in der sich das Teilchen bewegt als Phasenfläche (**Phasenraum**). Das Diagramm als ganzes nennt sich dann **Phasendiagramm**. Solche Diagramme spielen eine wichtige Rolle in allen Forschungsrichtungen der nichtlinearen Dynamik (z.B. Chaosphysik).</wrap> |
  
----- 
  
-===Das Euler-Verfahren zur numerischen Lösung von Differentialgleichungen === + 
-===Das Euler-Cromer-Verfahren zur numerischen Lösung von Differentialgleichungen ===+{{:inf:uebung.gif?|}} 
 + 
 +Wie sieht das Phasendiagramm für den harmonischen Oszillator (Federpendel) aus? 
 + 
 +{{:inf:solution.gif?|}} 
 +|<wrap lo><color #00a2e8>Die potentielle Energie des \\ Federpendels ist: 
 +$E_{pot} = \frac{1}{2} k\cdot x^2$</color> \\ \\ \\  
 +{{:inf:ellipse_gl.png?150|}} 
 +\\ \\ \\  Die kinetische Energie des \\ Federpendels ist:\\ 
 +$E_{kin} = \frac{1}{2}m \cdot v^2$ 
 +</wrap> |<wrap lo>Für den Fall des ungedämpften und sich ohne Reibung bewegten Federpendels hört die Bewegung niemals auf. Permanent wandelt sich potentielle Energie in kinetische Energie um (und umgekehrt). Das bedeutet aber, dass die Gesamtenergie des Systems eine Konstante sein muss. Die kinetische Energie ist  $E_{kin} = \frac{1}{2} m \cdot v^2$. Die potentielle Energie des Federpendels ist $E_{pot} = \frac{1}{2}k\dot x^2$. Demnach gilt: 
 +$$ \frac{1}{2} m v^2 + \frac{1}{2} k x^2 = E = const.  $$ {{ :inf:phasenportrait.png?250 |}} \\ Das ist aber die Gleichung für eine Ellipse in x und v, d.h. das Phasendiagramm des Federpendels ist damit eine Ellipse. Wenn sich das Teilchen mit der Zeit bewegt, bewegt sich der Phasenpunkt entlang einer ellipsenförmigen Trajektorie. Wenn das Teilchen sich einmal herumbewegt hat und wieder am Ausgangspunkt angekommen ist, dann ist eine Periode vorbei und es geht von vorne los. 
 +</wrap> |  
 +{{:inf:hinweis.gif?|}} 
 + 
 +Für jede periodische Bewegung gilt, dass das Phasendiagramm geschlossene Trajektorien besitzt. 
 + 
 + 
 + 
 +====Das Euler-Verfahren zur numerischen Lösung von Differentialgleichungen ==== 
 + 
 +|<wrap lo>**Diskretisieren** die unendlich kleine 
 +Größe, z.B. dt wird durch eine kleine 
 +aber endliche Größe (hier Δt)  ersetzt.\\ \\ <color #00a2e8> **Anfangsbedinungen**: 
 +Jede numerische 
 +Lösung setzt voraus, 
 +dass man die Anfangsbedingungen kennt. Im vorliegenden Fall bedeutet das, dass der Ort und die Geschwindigkeit am Anfang bekannt sein muss (x(0), v(0)).</color> 
 +</wrap> |<wrap lo>Wir demonstrieren das Euler-Verfahren am Beispiel des Federpendels (Hook'sche Gesetz).  $$ \frac{dv}{dt} = - \frac{k}{m} x$$ $$\frac{dx}{dt} = v$$Das Differential dt stellt eine unendlich kleine Größe dar. So etwas können wir mithilfe des Computers nicht simulieren. Deshalb ist es notwendig, solche unendlich kleinen Größen durch zwar kleine aber endliche Größen zu ersetzen. Für dt schreiben wir dann  Δt und aus dx wird: dx ≈ x(t+Δt)-x(t), 
 +sowie für dv ≈ v(t+Δt)-v(t), d.h. wir bilden jeweils Differenzen. Hiermit ergibt sich dann für das Hook'sche 
 +Gesetz \\ //(bitte unbedingt nachrechnen)//: $$\frac{dv}{dt} = - \frac{k}{m}x \rightarrow dv = -\frac{k}{m} x dt \rightarrow v(t+\Delta t) = v(t) - \frac{k}{m}x \Delta t   $$ und $$ \frac{dx}{dt}=v \rightarrow dx = vdt \rightarrow x(t+ \Delta t) = x(t) + v(t)\Delta t$$ Wir sind hier nur daran interessiert, das Verfahren kennenzulernen, deshalb setzen wir im Weiteren k=m=1 
 +Hieraus resultieren dann die von uns verwendeten Gleichungen zur numerischen Lösung: $$x(t+\Delta t) = x(t) + v(t) \Delta t$$ $$v(t+\Delta t)=v(t) -x(t) \Delta t$$ Mithilfe der ersten Gleichung kann man die Position (Ort) des Teilchen im nächsten Zeitschritt Δt bestimmen. Und mithilfe der zweiten Gleichung ist es möglich, die Geschwindigkeit im nächsten Zeitschritt zu bestimmen. Grundsätzlich 
 +können wir also, wenn wir den Ort und die Geschwindigkeit kennen auch Ort und Geschwindigkeit im nächsten Schritt bestimmen. Trotzdem können wir diese Gleichung momentan noch nicht benutzen, denn erst wenn wir den Ort x(0) und die Geschwindigkeit v(0) am Anfang kennen, können wir diese Gleichung verwenden, um für jeden beliebigen Zeitpunkt Ort und Geschwindigkeit iterativ zu bestimmen. </wrap> |  
 + 
 +{{:inf:sample.gif?|}} 
 + 
 +Die Methode **init (Zeile 9)** muss zuerst aufgerufen werden, um die Anfangswerte für den Ort, Geschwindigkeit sowie die Schrittweite zu setzen. 
 + 
 +Mit der Methode **nextEuler() (Zeile 15)** wird jeweils eine Iteration durchgeführt. 
 + 
 +Mit **getX()** und **getV()**  kann nach jeder Iteration der neu berechnete Ort (Geschwindigkeit) ausgegeben 
 +werden. 
 + 
 +<Code Java linenums:1>public class Euler { 
 +  
 +   private double x; 
 +   private double v; 
 +   private double t; 
 +  
 +   public Euler() {  } 
 +  
 +   public void init(double x0, double v0, double timeStep){ 
 +    t = timeStep; 
 +    x = x0 + v0 * t; 
 +    v = v0 - x0 * t; 
 +   } 
 +  
 +   public void nextEuler(){ 
 +     double x_old = x; 
 +     x = x + v * t; 
 +     v = v - x_old * t; 
 +   } 
 +   
 +  public double getX(){ 
 +     return x; 
 +  } 
 +  public double getV(){ 
 +    return v; 
 +  } 
 +
 +</Code> 
 +====Das Euler-Cromer-Verfahren zur numerischen Lösung von Differentialgleichungen ===
 +Die Gleichungen für das Euler-Cromer- Verfahren sind fast identisch mt denen des Euler-Verfahrens. 
 +Lediglich bei der Berechnung des Ortes wird die gerade erst berechnete Geschwindigkeit eingesetzt, wohingegen das Euler-Verfahren dort mit dem "alten" Geschwindigkeitswert weiter rechnet.  
 +  
 +$$v(t+\Delta t) = v(t) - x(t) \Delta t)$$ 
 + 
 +$$x(t+\Delta t) = x(t) + v(t+\Delta t) \Delta t$$ 
 + 
 +Dennoch im Ergebnis unterscheiden sich die Verfahren stark. Will man z.B. Planetenbahnen berechnen, ist das Euler-Verfahren im allgemeinen unbrauchbar. 
 + 
 +<WRAP center round info 100%> 
 +Die hier vorgestellten einfachen Verfahren zur numerischen Lösung von Differentialgleichungen, werden in der Praxis i.a. durch raffiniertere numerische Verfahren ersetzt (z.B. Runge-Kutta Methoden). 
 +</WRAP> 
 + 
 + 
 + 
 +<Code Java linenums:1>public class EulerCromer{ 
 +   private double x; 
 +   private double v;   
 +   private double t;  
 +  
 + public EulerCromer() {} 
 +  
 +  public void init(double x0, double v0, double timeStep){ 
 +      t = timeStep; 
 +      v = v0 - x0 * t; 
 +      x = x0 + v * t; 
 +   }  
 +  public void nextEulerCromer(){  
 +      v = v + x * t; 
 +      x = x - v * t; 
 +  }  
 +  public double getX(){ 
 +    return x; 
 +  }  
 +  public double getV() { 
 +     return v; } 
 +
 +</Code> 
 +====Vergleich der beiden Verfahren ==== 
 +{{ :inf:euler-eulercromer.png? |}} 
  
  
 +Numerische Lösung für das Federpendel. Das Eulerverfahren ist hier nicht geeignet  die Trajektorien des Federpendels auch nur eine Periode lang richtig zu simulieren. (Schrittweiter 0.1, k=1, m=1, x0 =0 , v0 = 1.5) - Die Grafik wurde mit GnuPlot von Finn Ole Schröder und Vanessa Sobotta erstellt.
einfuehrung_in_die_numerik.1705097089.txt.gz · Zuletzt geändert: 2024/01/12 22:04 von torsten.roehl