Would anyone please explain me how I can solve a Initial Value Problem --a system of ODE --with a time-dependent parameter. e.g.
dy1/dt = a1(t) * y2 -b1(t)* y3 -c1(t) y1;
dy2/dt = a2(t) * y1 -b2(t)* y1 -c2(t) y3;
dy3/dt = a3(t) * y2 -b3(t)* y3 -c3(t) y1;
y(0)=c;
My idea so far after going through the
manuals and help files. is that for fixed time-step if I form a vector of
a,b,c and assume a,b,c to be constant over that time-period I can solve
using boost library.
But this is mathematically less accurate and computationally expensive as far my understanding .For solving an ODE numerically y˙(t)=f(y(t),t) generally the problem is all about function evaluation for explicit methods and Jacobian evaluation for Implicit methods at specific points in t and y.
e.g a step of explicit Euler is yn+1=yn+(tn+1−tn)⋅f(yn,tn).
For time-dependent parameter, treating it as part of f, the function evaluation (respectively, for implicit methods, also treat it as part of the Jacobian evaluation) is the standard procedure. A similar strategy applies to more complicated methods for solving ODEs (multistage methods such as Runge-Kutta, implicit methods for stiff systems, etc.).
This strategy is different and mathematically more accurate than
assuming parameters are constant over a time step like a multistage
method.
Would anyone please help me to solve this problem using boost? Thank you in advance.
With Best Regards,
Arijit Hazra