Mam takyto system ODE, ktory potrebujem vyriesit:
Kód: Vybrať všetko
dh1/dt = g(h1,h2)
dh2/dt = g(h1,h2,h3)
dh3/dt = g(h2,h3)
Mam v Matlabe Simulinkovy model, ktory pocita spravne (pre jednoduchost ako solver je pouzity Euler a fixny krok 0.1). ODE45 (Runge-Kutta) pocita tiez spravne. Problem mam, ked pouzijem vlastny iteracny solver (pre jednoduchost Eulerovou metodou) s uplne zakladnou implementaciou:
Kód: Vybrať všetko
hi+1 = hi + g() * step
kde ciarkovana ukazuje simulaciu, t.j. ocakavany vysledok a plna je moj solver.
Na jednoduchej ODE napr y'=x^2-y mi funguje zrejme spravne, ale tento system ma uz roky neznasa
Nedari sa mi identifikovat problem, rovnice vyzeraju byt napisane spravne a ked aj nie spravne, tak aspon rovnako ako v simulacii; step pouzivam tiez rovnaky a napriek tomu to vychadza takto.
Ma niekto predstavu, kde by som mohol mat problem?