0 Daumen
559 Aufrufe

Hallo!
Ich hab folgende DGL gegeben:

$$y'(t)=-(12+2t^2)y \text{      in }(0,3) \\ \text{mit} \\ y(0)=1$$

Die erste Aufgabe ist jetzt:
"Bestimmen Sie die eindeutige analytische Lösung." Ist damit einfach die reguläre Lösung des AWP gemeint? Ich habe das mit Trennung der Variablen gemacht und als Lösung: $$y(t)=e^{-\frac{2}{3}t^3-12t}$$
Ist das soweit richtig?

Als nächstes soll man nun das "klassische Runge-Kutta-Verfahren" und das "implizite Euler-Verfahren" an 4 Stellen durchführen und dabei die Verfahrensvorschriften nennen.
Wie gehe ich hier vor? Ich stehe da irgendwie auf dem Schlauch...

Vielen Dank schonmal!

Avatar von
Analytische Lösung

Soweit es möglich ist, versucht man, die Lösungen einer Bestimmungsgleichung exakt zu ermitteln.

(Wikipedia)

Im Gegensatz dazu steht die numerische Lösung:

Numerische Lösung

Viele Gleichungen, insbesondere aus naturwissenschaftlichen Anwendungen, können nicht analytisch gelöst werden. In diesem Fall versucht man, am Computer eine näherungsweise numerische Lösung zu berechnen.

Runge Kutta Verfahren sind zB numerische Verfahren.

Also ja: du sollst einfach die DGL exakt lösen. Das ist dir auch gelungen.

---

https://de.m.wikipedia.org/wiki/Runge-Kutta-Verfahren

Du solltest also erstmal die Butcher Tableaus beider Verfahren rausschmeißen, dann stelle mit diesen die Interationsvorschrift auf.

Falls die Stellen gegeben sind setzt du die einfach ein, ansonsten kannst du 4 wählen Zb t0=0, t1=1, t2=2, t3=3

Hi! Danke für die Antwort...

Zu dem impl. Euler-Verfahren:

Die Formel dafür lautet in meinem Fall doch $$y_{i+1}=y_i + h*(-(12+2t_{i+1}^2)*y_{i+1})$$ oder?

Wenn ich die benutze und nach $$y_{i+1}$$ auflöse erhalte ich:
$$y_{i+1}= \frac{1}{13+2t^2} y_i$$ stimmt das? (Mit h = 1, Abhängig von meiner Schrittweite...)

Die Stellen sind vorgegeben wie folgt: 4 Stützstellen ausgehend von t=3 (n=3). Dann setze ich also t= 0,...,3 in die Formel für y_i+1 ein und erhalte damit meine Ergebnisse, stimmt das?, ist das so richtig?
Dann erhalte ich entsprechend:
t:       0      1          2           3
y_i:   1    1/15   1/315   1/9765

\(  \)ja die Formel ist richtig.

Aufgelöst ergibt sich allgemein

$$ y_{i+1} = \frac{y_i}{1+h(12+2t_{i+1}^2)} $$

Für h = 1 kommt da also auch das raus was du hast. Verstehe jetzt nicht genau wie die Stützstellen gegeben sind (ausgehend von t=3?), aber wenn \( t_i = i \) ist

Erhält man

\(  y_{i+1} = \frac{y_i}{13+2(i+1)^2)}  \)

\( y_0 = y(0) = 1 \)

\( y_1 = \frac{1}{13+2\cdot (1)^2} = \frac{1}{15} \)

\( y_2 = \frac{ \frac{1}{15}}{13+2\cdot (2)^2} = \frac{1}{315} \)

\( y_3 = \frac{\frac{1}{315}}{13+2\cdot (3)^2} = \frac{1}{9765} \)

Also hast du alles richtig gerechnet.

blob.png

Das ist die analytische Lösung mit einer linearen Interpolation der berechneten Stellen

Es soll natürlich t=0 heißen, sorry.
Vielen Dank für die ausführliche Antwort!

Nochmal zu dem Runge-Kutta-Verfahren:
Wie genau funktioniert das mit dem Tableau? Ich habe mir den Artikel angeschaut, aber wirklich schlau werde ich daraus nicht. Außerdem hab ich diesen angesehen, da er das klassische behandelt, was ich ja brauche https://de.m.wikipedia.org/wiki/Klassisches_Runge-Kutta-Verfahren

Beim klassiche R-K-Verfahren gilt die Formel $$y_{i+1}=y_i + \frac{h}{6}(k_1+k_2+k_3+k_4)$$ mit den entsprechenden k`s...
Ich habe das für meinen Fall probiert, aber ich bekomme dann bspw. für y_1 (also mit t=1) eine Zahl im Bereich 300.000 heraus, das scheint mir nicht so richtig zu sein...

Könnte hierzu nochmal jemand was sagen? Evtl. auch nur nochmal das Vorgehen schildern, falls es von dem was ich hier schreibe abweichen sollte...
Eigentlich ist es doch so: ich stelle k_1, ..., k_4 auf und setze dann entsprechend in die o.g. Formel ein. (?)

Bei dir fehlen in der Vorschrift 2 Zweier vor k2 und k3

Ein Runge-Kutta Verfahren hat ja immer die Form

$$ y_{n+1} = y_n + h \sum_{j=1}^s b_j k_j $$

mit

$$ k_j = f\left(t_n + h c_j, y_n + h \sum_{l=1}^s a_{jl} k_l \right),\,j=1,...,s. $$

Du kannst die Zahlen \( a_{ij}, ~~b_j, ~~c_j \) jetzt einfach übersichtlich in eine Tabelle schreiben:

$$\begin{array}{c|c}    \mathbf{c} & A\\\hline   & \mathbf{b^T} \\\end{array}$$

$$= \begin{array}{c|cccc} c_1    & a_{11} & a_{12}& \dots & a_{1s}\\  c_2    & a_{21} & a_{22}& \dots & a_{2s}\\  \vdots & \vdots & \vdots& \ddots& \vdots\\  c_s   & a_{s1} & a_{s2}& \dots & a_{ss}\\\hline& b_1    & b_2  & \dots & b_s\\\end{array}$$

Wenn du jetzt ein bestimmtes Verfahren nutzen möchtest schlägst du einfach die Tabelle nach und setzt dann ein. Für das klassische Runge Kutta Verfahren sieht die so aus:

$$ \begin{array}{c|cccc} 0      & 0   & 0   & 0   & 0     \\ 1/2    & 1/2 &  0  & 0  &  0    \\ 1/2    & 0  & 1/2 & 0   &  0    \\ 1      & 0  & 0  & 1  & 0     \\ \hline & 1/6 & 1/3 & 1/3 & 1/6 \end{array} $$

Probiers mal aus. Kommt genau die Formel von oben raus.

---

Aber ja, das klassische Runge Kutta Verfahren liefert hier extrem schlechte Ergebnisse. Die Schrittweite von h = 1 ist für den Start einfach VIEL zu groß. Das Verfahren divergiert deshalb ziemlich schnell.

Wenn du zB h = 1/16 arbeitest konvergiert das Verfahren gegen die Lösung.

Vielen Dank! Jetzt hab ich verstanden worum es bei den Tabellen geht...
Nur zum Verständnis: Die Aufgabenstellung mit "ausgehend von t=0 (n=3)" und "4 Stützstellen" verlangt aber die Bearbeitung mit h=1 oder?

Wenn du bei t0 startest, bei t1 enden willst und insgesamt n gleich große Schritte machen willst ist

h = (t1 - t0)/n

Mit t1=4, t0=0 und n=4 ist also h=1.

Wenn man sagen sollte welches Verfahren für n = 100.000 besser geeignet ist, wie würde man das entsprechend begründen?
Die Schrittweite wäre bei n = 100.000 in diesem Fall (0,3) ja h = 3/100.000, also viel kleiner als 1.

1 Antwort

0 Daumen

Habe die beiden Verfahren mal ausformuliert.

blob.png

Bei gleicher Anzahl von Stützstellen, hier N=20 ist Runge-Kutta etwas besser. Je kleiner die Schrittweite wird, desto besser wird das Runge-Kutta Verfahren.

Allerdings bei großen versagt es ziemlich deutlich, z.B. bei \( h = 1 \)

Avatar von 39 k

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community