diff --git a/src/java/org/apache/commons/math/ode/NordsieckTransformer.java b/src/java/org/apache/commons/math/ode/nonstiff/AdamsNordsieckTransformer.java similarity index 78% rename from src/java/org/apache/commons/math/ode/NordsieckTransformer.java rename to src/java/org/apache/commons/math/ode/nonstiff/AdamsNordsieckTransformer.java index c4bc472b0..8e9458973 100644 --- a/src/java/org/apache/commons/math/ode/NordsieckTransformer.java +++ b/src/java/org/apache/commons/math/ode/nonstiff/AdamsNordsieckTransformer.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.commons.math.ode; +package org.apache.commons.math.ode.nonstiff; import java.util.Arrays; import java.util.HashMap; @@ -32,13 +32,12 @@ import org.apache.commons.math.linear.FieldMatrix; import org.apache.commons.math.linear.MatrixUtils; import org.apache.commons.math.linear.MatrixVisitorException; import org.apache.commons.math.linear.RealMatrix; -import org.apache.commons.math.ode.nonstiff.AdamsBashforthIntegrator; -import org.apache.commons.math.ode.nonstiff.AdamsMoultonIntegrator; -/** Transformer for Nordsieck vectors. - *

This class i used by {@link MultistepIntegrator multistep integrators} - * to convert between classical representation with several previous first - * derivatives and Nordsieck representation with higher order scaled derivatives.

+/** Transformer to Nordsieck vectors for Adams integrators. + *

This class i used by {@link AdamsBashforthIntegrator Adams-Bashforth} and + * {@link AdamsMoultonIntegrator Adams-Moulton} integrators to convert between + * classical representation with several previous first derivatives and Nordsieck + * representation with higher order scaled derivatives.

* *

We define scaled derivatives si(n) at step n as: *

@@ -89,18 +88,9 @@ import org.apache.commons.math.ode.nonstiff.AdamsMoultonIntegrator;
  * 

* *

Changing -i into +i in the formula above can be used to compute a similar transform between - * classical representation and Nordsieck vector at step start. The resulting Q matrix is simply + * classical representation and Nordsieck vector at step start. The resulting matrix is simply * the absolute value of matrix P.

- * - *

Using the Nordsieck vector has several advantages: - *

- * + * *

For {@link AdamsBashforthIntegrator Adams-Bashforth} method, the Nordsieck vector * at step n+1 is computed from the Nordsieck vector at step n as follows: *

- * where A is a rows shifting matrix (the lower left part is an identity matrix): - *
- *        [ 0 0   ...  0 0 | 0 ]
- *        [ ---------------+---]
- *        [ 1 0   ...  0 0 | 0 ]
- *    A = [ 0 1   ...  0 0 | 0 ]
- *        [       ...      | 0 ]
- *        [ 0 0   ...  1 0 | 0 ]
- *        [ 0 0   ...  0 1 | 0 ]
- * 
* From this predicted vector, the corrected vector is computed as follows: *