H
raeuberhotzenplotz schrieb:
Sicher? Soweit ich das verstanden habe nehme ich bei RK2 den "Steigungswert" des halben Iterationsschritt, und iteriere damit dann aber einen ganzen Schritt, also h.
Ich kann mich natürlich auch täuschen, aber bei h/2 kommt dann ein anderer Wert heraus, und ich hab den Wert mit Wolfram Alpha auch rausbekommen(also mit ganzem h).
Sry, Du hast recht. Da muss nur dt hin.
raeuberhotzenplotz schrieb:
Schaffe ich nicht zu 100% nachzuvollziehen. Sind das dxdt[n], x[1] etc. nicht arrays? Speichere ich dann damit alle iterationsschritte in dem Array ab und lass mir am Schluss nur den letzten ausgeben?
Ja, dxdt[n] sind arrays. Aber n ist die Dimension der DGL, also für das einfach Beispiel 1 und für Lotka-Volterra 2. In der Fkt. wird nur ein Schritt ausgeführt. Und man kann Euler und RK2 auch für andere DGLs benutzen. Darum gehts. Das solltest Du auch für RK4 machen. Stell Dir vor, Du willst morgen das Lorenz-System oder was anderes mit RK4 lösen. Dann kannst Du einfach die fertige RK4-Routine nehmen und musst nur eine neue Funktion schreiben, welche dx1/dt, dx2/dt, dx3/dt berechnet.
raeuberhotzenplotz schrieb:
Es funktioniert auch soweit (Ohne den RK4 - Teil, damit kämpfe ich gerade). Leider weichen die Werte von euler und rk2 soweit voneinander ab, dass ich nicht mehr weiß, ob ich überhaupt noch im Bereich des richtigen bin.
Jepp, euler und rk2 müssen was anderes liefern. Die Ergebnisse solten aber nicht zuweit auseinander sein. Wenn Du damit sehr viele Schritte machst, sollten die Kurven bei Lotka-Volterra fast übereinander liegen. Dass kannst Du ganz einfach plotten.