3
$\begingroup$

I have a hard time figuring out how explicit Runge-Kutta methods work, so this is a "what do I misunderstand?" kind of question.

Let $S$ be a system, $Y$ its variables vector and $f(t, Y)$ the function returning the derivative of each variables at a given time and a given state of the system.

All explicit Runge-Kutta methods imply to compute the value of $f$ for multiple $(t, Y)$ conditions, and then to perform a linear combination of all these derivatives in order to obtain a "better" derivative. The linear combination to perform is defined by a vector which can be found at the bottom of the Butcher tableau of the method. Lets call this vector $B$.

My question is :

as negative values can be found in some $B$ vectors (like those used by the Runge-Kutta-Fehlberg method) it is possible that the final derivative will be negative whereas all values produced by f are positive, and vice versa.

It seems that in some circumstances, the explicit Runge-Kutta methods including negative coefficients in their $B$ vector can produce irrelevant results by changing the sign of the final derivative. So how comes those methods can be used to produce meaningful results?

$\endgroup$

1 Answer 1

2
$\begingroup$

For "normal", "tame" (i.e., non-stiff) ODE one expects that the $k$ vectors $$ k_i=f(t+h·c_i,y+h·\sum a_{ij}k_j) $$ differ by $O(h)$. Since $\sum b_i=1$, if the components of the $k$ vectors are well away from zero, there is no risk of sign errors. And anyway, in many ODE the relative size does not matter, it is simply a question of translation.


However, there are cases where all that becomes critical. One is chemical reaction modeling. There you have a stiff ODE where it is critical that all components stay positive and where the concentration of some of the reactants may tend to zero. See for instance the Rober model explored in http://www.radford.edu/~thompson/vodef90web/problems/demosnodislin/Single/DemoRobertson/demorobertson.pdf

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .