3 svar
207 visningar
jakobpwns är nöjd med hjälpen
jakobpwns 529
Postad: 2 nov 2021 19:29

Runge-Kutta 4, Numeriska metoder

Hej!

Om man är given system med differentialekvationer ungefär som detta:

x''(t) = a*x'(t) + (x'(t))^2

y''(t) = b*y'(t) + (y'(t))^2

Hur får man då ut x och y med Runge-Kutta 4? Begynnelsevärden (x(0), y(0)) samt (x'(0), y'(0)) är givna. Jag är mindre förvirrad av hur man programmerar och använder metoden, mest förvirrad hur vi kan få x och y när differentialekvationerna enbart innehåller derivatan och andraderivatan. Kan man göra metoden två gånger på något vis? Eller skriva om problemet på något sätt, sedan lösa? Tack på förhand!

(obs detta system är bara ett exempel, har ett lite jobbigare egentligen men det svåra är just att det inte finns x och y i ekvationerna)

Macilaci 2106
Postad: 2 nov 2021 21:11

Att ekvationerna inte innehåller x och y gör problemet bara enklare. x' och x'' är inte beroende av x. Vi använder metoder som Runge-Kutta därför att det finns en "återkoppling" mellan x och x' och det orsakar felfortplantning. I ditt fall finns återkoppling mellan x' och x'' (och du behöver använda Runge-Kutta), men inte mellan x och x'.

Du behöver R-K för att få x'.

Om du använder R-K andra gången (för att få x från x'), då beror k-värdena inte på varandra, och x(t+dt) blir:

x(t+dt) = x(t) + 16(x'(t)+4*x'(t+dt2)+x'(t+dt))

jakobpwns 529
Postad: 3 nov 2021 17:23
Macilaci skrev:

Att ekvationerna inte innehåller x och y gör problemet bara enklare. x' och x'' är inte beroende av x. Vi använder metoder som Runge-Kutta därför att det finns en "återkoppling" mellan x och x' och det orsakar felfortplantning. I ditt fall finns återkoppling mellan x' och x'' (och du behöver använda Runge-Kutta), men inte mellan x och x'.

Du behöver R-K för att få x'.

Om du använder R-K andra gången (för att få x från x'), då beror k-värdena inte på varandra, och x(t+dt) blir:

x(t+dt) = x(t) + 16(x'(t)+4*x'(t+dt2)+x'(t+dt))

Ok! Så om jag får ut x' med R-K så kan jag sedan använda den för att därefter få ut x med R-K ännu en gång? Då är ju dock inte x' en ekvation med x på samma sätt, men det kanske inte spelar någon roll. "x'(t)" m.fl. som i din sista formel blir väl att man evaluerar vad x' är i punkterna t, t+dt osv med Matlabs hjälp, spelar ingen roll att vi inte kan skriva ner diffekvationer typ

Macilaci 2106
Postad: 3 nov 2021 23:50

Ja.

Det skulle vara intressant att kalkylera x(t) med hjälp av en även enklare formel, och jämföra med "R-K".  T.ex.

x(t+dt) = x(t) + x'(t+dt2)·dt

Jag tycker att skillnaden blir liten.

PS Jag glömde tidigare att multiplicera med dt i R-K formeln. Det borde låta

x(t+dt) = x(t) + 16(x'(t)+4·x'(t+dt2)+x'(t+dt))·dt

Svara Avbryt
Close