Hallo zusammen,
ich hab hier ein System von gewöhnlichen Differentialgleichungen, das ich mit Matlab lösen möchte (ode45 & Co.).
geg.
x’’ = f(z, z’, x’)
z’ = g(z, x’)
(nicht-linear übrigens)
ges.
x1’ = f1(x1, x2, x3…)
x2’ = f2(x1, x2, x3…)
x3’ = f3(x1, x2, x3…)
…
Wo ich gerade anstehe: z’ wird in f() verwendet, in der DGL-Funktion, welche der Solver aufruft, krieg ich das mit der offensichtlichen Substitution (x1 = x, x2 = x’, x3 = z) aber nirgends her. x3’ muss ich ja berechnen, nun könnte ich das einfach zuerst tun und das Ergebnis dann für die Berechnung von x2’ verwenden, aber würde ich damit nicht ein Wert aus dem falschen Zeitschritt verwenden? (jedenfalls dauert das Lösen auch für kürzeste Zeitfenster eine Ewigkeit, wenn ich das mache)
Kann mir jemand erklären, wie man das richtig macht?
lg, operator