Übung 9.1

mister_tt
Kernelcompilierer
Kernelcompilierer
Beiträge: 502
Registriert: 29. Sep 2008 15:54

Übung 9.1

Beitrag von mister_tt » 1. Jan 2011 19:31

Hi,

Erstmal frohes Neues und so...

Mir ist noch nicht ganz klar, wie wir in der 9.1 das grafisch machen sollen... Ist eine Grafik wie im folgenden Link über dem Abschnitt "Das Verfahren von Heun" gefordert? http://www.hsg-kl.de/faecher/m/fortbildung/dgl/dgl1.htm Mir ist noch nicht klar, wieso ich dort die Tangente einzeichnen soll... Zur grafischen "Lösung" hilft mir die doch nicht wirklich weiter, oder? Ich hätte einfach munter diese schönen Rechtecke gezeichnet...
Leider kam halt in der Vorlesung mal wieder auch kein Beispiel vor, wie man das grafisch macht -.-

Viele Grüße,
Simon

Benutzeravatar
igor.a
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 143
Registriert: 28. Sep 2009 16:05

Re: Übung 9.1

Beitrag von igor.a » 2. Jan 2011 16:57

Beim expliziten Eulerverfahren gilt ja \(x_{k+1}=x_k + h \cdot f(x_k).\quad f(x_k)\) ist die Steigung von \(x_k\), diese Steigung ist durch die kleinen Pfeile im Richtungsfeld dargestellt. \(h \cdot f(x_k)\) gibt an, wieviel man nach oben gehen muss (von einem Punkt \((t_k, x(t_k))\) aus), wenn man h Einheiten nach rechts geht.

Grob gesagt bestimmt man beim expl. Eulerverfahren\((t_{k+1}, x(t_{k+1}))\), indem man von \((t_k, x(t_k))\) aus dem Richtungspfeil folgt, und zwar so, dass man dabei h Einheiten nach rechts geht.



Was mich interessieren würde: bringt das Richtungsfeld etwas bei der b) ? Wenn man beim impl. Eulerverfahren nach \(x_{k+1}\) umformt, ist die Rechte Seite eine ganz andere, sodass man das Richtungsfeld nicht wirklich gebrauchen kann...
Edit: Oder der Ansatz mit dem Auflösen ist verkehrt; Nimmt man dann beim impliziten Euklid \(x_{k+1}=x_k + h \cdot f(x_{k+1})\) zur Bestimmung von \(x_{k+1}\) in \(f(x_{k+1})\) den expliziten Euklid?

dschneid
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 271
Registriert: 14. Dez 2009 00:56

Re: Übung 9.1

Beitrag von dschneid » 3. Jan 2011 11:52

Ich könnte mir vorstellen, dass die Konstruktion so funktioniert: Wenn man schon \(x_k\) kennt, also den Punkt \((t_k, x_k)\) schon konstruiert hat, dann sucht man auf der vertikalen Geraden aller Punkte mit \(t = t_{k+1}\) denjenigen Punkt, durch den man eine Gerade mit der an dieser Stelle vom Richtungsfeld gegebenen Steigung (nämlich \(f(x_{k+1})\)) legen kann, die auch durch \((t_k, x_k)\) läuft. Dann und nur dann erfüllt nämlich die Koordinate \(x_{k+1}\) dieses Punktes die Iterationsgleichung des impliziten Verfahrens.

Allerdings hätte ich mal eine grundsätzliche Frage: Kann es sein, dass die mit dem impliziten Verfahren berechneten Punkte sich immer weiter von der eigentlichen Lösung entfernen? Ich hatte nämlich mal einige Punkte berechnet, und da hat sich das so ergeben. Wenn das wirklich so ist, dann scheint meine Konstruktion zu stimmen, anderenfalls ist meine Umformung nach \(x_{k+1}\) falsch. Kann das also vielleicht jemand bestätigen?

Der_olle_Schwoebel
Mausschubser
Mausschubser
Beiträge: 62
Registriert: 3. Okt 2008 18:22
Wohnort: Erbach (Odenwald)
Kontaktdaten:

Re: Übung 9.1

Beitrag von Der_olle_Schwoebel » 3. Jan 2011 13:59

dschneid hat geschrieben:Allerdings hätte ich mal eine grundsätzliche Frage: Kann es sein, dass die mit dem impliziten Verfahren berechneten Punkte sich immer weiter von der eigentlichen Lösung entfernen? Ich hatte nämlich mal einige Punkte berechnet, und da hat sich das so ergeben. Wenn das wirklich so ist, dann scheint meine Konstruktion zu stimmen, anderenfalls ist meine Umformung nach \(x_{k+1}\) falsch. Kann das also vielleicht jemand bestätigen?
Also ich komm auch auf ziemlich abweichende Werte (sowohl rechnerisch als auch bei der grafischen Lösung), wobei ich nicht wüsste wie meine Iterationsvorschrift falsch sein sollte. Die Werte gehen jedenfalls mit jedem Schritt weiter ins Negative ohne Aussicht auf Besserung [geht ja auch gar nicht, der Kosinus in der Iterationsvorschrift kann das \(x_(t_{k-1})\) ja nicht ausgleichen wenn er sich nur zwischen -1 und 1 bewegt]
Life's a climb. But the view is great...
Bild

dschneid
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 271
Registriert: 14. Dez 2009 00:56

Re: Übung 9.1

Beitrag von dschneid » 3. Jan 2011 15:02

Dann passt's ja. Die Schrittgröße ist eben einfach zu groß. Bei kleineren Schritten würde man natürlich näher an der tatsächlichen Lösung liegen und dann auch gegen Ende noch die Kurve kriegen.

Benutzeravatar
igor.a
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 143
Registriert: 28. Sep 2009 16:05

Re: Übung 9.1

Beitrag von igor.a » 3. Jan 2011 18:30

dschneid hat geschrieben:Ich könnte mir vorstellen, dass die Konstruktion so funktioniert: Wenn man schon \(x_k\) kennt, also den Punkt \((t_k, x_k)\) schon konstruiert hat, dann sucht man auf der vertikalen Geraden aller Punkte mit \(t = t_{k+1}\) denjenigen Punkt, durch den man eine Gerade mit der an dieser Stelle vom Richtungsfeld gegebenen Steigung (nämlich \(f(x_{k+1})\)) legen kann, die auch durch \((t_k, x_k)\) läuft. Dann und nur dann erfüllt nämlich die Koordinate \(x_{k+1}\) dieses Punktes die Iterationsgleichung des impliziten Verfahrens.
Cool, danke für den Tipp :)

mister_tt
Kernelcompilierer
Kernelcompilierer
Beiträge: 502
Registriert: 29. Sep 2008 15:54

Re: Übung 9.1

Beitrag von mister_tt » 4. Jan 2011 08:44

Dürfte ich dann auch nochmal in meinem Thread was schreiben? :-)
igor.a hat geschrieben:Beim expliziten Eulerverfahren gilt ja \(x_{k+1}=x_k + h \cdot f(x_k).\quad f(x_k)\) ist die Steigung von \(x_k\), diese Steigung ist durch die kleinen Pfeile im Richtungsfeld dargestellt. \(h \cdot f(x_k)\) gibt an, wieviel man nach oben gehen muss (von einem Punkt \((t_k, x(t_k))\) aus), wenn man h Einheiten nach rechts geht.

Grob gesagt bestimmt man beim expl. Eulerverfahren\((t_{k+1}, x(t_{k+1}))\), indem man von \((t_k, x(t_k))\) aus dem Richtungspfeil folgt, und zwar so, dass man dabei h Einheiten nach rechts geht.
Das ist schon klar, aber wie zeichne ich das ein? Es ist doch so, dass beim expliziten Euler die Fläche unter/über der Funktion durch ein Rechteck mit der Höhe \(f(x_k)\) angenähert wird. Und quasi alle Zeichnungen zum expl/impl. Euler sind so, dass einfach diese Rechtecke eingezeichnet werden... Was für ne Steigung soll ich da noch einzeichnen? Was bringt mir das?
Zumal es schon unübersichtlich genug ist die Rechtecke des expl. / impl. Eulers in eine Grafik einzuzeichnen...

Benutzeravatar
igor.a
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 143
Registriert: 28. Sep 2009 16:05

Re: Übung 9.1

Beitrag von igor.a » 4. Jan 2011 10:53

Die Rechtecke kannst du in dieser Aufgabe vergessen. Sie sind in einem anderen Graph sinnvoll, nämlich in dem von f(x(t)).
Hier hast du aber ein Richtungsfeld, das gleichzeitig als Graph von x(t) dient. Also: \((t_0,x_0), (t_1,x_1), ...\) einzeichnen, jeden Punkt mit seinem Nachfolger verbinden, fertig. :)

Der_olle_Schwoebel
Mausschubser
Mausschubser
Beiträge: 62
Registriert: 3. Okt 2008 18:22
Wohnort: Erbach (Odenwald)
Kontaktdaten:

Re: Übung 9.1

Beitrag von Der_olle_Schwoebel » 4. Jan 2011 11:31

Beim Eulerverfahren (explizit wie implizit) hast du ja einen Punkt und die Steigung für diesen Punkt (stimmt fürs implizite nicht ganz, aber "übersehen" wir das mal).
x + h*"Steigung" --> d.h. im Richtungsfeld schaust du die aktuelle Steigung am Punkt an und zeichnest eine Gerade bis t+1 (weil Schrittweite h = 1)

Beim impliziten Verfahren hat das dschneid schon beschrieben: Du hast deinen Punkt x(t), brauchst aber die Steigung am Punkt x(t+1), also schaust du wo an der "vertikalen Geraden" bei t+1 die Steigung so liegt, dass sie durch x(t) läuft.


In diesem Fall suchst du ja nicht die Fläche unter der Funktion sondern eine Lösung des Anfangswertproblems, d.h. wieder eine Funktion (bzw. Punkte, durch die man dann interpolieren kann)
Life's a climb. But the view is great...
Bild

mister_tt
Kernelcompilierer
Kernelcompilierer
Beiträge: 502
Registriert: 29. Sep 2008 15:54

Re: Übung 9.1

Beitrag von mister_tt » 5. Jan 2011 15:11

Ich danke euch beiden vielmals für eure Antworten - ihr habt mir sehr weiter geholfen!

Viele Grüße,
Simon

Antworten

Zurück zu „Archiv“