?
Hallo,
ich war davon ausgegangen, dass du
dydt=B(t,y)\frac{\mathrm{d}y}{\mathrm{d}t} = B(t, y)dtdy=B(t,y)
mit
y:R→Rdy: \mathbb{R} \to \mathbb{R}^dy:R→Rd,
B:R×Rd→RdB: \mathbb{R} \times \mathbb{R}^d \to \mathbb{R}^dB:R×Rd→Rd
lösen möchtest.
Wobei
B(t0,y)=[y_2(t_0)1m(F(t_0)−αy_2(t_0)−βy_1(t0))]B(t_0, y) =
\begin{bmatrix}
y\_2(t\_0) \\
\frac{1}{m} (F(t\_0) - \alpha y\_2(t\_0) - \beta y\_1(t_0))
\end{bmatrix}B(t0,y)=[y_2(t_0)m1(F(t_0)−αy_2(t_0)−βy_1(t0))]
.
Du schreibst, dass du die Zeitschritte in ein externes Programm weiter gibst, um neue Werte für FFF zu bekommen. Das bedeutet doch aber, dass dein FFF vielleicht nicht von ttt, aber sehr wohl von yyy abhängt. (Habe ich das richtig verstanden?) Die rechte Seite deiner Gleichung ist also
B(t0,y)=[y_2(t_0)1m(F(t_0,y(t_0))−αy_2(t_0)−βy_1(t_0))]B(t_0, y) =
\begin{bmatrix}
y\_2(t\_0) \\
\frac{1}{m} (F(t\_0, \mathbf{y(t\_0)} ) - \alpha y\_2(t\_0) - \beta y\_1(t\_0))
\end{bmatrix}B(t0,y)=[y_2(t_0)m1(F(t_0,y(t_0))−αy_2(t_0)−βy_1(t_0))]
.
Nennen wir mal dein externes Programm GGG. Dann liefert dir
G(t_0,y(t_0))≈F(t_0+h~,y(t_0+h~))G(t\_0, y(t\_0) ) \approx F(t\_0 + \tilde h, y(t\_0+ \tilde h))G(t_0,y(t_0))≈F(t_0+h~,y(t_0+h~)),
wobei h~\tilde hh~ die von deinem externen Programm ermittelte Schrittweite ist.
Damit ist
B(t_0, y) \approx
\begin{bmatrix}
y\_2(t\_0) \\
\frac{1}{m} (G(t\_0 - \tilde h, y(t\_0 - \tilde h) )
\- \alpha y\_2(t\_0) - \beta y\_1(t\_0))
\end{bmatrix}
.
Angnommen, dass die Approximation GGG gut genug ist, kannst du dies nun in z.B. das RK4 Verfahren (analog jeden anderen ODE-Löser) einsetzen:
yn+1=y_n+h6(k_1+2k_2+2k_3+k4)y_{n+1} = y\_n + \tfrac{h}{6}(k\_1 + 2 k\_2 + 2 k\_3 + k_4)yn+1=y_n+6h(k_1+2k_2+2k_3+k4)
tn+1=tn+ht_{n+1} = t_n + htn+1=tn+h
k_1=B(t_n,yn)k\_1 = B(t\_n, y_n)k_1=B(t_n,yn)
k_2=B(t_n+h2,y_n+h2k_1)k\_2 = B(t\_n + \tfrac{h}{2}, y\_n + \tfrac{h}{2} k\_1)k_2=B(t_n+2h,y_n+2hk_1)
k_3=B(t_n+h2,y_n+h2k_2)k\_3 = B(t\_n + \tfrac{h}{2}, y\_n + \tfrac{h}{2} k\_2)k_3=B(t_n+2h,y_n+2hk_2)
k_4=B(t_n+h2,y_n+hk_3)k\_4 = B(t\_n + \tfrac{h}{2}, y\_n + h k\_3)k_4=B(t_n+2h,y_n+hk_3)
In diesem Fall siehst du, dass du BBB an den Stellen tnt_ntn, tn+h2t_n + \tfrac{h}{2}tn+2h, tn+ht_n + htn+h benötigst. Das bedeutet, dass du dein Verfahren entweder zwingen musst, zweimal hintereinander den gleichen Zeitschritt auszuführen oder du musst irgendwie interpolieren.
Falls dein Problem gutartig genug ist, dann könnte das funktionieren. Andernfalls solltest du überlegen, ob du die beiden Löser eher über eine Fixpunkt-Iteration o.Ä. koppelst.