Übung 12 - Plottergebnisse

Benutzeravatar
danymu
Nichts ist wie es scheint
Beiträge: 23
Registriert: 21. Apr 2008 17:13
Wohnort: Darmstadt
Kontaktdaten:

Übung 12 - Plottergebnisse

Beitrag von danymu »

Hallo,
wir sind in unserer Gruppe jetzt eigentlich soweit fertig mit der Übung und haben uns das ganze mal plotten lassen. Allerdings scheinen uns die Ergebnisse doch SEHR unglaubwürdig (Bild siehe Anhang).
Hat jemand Bilder zum Vergleich?

gruß
Daniel
Dateianhänge
ce_uerbung12.jpg
ce_uerbung12.jpg (49.97 KiB) 1445 mal betrachtet
There's no reason to live, but I like it that way
TGDI Tutor WS 2010/2011

Benutzeravatar
Krümelmonster
Geek
Geek
Beiträge: 767
Registriert: 17. Okt 2007 13:58
Wohnort: Jossgrund

Re: Übung 12 - Plottergebnisse

Beitrag von Krümelmonster »

Bild

Alle Verfahren mit Schrittweite 1. (Wobei Euler mit 0.000061 gestartet wird. Das ist die kleinste Schrittweite von Heun).
Stell deinen Fuß auf einen hohen Sockel
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!

Benutzeravatar
Krümelmonster
Geek
Geek
Beiträge: 767
Registriert: 17. Okt 2007 13:58
Wohnort: Jossgrund

Re: Übung 12 - Plottergebnisse

Beitrag von Krümelmonster »

Hast du auch als Schrittweite 1 gewählt?

Denn das Runge-Kutta-Verfahren ist bei dir ziemlich genau, obwohl doch eigentlich nur wenige Werte berechnet werden müssten?
Für das Runge-Kutta-Verfahren initialisiere ich einen Vektor t=t_0:stepsize:t_f, an denen eine Näherung berechnet wird.
Deshalb sieht der Graph bei mir aus, wie eine Kartoffel.
Stell deinen Fuß auf einen hohen Sockel
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!

Steven
Kernelcompilierer
Kernelcompilierer
Beiträge: 425
Registriert: 2. Sep 2008 10:00
Wohnort: Frankfurt am Main

Re: Übung 12 - Plottergebnisse

Beitrag von Steven »

Für das Runge-Kutta-Verfahren geben wir keinen neuen Wertebereich (Vektor von t) an, sondern benutzen die Ts, an denen die anderen beiden Verfahren ebenfalls Werte berechnet haben. Damit orientiert sich der Runge-Kutta genauso wie der Euler an der kleinsten Schrittweite des Heun-Verfahrens.
Wenn ich die Aufgabe richtig interpretiere, sollen hier Verfahren gegenüber gestellt werden -> wenn der Runge Kutta jetzt mit wesentlich größerer Schrittweite arbeitet, wäre er als Vergleich nicht mehr zu gebrauchen.

Benutzeravatar
Krümelmonster
Geek
Geek
Beiträge: 767
Registriert: 17. Okt 2007 13:58
Wohnort: Jossgrund

Re: Übung 12 - Plottergebnisse

Beitrag von Krümelmonster »

Ich habe nochmal per Mail nachgefragt.

So sehen meine Plots aus, wenn ich das Runge-Kutta-Verfahren mit dem Vektor tB, den das Heun-Verfahren zurückliefert, aufrufe.

Aber bei mir dauert das gesamte Verfahren ziemlich lange wegen dem Euler-Verfahren.
Das wird bei mir mit Schrittweite 0.000061 aufgerufen.

Code: Alles auswählen

-->tic();ode_sat();toc
 ans  =
 
    323.079  
Dateianhänge
Phasenraumplott
Phasenraumplott
Bildschirmfoto-Graphic window number 0.png (19.06 KiB) 1412 mal betrachtet
Stell deinen Fuß auf einen hohen Sockel
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!

Benutzeravatar
Krümelmonster
Geek
Geek
Beiträge: 767
Registriert: 17. Okt 2007 13:58
Wohnort: Jossgrund

Re: Übung 12 - Plottergebnisse

Beitrag von Krümelmonster »

Die Aufgabenstellung wurde angepasst, damit die Laufzeit von Euler verkürzt wird.

Die Schrittweite für Euler ist nun konstant 0.001.
Dateianhänge
Ausschnitt um Heun und RK-Verfahren besser zu sehen
Ausschnitt um Heun und RK-Verfahren besser zu sehen
Bildschirmfoto-Graphic window number 0-2.png (19.48 KiB) 1380 mal betrachtet
Der komplette Plot
Der komplette Plot
Bildschirmfoto-Graphic window number 0-1.png (17.34 KiB) 1377 mal betrachtet
Stell deinen Fuß auf einen hohen Sockel
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!

spissl
Erstie
Erstie
Beiträge: 11
Registriert: 1. Nov 2007 15:21
Wohnort: Darmstadt
Kontaktdaten:

Re: Übung 12 - Plottergebnisse

Beitrag von spissl »

hier ist nun unser Ergebnis (danymu hatte oben einen früheren Screen gepostet)

euler = grün
heun = blau
rk = rot

heun und rk verhalten sich ziemlich gleich, bis auf den teil in der mitte

sorry für die bildquali (liegt an paint :/). man erkennt aber alles
Dateianhänge
screen2.jpg
screen2.jpg (18.13 KiB) 1338 mal betrachtet
screen1.jpg
screen1.jpg (12.91 KiB) 1345 mal betrachtet

Benutzeravatar
Krümelmonster
Geek
Geek
Beiträge: 767
Registriert: 17. Okt 2007 13:58
Wohnort: Jossgrund

Re: Übung 12 - Plottergebnisse

Beitrag von Krümelmonster »

Also an deinem Heun-Verfahren kann etwas nicht stimmen, denn die Schrittweite am Anfang soll ja 1 sein.

In deinem Plot sehe ich bei Heun keine zwei benachbarten Approximationspunkte, die weit auseinander liegen.
Bei meinem Plot kann man gut erkennen, wie die Schrittweiten abnehmen.
Stell deinen Fuß auf einen hohen Sockel
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!

kdw
Mausschubser
Mausschubser
Beiträge: 54
Registriert: 7. Feb 2006 10:46

Re: Übung 12 - Plottergebnisse

Beitrag von kdw »

Hi Krümelmonster,

obwohl mein Heun-Verfahren auch nicht stimmen kann (die hier geposteten Ergebnisse sind viel besser als meine), denke ich nicht, dass der erste Integrationsschritt wirklich mit Schrittweite 1 erfolgen muss. Die Schrittweitensteuerung überlegt sich ja _bevor_ sie den Integrationsschritt durchführt, ob die Schrittweite nicht vielleicht viel zu groß ist, und verkleinert dann.

Viele Grüße,
kdw

Benutzeravatar
Krümelmonster
Geek
Geek
Beiträge: 767
Registriert: 17. Okt 2007 13:58
Wohnort: Jossgrund

Re: Übung 12 - Plottergebnisse

Beitrag von Krümelmonster »

Das ist richtig.

Ich meinte, dass das Heun-Verfahren mit der Schrittweite 1 aufgerufen wird, nicht dass das auch die erste verwendete Schrittweite ist.
Stell deinen Fuß auf einen hohen Sockel
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!

Benutzeravatar
Maeher
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 282
Registriert: 14. Okt 2007 23:02
Kontaktdaten:

Re: Übung 12 - Plottergebnisse

Beitrag von Maeher »

Ja... es ist jetzt die Frage, ob die Schrittweite in einem Schritt nur einmal angepasst werden soll, oder so oft, bis sie im akzeptablen fehlerbereich liegt... hatte erst die erste variannte vermutet, aber das zweite ergibt durchaus sinn

Benutzeravatar
Krümelmonster
Geek
Geek
Beiträge: 767
Registriert: 17. Okt 2007 13:58
Wohnort: Jossgrund

Re: Übung 12 - Plottergebnisse

Beitrag von Krümelmonster »

Antwort von Thomas Hemker:
für die Aufgabe genügt die einmalige Auswertung K um die Schrittweite
nach der Regel anzupassen. Also statt while nur eine if Abfrage ohne
Neuberechnung.
Stell deinen Fuß auf einen hohen Sockel
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!

kdw
Mausschubser
Mausschubser
Beiträge: 54
Registriert: 7. Feb 2006 10:46

Re: Übung 12 - Plottergebnisse

Beitrag von kdw »

Hi,

ich kann mich mit der zweiten Interpretation ehrlich gesagt nicht so gut anfreunden, würde dies doch bedeuten, dass ich eine Schrittweitensteuerung einbaue, diese jedoch mehr oder minder ignoriere und, obwohl ich weiß dass die Schrittweite zu groß ist um vernünftige Ergebnisse zu erzielen, trotzdem einfach weiter rechne. Das ist insbesondere deshalb sinnlos, weil ich den Fehler, den ich in einem Schritt mache, ja nie wieder loswerde - wenn ich nur einen Schritt mit riesigem delta-t mache ist der Satellit ja schon auf einer ganz anderen Position als er eigentlich soll, da kann im weiteren Verlauf nur noch Unsinn rauskommen.

Ich finde außerdem die Aufgabenstellung recht eindeutig: Man soll in den Fällen "K <=0.0001" und "sonst" die berechneten Funktionsergebnisse akzeptieren. Bei "K>0.001" steht das nicht, woraus ich schließe, dass man es auch nicht tun soll.

Auf was für eine Frage hat Thomas Hemker da eigentlich geantwortet?

Viele Grüße,
kdw

Benutzeravatar
Krümelmonster
Geek
Geek
Beiträge: 767
Registriert: 17. Okt 2007 13:58
Wohnort: Jossgrund

Re: Übung 12 - Plottergebnisse

Beitrag von Krümelmonster »

Die Frage war:
Hallo Herr Hemker,
> eine Frage habe ich doch noch zu der Schrittweitensteurung bei dem
> Heun-Verfahren. Soll die Schrittweite in einer Iteration des
> Heun-Verfahrens nur einmal berechnet werden? Oder soll der
> Fehlerschätzer K mehrmals berechnet werden? Also etwas wie:
>

Code: Alles auswählen

[/quote]
Stell deinen Fuß auf einen hohen Sockel
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!

kdw
Mausschubser
Mausschubser
Beiträge: 54
Registriert: 7. Feb 2006 10:46

Re: Übung 12 - Plottergebnisse

Beitrag von kdw »

Hmm, also ich rufe das in einer Iteration auch nur einmal auf. Wenn mein K zu groß ist, verwerfe ich halt alle Ergebnisse ohne einen Zeitschritt gemacht zu haben, halbiere die Schrittweite, und gehe in den nächsten Schleifendurchgang...

Wird es eigentlich Testcases oder ähnliches geben? Die könnten die Frage beantworten...

Viele Grüße,
Christoph

Antworten

Zurück zu „Archiv“