Runge-Kutta-Fehlberg

Neue Frage »

bronkowitz Auf diesen Beitrag antworten »
Runge-Kutta-Fehlberg
Hallo zusammen!

Ich versuche die Bewegung eines bedämpften, freien Einmassenschwinger mit dem Runge-Kutta-Fehlberg-Verfahren, also mit Schrittweitensteuerung, zu ermitteln.

Die DGL zeiter Ordnung ist

M*x'' + D*x' + C*x = 0

und mit der Substitution

x1 := x
x2 := x'

ergibt sich ein System erster Ordnung.

Mein Problem ist, dass dies ungedämpft (D = 0) überhaupt nicht funktioniert und auch bedämpft nur schlecht. Dies liegt offenbar daran, dass in der Formel für die neue Schrittweite der Nenner zu Null wird, da dann die beiden Approximationen nach 4. und 5. Ordnung gleich sind.
Habe ich da irgendwo einen Fehler gemacht? Oder ist das einfach so?
Ich hoffe mein Bildanhang mit der MathCad-Berechnung ist hochgeladen.

Gruß,
bronkowitz
bronkowitz Auf diesen Beitrag antworten »

tja, ohne Hirn ist man wie'n Depp...hab meinen Fehler gefunden.
Ist also erledigt.

Grüße,
bronkowitz
Math1986 Auf diesen Beitrag antworten »

Zitat:
Original von bronkowitz
tja, ohne Hirn ist man wie'n Depp...hab meinen Fehler gefunden.
Und was war nun der Fehler?
Wäre für andere vielleicht auch interessant zu wissen
bronkowitz Auf diesen Beitrag antworten »

OK, ich poste gleich ein Bild mit dem richtigen Algorithmus
bronkowitz Auf diesen Beitrag antworten »

mein Fehler war anzunehmen, dass in den k(...)-Gleichungen immer nur eine Variable verändert wird und die anderen xi (im Beispiel ist das jeweils nur eine) dabei konstant bleiben. Ist aber falsch, passiert simultan und deswegen gibt es jetzt analog die Werte l(...). Hat mit der Schrittweitensteuerung auch gar nichts zu tun.

Der Algorithmus ist jetzt total genau und unempfindlich und man kann mit der Schrittweite T starten, das "regelt sich selbst".

Im zweiten Bild sieht man gut, wie sich die Schrittweite ändert.

(Im Anhang ist der Algorithmus jetzt allgemein formuliert, d.h. es wird nicht mehr ausgenutzt, dass die erste Gleichung nur dazu diente ein System erster Ordnung zu erzeugen. f1 und f2 kann man also auch nun durch andere DGL ersetzen)

Gruß,
bronkowitz
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »