einfuehrung_in_die_numerik
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
einfuehrung_in_die_numerik [2024/01/13 14:16] – torsten.roehl | einfuehrung_in_die_numerik [2024/01/13 15:13] (aktuell) – torsten.roehl | ||
---|---|---|---|
Zeile 132: | Zeile 132: | ||
</ | </ | ||
====Das Euler-Cromer-Verfahren zur numerischen Lösung von Differentialgleichungen ==== | ====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 " | ||
+ | |||
+ | $$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, | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | <Code Java linenums: | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | 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() { | ||
+ | | ||
+ | } | ||
+ | </ | ||
====Vergleich der beiden Verfahren ==== | ====Vergleich der beiden Verfahren ==== | ||
{{ : | {{ : |
einfuehrung_in_die_numerik.1705155362.txt.gz · Zuletzt geändert: 2024/01/13 14:16 von torsten.roehl