You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by lu...@apache.org on 2015/12/09 17:01:18 UTC

[21/21] [math] Notify availability of field-based ode.

Notify availability of field-based ode.

Project: http://git-wip-us.apache.org/repos/asf/commons-math/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-math/commit/10c271f2
Tree: http://git-wip-us.apache.org/repos/asf/commons-math/tree/10c271f2
Diff: http://git-wip-us.apache.org/repos/asf/commons-math/diff/10c271f2

Branch: refs/heads/field-ode
Commit: 10c271f2cb800ceb4d649cf988f870720841c579
Parents: 4edbcc7
Author: Luc Maisonobe <lu...@apache.org>
Authored: Wed Dec 9 17:00:03 2015 +0100
Committer: Luc Maisonobe <lu...@apache.org>
Committed: Wed Dec 9 17:00:03 2015 +0100

----------------------------------------------------------------------
 src/changes/changes.xml         |  7 +++++++
 src/site/xdoc/userguide/ode.xml | 20 ++++++++++++++++++--
 2 files changed, 25 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-math/blob/10c271f2/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 1276963..e5f9246 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -51,6 +51,13 @@ If the output is not quite correct, check for invisible trailing spaces!
   </properties>
   <body>
     <release version="3.6" date="XXXX-XX-XX" description="">
+      <action dev="luc" type="add" issue="MATH-1288">
+        Added a field-based version of Ordinary Differential Equations framework.
+        This allows integrating ode that refer to RealField elements instead of
+        primitive double, hence opening the way to use DerivativeStructure to
+        compute partial differential without using variational equations, or to solve
+        ode with extended precision using Dfp.
+      </action>
       <action dev="erans" type="fix" issue="MATH-1295" due-to="Luke Lindsay">
         Increased default value for number of allowed evaluations in
         "o.a.c.m.optim.univariate.BracketFinder".

http://git-wip-us.apache.org/repos/asf/commons-math/blob/10c271f2/src/site/xdoc/userguide/ode.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/userguide/ode.xml b/src/site/xdoc/userguide/ode.xml
index 0cd246b..bd2bf8e 100644
--- a/src/site/xdoc/userguide/ode.xml
+++ b/src/site/xdoc/userguide/ode.xml
@@ -69,11 +69,27 @@
           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/math3/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/math3/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/math3/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/math3/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>