Frage zu Übung 10 Aufgabe 1

franzose
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 146
Registriert: 9. Okt 2009 00:08

Frage zu Übung 10 Aufgabe 1

Beitrag von franzose » 12. Jan 2011 23:22

Hallo,

ich habe ein Frage zur Schritweitensteuerung bei der Variante 1:

wenn \(\epsilon_1 > \delta\) dann muss man ein neues kleineres \(hk_2\) berechnen mit \({(\frac{\delta}{\epsilon_1})}^{1/p}\).

Mit diesem neuen \(hk_2\) sei nun \(\epsilon_2 < \epsilon_1\) aber immer noch größer als \(\delta\). Dann muss man ja wieder ein neues \(hk_3\) berechnen mit \({(\frac{\delta}{\epsilon_2})}^{1/p}\).

Jetzt meine Frage:

da \(\epsilon_2 < \epsilon_1\) gilt \((\frac{\delta}{\epsilon_2}) > (\frac{\delta}{\epsilon_1})\) bzw. \({(\frac{\delta}{\epsilon_2})}^{1/p} > {(\frac{\delta}{\epsilon_1})}^{1/p}\) also müsste doch dann \(hk_3 > hk_2\) sein.

Aber dann wird ja die Schrittweite nicht immer verkleinert, was doch eigentlich der Sinn sein sollte oder? Wo ist mein Denkfehler oder gibt es hier tatsächlich bei der Steuerung ein Problem?

Danke im Voraus für eine klärende Antwort :-)

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

Re: Frage zu Übung 10 Aufgabe 1

Beitrag von mister_tt » 14. Jan 2011 00:47

Hmm in der Tat bekomme ich für die erste Wiederholung ein \(h_{0, neu} = 4.297410794 \dot 10^{-3}\) heraus und für die nächste Wiederholung ein \(h_{0, neu} = 0.02168515552\), was deine These unterstützen würde... Ich hab jetzt aber auch nicht wirklich Lust, weiter zu rechnen ^^ Schön, dass uns wenigstens das erspart bleibt, die ganze Rechnerei ist so schon recht asozial...
Kann die Werte denn jemand bestätigen?

marluwie
Mausschubser
Mausschubser
Beiträge: 99
Registriert: 18. Okt 2005 22:33

Re: Frage zu Übung 10 Aufgabe 1

Beitrag von marluwie » 14. Jan 2011 14:38

Es ist korrekt, dass die Schrittweite mit den gegebenen Formeln bei der zweiten Wiederholung wieder größer wird. In der Praxis vermeidet man dieses Problem, indem \(\left( \frac{\delta}{\varepsilon} \right)^{1/p}\) noch mit einem Faktor kleiner 1 multipliziert wird. Das wurde in der Aufgabe weggelassen. Es geht nur darum, dass Prinzip einer solchen Schrittweitensteuerung zu verstehen.
Im Übrigen steht im Hinweis, dass die Rechnung (aus diesem Grund) nach einer Wiederholung des Schrittes abgebrochen werden darf.
"You can't change anything by fighting or resisting it. You change something by making it obsolete through superior methods." (Buckminster Fuller)

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

Re: Frage zu Übung 10 Aufgabe 1

Beitrag von igor.a » 15. Jan 2011 19:09

mister_tt hat geschrieben:Hmm in der Tat bekomme ich für die erste Wiederholung ein \(h_{0, neu} = 4.297410794 \dot 10^{-3}\) heraus und für die nächste Wiederholung ein \(h_{0, neu} = 0.02168515552\), was deine These unterstützen würde... Ich hab jetzt aber auch nicht wirklich Lust, weiter zu rechnen ^^ Schön, dass uns wenigstens das erspart bleibt, die ganze Rechnerei ist so schon recht asozial...
Kann die Werte denn jemand bestätigen?
Hmm,ich habe bei der ersten Wiederholung \(h_{0,neu}\)=0,0758.

GORDONSKY
Erstie
Erstie
Beiträge: 20
Registriert: 10. Nov 2010 20:26

Re: Frage zu Übung 10 Aufgabe 1

Beitrag von GORDONSKY » 16. Jan 2011 12:44

Also bei mir ist x1 mit dem Halbschrittverfahren kleiner als x1 aus der ersten Berechnung, damit ergibt sich ein negatives epsilon, was eigentlich nicht sein dürfte, richtig ?

Zwähn
Erstie
Erstie
Beiträge: 18
Registriert: 14. Jun 2010 15:33

Re: Frage zu Übung 10 Aufgabe 1

Beitrag von Zwähn » 16. Jan 2011 12:57

Für die erste Wiederholung komm ich auf 0,03638306.. als neues h.
Wobei allerdings mein epsilon ebenfalls negativ ist. Ging jetz davon aus, dass wir den Betrag von Epsilon betrachten sollen und dann mit delta vergleichen, ansonsten würde es keinen Sinn machen, wenn in der Berechnung des neuen h der Betrag auftaucht.

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

Re: Frage zu Übung 10 Aufgabe 1

Beitrag von dschneid » 16. Jan 2011 13:14

Ja, es ist wohl im Allgemeinen sinnvoll, den Betrag zu betrachten. Ist aber hier nicht nötig, wenn man das Richtige rausbekommt. Ich habe ebenfalls \(h_{0,neu}=0.0758\), und da tritt dieser Fall nicht auf. Mein Ergebnis habe ich inzwischen zweifach bestätigt bekommen, bin da also ganz zuversichtlich, dass das so stimmt.

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

Re: Frage zu Übung 10 Aufgabe 1

Beitrag von mister_tt » 16. Jan 2011 13:20

Das habe ich mittlerweile auch raus :-)

erna
Mausschubser
Mausschubser
Beiträge: 65
Registriert: 9. Dez 2009 15:05

Re: Frage zu Übung 10 Aufgabe 1

Beitrag von erna » 16. Jan 2011 13:58

ich versteh das noch nicht ganz ... bei Variante 1:
-Berechne die nächste Iterierte x^hk_x+1 durch einen Verfahrensschritt mit der Schrittweite hk.
Also Einschrittverfahren? Oder versteh ich das falsch? explizites Euler-Verfahren?

-Berechne x^hk/2_k+1 durch zwei Schritte des Heun-Verfahren mit der Schrittweite hk/2.
ok Heun-Verfahren einmal oder zweimal anwenden? Oder ist damit das Zweischrittverfahren gemeint wegen p=2?
Beim Heun-Verfahren gibts ja s1 = f(xk) und s2 = f(xk + h*s1) ... ok also ist dann t = xk + h*s1 bei s2 also bräuchte man auch x(t) weil wir haben zwar den Wert für x(t0) = x0 aber wie will man x(xk + h*s1) bestimmen ohne x(t) genau zu kennen? Oder hab ich auch hier einen Denkfehler :? ?

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

Re: Frage zu Übung 10 Aufgabe 1

Beitrag von dschneid » 16. Jan 2011 14:10

Du benutzt insgesamt drei Mal das Heun-Verfahren. Einmal mit der Schrittweite \(h_0\) und zweimal mit der Schrittweite \(\frac{h_0}{2}\).

Zwähn
Erstie
Erstie
Beiträge: 18
Registriert: 14. Jun 2010 15:33

Re: Frage zu Übung 10 Aufgabe 1

Beitrag von Zwähn » 16. Jan 2011 14:25

Ok, ich weiß jetzt wie ihr zu dem Ergebnis von 0.07... als neues h kommt (wobei bei mir die zahl 0,07354.. als neues h entsteht).
Allerdings bin ich mir nicht sicher ob man bei dem zweiten halben Schritt nicht auch die Anpassung von t vornehmen muss :?: .
Darf ich fragen mit wieviel nachkommastellen ihr gerechnet habt?

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

Re: Frage zu Übung 10 Aufgabe 1

Beitrag von dschneid » 16. Jan 2011 15:12

Du musst natürlich beim zweiten Teilschritt mit \(h_0/2\) das Heun-Verfahren bei \(t_0 + h_0/2\) anfangen, weil du ja bis dahin schon mit dem ersten Teilschritt gekommen bist. Du würdest dann also für \(s_1\) bei \(t_0 + h_0/2\) und für \(s_2\) bei \(t_0 + h_0\) auswerten.

oliver_g
Mausschubser
Mausschubser
Beiträge: 62
Registriert: 17. Nov 2008 16:27

Re: Frage zu Übung 10 Aufgabe 1

Beitrag von oliver_g » 16. Jan 2011 16:02

Sind diese 0.07... die Schrittweite nach dem ersten Schritt oder nach der ersten Wiederholung? Für h nach dem ersten Schritt hab ich 0.006 raus, was dann dazu führt, dass die erste Wiederholung ein \(\varepsilon < \delta\) liefert. Ich verwende das Heun-Verfahren 2. Ordnung aus den Folien, beim Korrektor-Schritt übergeb ich noch \(t_0 + h_0\) an die Funktion. Jemand ne Idee, warum \(h_{0,neu}\) bei mir so klein wird?

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

Re: Frage zu Übung 10 Aufgabe 1

Beitrag von dschneid » 16. Jan 2011 17:18

\(7.58 \cdot 10^{-2}\) ist die Schrittweite nach dem ersten Schritt.

Ich glaube, man muss hier wirklich absurd viele Nachkommastellen beachten, sonst kann es bei der Berechnung der Schrittweite schon zu recht großen Abweichungen kommen. Die Differenz zwischen den beiden Iterierten, auf denen die neue Schrittweite ja letztlich beruht, ist eben ziemlich klein, und daher kann das Weglassen von Nachkommastellen wohl schon zu einem recht signifikanten Fehler führen. Das ist aber nur eine Vermutung, wo der Fehler liegen könnte. (Ich habe aus diesem Grund alle Rechnungen in MATLAB gemacht, damit ich möglichst wenig runden muss.)

oliver_g
Mausschubser
Mausschubser
Beiträge: 62
Registriert: 17. Nov 2008 16:27

Re: Frage zu Übung 10 Aufgabe 1

Beitrag von oliver_g » 16. Jan 2011 17:59

Grad nochmal mit Matlab nachgerechnet, kommt aber das gleiche Ergebnis raus. Es ist schon das Heunverfahren aus Foliensatz 10, Folie 5 gemeint? Also:
\(x^p_{k+1} = x_k + h_k \cdot f(x_k, t_k)\)
\(x_{k+1} = x_k + h_k \cdot \frac{1}{2}(f(x_k, t_k) + f(x^p_{k+1}, t_k + h_k))\)
Und \(p = 2\), da das Heunverfahren von 2. Ordnung ist?

Antworten

Zurück zu „Archiv“