> 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.).
>Nearly all steppers pass the time explicitly to the ODE, see above. You
>can safely use this parameter to solve a non-autonomous ODE. Of course,
>this is exactly equivalent to solve the enhanced ODE with an additional
>dimension for the time, in your example x1 = y1 , x2= y2 , x3 = y3 , x4 = t;
>therefore
>dx1/dt = a1(x4) * x2 - b1(x4) * x3 - c1(x4) * x1;
// ...
Hth,
>Different algorithms are derived to solve different ways, some
assume a, b and c are constant over the whole step, and >some require
that you update a, b and c during the substeps of the calculation
(e.g. multistage). Typically, algorithms >assume you are going to do
the "right thing" and that whenever they ask you to evaluate dydt,
you're evaluating that >vector with the most recent information. You
don't *have* to do that in a multistage algorithm, but as the
SciComp answer >suggested, if you do assume your parameters are
constant, you're effectively wasting the advantages of a multistage
>method.
Now, I understood the mathematical parts I need though it is far from rigorous knowledge.Thanks for your cooperation.
>Is this homework? Do you have to do this in C++ (which is what
Boost is written in), or can you choose any language? >Do you
actually have to program it?
No this is not a homework problem. I am trying to build a code with solving the system of ODE I mentioned as the first building block.I think odeint library of boost is best for my purpose.
Thank you for your co-operation.
Arijit