[
https://issues.apache.org/jira/browse/MATH-172?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13096643#comment-13096643
]
Luc Maisonobe commented on MATH-172:
------------------------------------
The fact is our ODE package implies really rich algorithms. For example, it is
mandatory to provide a continuous output over the last computed step, and it is
mandatory to support discrete events. When a reference algorithm did not
support these features, we had to add them by ourselves. It was never a problem
since efficient and complex algorithms do provide the necessary features
already. We had to do the math only for really trivial cases like Euler or
classical Runge-Kutta. For Adams or BDF algorithms, continuous output is not a
problem, because the formula are already based on interpolation, so the
interpolator is already there, we simply make it available to the step
handlers. Events handling was more difficult but we have already factored some
of the code.
Another point is I really need adaptive step size, so while I was setting up
the method, I extended it at the same time. This is not something I invented
myself, there are several references about this and the Nordiseck vector method
was a perfect fit for my needs. I did not find however a thourough algorithm
with all the features I needed, I only found a lot of different papers
addressing different parts, and I basically gather everything in one
implementation. I recently found another reference about adaptive step size
Adams methods but did not had time to review it and compare it with Nordsieck
vector approach.
One thing that could be done would be to implement simpler stiff methods, like
for exemple implicit Runge-Kutta. I have tried this but am not sure I still
have my attempts around. There are several different ways to solve the implicit
system, using simple iterations, trying to solve the system completely, trying
to solve it by using only the diagonal elements of the Jacobian ... I think we
need to have all these methods available with a user setting.
> implementation of implicit Runge-Kutta method for stiff differential equations
> ------------------------------------------------------------------------------
>
> Key: MATH-172
> URL: https://issues.apache.org/jira/browse/MATH-172
> Project: Commons Math
> Issue Type: Improvement
> Affects Versions: 1.2
> Reporter: James Housden
> Assignee: Luc Maisonobe
> Fix For: 3.0
>
> Attachments: bdf-2009-07-07.patch
>
>
> In version 1.2 several explicit Runge-Kutta methods have been implemented
> which work fine for non-stiff problems. However these methods are not
> suitable for stiff equations. The implementation of an implicit Runge-Kutta
> method such as Radau5 would extend the functionality of the ode package to
> cover the solution of stiff ordinary differential equations.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira