Notify availability of field-based ode.

This commit is contained in:
Luc Maisonobe 2016-01-06 13:20:25 +01:00
parent 11df45b7bd
commit c246b37dbe
1 changed files with 18 additions and 2 deletions

View File

@ -68,12 +68,28 @@
its partial derivatives with respect to either the initial state or some parameters, these
derivatives being handled be secondary ODE (see below for an example).
</p>
<p>
Two parallel APIs are available. The first is devoted to solve ode for which the integration free
variable t and the state y(t) are primitive double and primitive double array respectively. Starting
with version 3.6, a second API is devoted to solve ode for which the integration free
variable t and the state y(t) are <code>RealFieldElement</code> and <code>RealFieldElement</code>
array respectively. This allow for example users to integrate ode where the computation values
are for example <code>DerivativeStructure</code> elements, hence automatically computing
partial derivatives with respect to some equations parameters without a need to set up the
variational equations. Another example is to use <code>Dfp</code> elements in order to solve
ode with extended precision. As of 3.6, the API are slightly different, mainly in the way they
handle arrays. Both API will become more similar in 4.0 and future versions as the older
primitive double API will be modified to match the newer field API. This cannot be done in
3.6 for compatibility reasons.
</p>
<p>
The user should describe his problem in his own classes which should implement the
<a href="../apidocs/org/apache/commons/math4/ode/FirstOrderDifferentialEquations.html">FirstOrderDifferentialEquations</a>
interface. Then he should pass it to the integrator he prefers among all the classes that implement
interface (or <a href="../apidocs/org/apache/commons/math4/ode/FieldFirstOrderDifferentialEquations.html">FieldFirstOrderDifferentialEquations</a>
interface). Then he should pass it to the integrator he prefers among all the classes that implement
the <a href="../apidocs/org/apache/commons/math4/ode/FirstOrderIntegrator.html">FirstOrderIntegrator</a>
interface. The following example shows how to implement the simple two-dimensional problem:
interface (or the <a href="../apidocs/org/apache/commons/math4/ode/FieldFirstOrderIntegrator.html">FieldFirstOrderIntegrator</a>
interface). The following example shows how to implement the simple two-dimensional problem using double primitives:
<ul>
<li>y'<sub>0</sub>(t) = &#x3c9; &#xD7; (c<sub>1</sub> - y<sub>1</sub>(t))</li>
<li>y'<sub>1</sub>(t) = &#x3c9; &#xD7; (y<sub>0</sub>(t) - c<sub>0</sub>)</li>