blob: 78c08673a3c99960b104b50e60df57062e99cdad [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>MultistepIntegrator (Apache Commons Math 3.3 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="MultistepIntegrator (Apache Commons Math 3.3 API)";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/MultistepIntegrator.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/commons/math3/ode/MainStateJacobianProvider.html" title="interface in org.apache.commons.math3.ode"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/commons/math3/ode/MultistepIntegrator.NordsieckTransformer.html" title="interface in org.apache.commons.math3.ode"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/commons/math3/ode/MultistepIntegrator.html" target="_top">Frames</a></li>
<li><a href="MultistepIntegrator.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested_class_summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.commons.math3.ode</div>
<h2 title="Class MultistepIntegrator" class="title">Class MultistepIntegrator</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html" title="class in org.apache.commons.math3.ode">org.apache.commons.math3.ode.AbstractIntegrator</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff">org.apache.commons.math3.ode.nonstiff.AdaptiveStepsizeIntegrator</a></li>
<li>
<ul class="inheritance">
<li>org.apache.commons.math3.ode.MultistepIntegrator</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../org/apache/commons/math3/ode/FirstOrderIntegrator.html" title="interface in org.apache.commons.math3.ode">FirstOrderIntegrator</a>, <a href="../../../../../org/apache/commons/math3/ode/ODEIntegrator.html" title="interface in org.apache.commons.math3.ode">ODEIntegrator</a></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../../org/apache/commons/math3/ode/nonstiff/AdamsIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff">AdamsIntegrator</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="strong">MultistepIntegrator</span>
extends <a href="../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff">AdaptiveStepsizeIntegrator</a></pre>
<div class="block">This class is the base class for multistep integrators for Ordinary
Differential Equations.
<p>We define scaled derivatives s<sub>i</sub>(n) at step n as:
<pre>
s<sub>1</sub>(n) = h y'<sub>n</sub> for first derivative
s<sub>2</sub>(n) = h<sup>2</sup>/2 y''<sub>n</sub> for second derivative
s<sub>3</sub>(n) = h<sup>3</sup>/6 y'''<sub>n</sub> for third derivative
...
s<sub>k</sub>(n) = h<sup>k</sup>/k! y<sup>(k)</sup><sub>n</sub> for k<sup>th</sup> derivative
</pre></p>
<p>Rather than storing several previous steps separately, this implementation uses
the Nordsieck vector with higher degrees scaled derivatives all taken at the same
step (y<sub>n</sub>, s<sub>1</sub>(n) and r<sub>n</sub>) where r<sub>n</sub> is defined as:
<pre>
r<sub>n</sub> = [ s<sub>2</sub>(n), s<sub>3</sub>(n) ... s<sub>k</sub>(n) ]<sup>T</sup>
</pre>
(we omit the k index in the notation for clarity)</p>
<p>
Multistep integrators with Nordsieck representation are highly sensitive to
large step changes because when the step is multiplied by factor a, the
k<sup>th</sup> component of the Nordsieck vector is multiplied by a<sup>k</sup>
and the last components are the least accurate ones. The default max growth
factor is therefore set to a quite low value: 2<sup>1/order</sup>.
</p></div>
<dl><dt><span class="strong">Since:</span></dt>
<dd>2.0</dd>
<dt><span class="strong">Version:</span></dt>
<dd>$Id: MultistepIntegrator.java 1463684 2013-04-02 19:04:13Z luc $</dd>
<dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../org/apache/commons/math3/ode/nonstiff/AdamsBashforthIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff"><code>AdamsBashforthIntegrator</code></a>,
<a href="../../../../../org/apache/commons/math3/ode/nonstiff/AdamsMoultonIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff"><code>AdamsMoultonIntegrator</code></a></dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested_class_summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/ode/MultistepIntegrator.NordsieckTransformer.html" title="interface in org.apache.commons.math3.ode">MultistepIntegrator.NordsieckTransformer</a></strong></code>
<div class="block">Transformer used to convert the first step to Nordsieck representation.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/commons/math3/linear/Array2DRowRealMatrix.html" title="class in org.apache.commons.math3.linear">Array2DRowRealMatrix</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/ode/MultistepIntegrator.html#nordsieck">nordsieck</a></strong></code>
<div class="block">Nordsieck matrix of the higher scaled derivatives.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected double[]</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/ode/MultistepIntegrator.html#scaled">scaled</a></strong></code>
<div class="block">First scaled derivative (h y').</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields_inherited_from_class_org.apache.commons.math3.ode.nonstiff.AdaptiveStepsizeIntegrator">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.commons.math3.ode.nonstiff.<a href="../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff">AdaptiveStepsizeIntegrator</a></h3>
<code><a href="../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#mainSetDimension">mainSetDimension</a>, <a href="../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#scalAbsoluteTolerance">scalAbsoluteTolerance</a>, <a href="../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#scalRelativeTolerance">scalRelativeTolerance</a>, <a href="../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#vecAbsoluteTolerance">vecAbsoluteTolerance</a>, <a href="../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#vecRelativeTolerance">vecRelativeTolerance</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="fields_inherited_from_class_org.apache.commons.math3.ode.AbstractIntegrator">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.commons.math3.ode.<a href="../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html" title="class in org.apache.commons.math3.ode">AbstractIntegrator</a></h3>
<code><a href="../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#isLastStep">isLastStep</a>, <a href="../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#resetOccurred">resetOccurred</a>, <a href="../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#stepHandlers">stepHandlers</a>, <a href="../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#stepSize">stepSize</a>, <a href="../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#stepStart">stepStart</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/ode/MultistepIntegrator.html#MultistepIntegrator(java.lang.String, int, int, double, double, double[], double[])">MultistepIntegrator</a></strong>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
int&nbsp;nSteps,
int&nbsp;order,
double&nbsp;minStep,
double&nbsp;maxStep,
double[]&nbsp;vecAbsoluteTolerance,
double[]&nbsp;vecRelativeTolerance)</code>
<div class="block">Build a multistep integrator with the given stepsize bounds.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/ode/MultistepIntegrator.html#MultistepIntegrator(java.lang.String, int, int, double, double, double, double)">MultistepIntegrator</a></strong>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
int&nbsp;nSteps,
int&nbsp;order,
double&nbsp;minStep,
double&nbsp;maxStep,
double&nbsp;scalAbsoluteTolerance,
double&nbsp;scalRelativeTolerance)</code>
<div class="block">Build a multistep integrator with the given stepsize bounds.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected double</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/ode/MultistepIntegrator.html#computeStepGrowShrinkFactor(double)">computeStepGrowShrinkFactor</a></strong>(double&nbsp;error)</code>
<div class="block">Compute step grow/shrink factor according to normalized error.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/ode/MultistepIntegrator.html#getMaxGrowth()">getMaxGrowth</a></strong>()</code>
<div class="block">Get the maximal growth factor for stepsize control.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/ode/MultistepIntegrator.html#getMinReduction()">getMinReduction</a></strong>()</code>
<div class="block">Get the minimal reduction factor for stepsize control.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/ode/MultistepIntegrator.html#getSafety()">getSafety</a></strong>()</code>
<div class="block">Get the safety factor for stepsize control.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/commons/math3/ode/ODEIntegrator.html" title="interface in org.apache.commons.math3.ode">ODEIntegrator</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/ode/MultistepIntegrator.html#getStarterIntegrator()">getStarterIntegrator</a></strong>()</code>
<div class="block">Get the starter integrator.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected abstract <a href="../../../../../org/apache/commons/math3/linear/Array2DRowRealMatrix.html" title="class in org.apache.commons.math3.linear">Array2DRowRealMatrix</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/ode/MultistepIntegrator.html#initializeHighOrderDerivatives(double, double[], double[][], double[][])">initializeHighOrderDerivatives</a></strong>(double&nbsp;h,
double[]&nbsp;t,
double[][]&nbsp;y,
double[][]&nbsp;yDot)</code>
<div class="block">Initialize the high order scaled derivatives at step start.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/ode/MultistepIntegrator.html#setMaxGrowth(double)">setMaxGrowth</a></strong>(double&nbsp;maxGrowth)</code>
<div class="block">Set the maximal growth factor for stepsize control.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/ode/MultistepIntegrator.html#setMinReduction(double)">setMinReduction</a></strong>(double&nbsp;minReduction)</code>
<div class="block">Set the minimal reduction factor for stepsize control.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/ode/MultistepIntegrator.html#setSafety(double)">setSafety</a></strong>(double&nbsp;safety)</code>
<div class="block">Set the safety factor for stepsize control.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/ode/MultistepIntegrator.html#setStarterIntegrator(org.apache.commons.math3.ode.FirstOrderIntegrator)">setStarterIntegrator</a></strong>(<a href="../../../../../org/apache/commons/math3/ode/FirstOrderIntegrator.html" title="interface in org.apache.commons.math3.ode">FirstOrderIntegrator</a>&nbsp;starterIntegrator)</code>
<div class="block">Set the starter integrator.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/ode/MultistepIntegrator.html#start(double, double[], double)">start</a></strong>(double&nbsp;t0,
double[]&nbsp;y0,
double&nbsp;t)</code>
<div class="block">Start the integration.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.apache.commons.math3.ode.nonstiff.AdaptiveStepsizeIntegrator">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.commons.math3.ode.nonstiff.<a href="../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff">AdaptiveStepsizeIntegrator</a></h3>
<code><a href="../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#filterStep(double, boolean, boolean)">filterStep</a>, <a href="../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#getCurrentStepStart()">getCurrentStepStart</a>, <a href="../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#getMaxStep()">getMaxStep</a>, <a href="../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#getMinStep()">getMinStep</a>, <a href="../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#initializeStep(boolean, int, double[], double, double[], double[], double[], double[])">initializeStep</a>, <a href="../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#integrate(org.apache.commons.math3.ode.ExpandableStatefulODE, double)">integrate</a>, <a href="../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#resetInternalState()">resetInternalState</a>, <a href="../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#sanityChecks(org.apache.commons.math3.ode.ExpandableStatefulODE, double)">sanityChecks</a>, <a href="../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#setInitialStepSize(double)">setInitialStepSize</a>, <a href="../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#setStepSizeControl(double, double, double[], double[])">setStepSizeControl</a>, <a href="../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#setStepSizeControl(double, double, double, double)">setStepSizeControl</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.apache.commons.math3.ode.AbstractIntegrator">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.commons.math3.ode.<a href="../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html" title="class in org.apache.commons.math3.ode">AbstractIntegrator</a></h3>
<code><a href="../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#acceptStep(org.apache.commons.math3.ode.sampling.AbstractStepInterpolator, double[], double[], double)">acceptStep</a>, <a href="../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#addEventHandler(org.apache.commons.math3.ode.events.EventHandler, double, double, int)">addEventHandler</a>, <a href="../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#addEventHandler(org.apache.commons.math3.ode.events.EventHandler, double, double, int, org.apache.commons.math3.analysis.solvers.UnivariateSolver)">addEventHandler</a>, <a href="../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#addStepHandler(org.apache.commons.math3.ode.sampling.StepHandler)">addStepHandler</a>, <a href="../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#clearEventHandlers()">clearEventHandlers</a>, <a href="../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#clearStepHandlers()">clearStepHandlers</a>, <a href="../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#computeDerivatives(double, double[], double[])">computeDerivatives</a>, <a href="../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#getCurrentSignedStepsize()">getCurrentSignedStepsize</a>, <a href="../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#getEvaluations()">getEvaluations</a>, <a href="../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#getEvaluationsCounter()">getEvaluationsCounter</a>, <a href="../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#getEventHandlers()">getEventHandlers</a>, <a href="../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#getExpandable()">getExpandable</a>, <a href="../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#getMaxEvaluations()">getMaxEvaluations</a>, <a href="../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#getName()">getName</a>, <a href="../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#getStepHandlers()">getStepHandlers</a>, <a href="../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#initIntegration(double, double[], double)">initIntegration</a>, <a href="../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#integrate(org.apache.commons.math3.ode.FirstOrderDifferentialEquations, double, double[], double, double[])">integrate</a>, <a href="../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#setEquations(org.apache.commons.math3.ode.ExpandableStatefulODE)">setEquations</a>, <a href="../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#setMaxEvaluations(int)">setMaxEvaluations</a>, <a href="../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#setStateInitialized(boolean)">setStateInitialized</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="scaled">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>scaled</h4>
<pre>protected&nbsp;double[] scaled</pre>
<div class="block">First scaled derivative (h y').</div>
</li>
</ul>
<a name="nordsieck">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>nordsieck</h4>
<pre>protected&nbsp;<a href="../../../../../org/apache/commons/math3/linear/Array2DRowRealMatrix.html" title="class in org.apache.commons.math3.linear">Array2DRowRealMatrix</a> nordsieck</pre>
<div class="block">Nordsieck matrix of the higher scaled derivatives.
<p>(h<sup>2</sup>/2 y'', h<sup>3</sup>/6 y''' ..., h<sup>k</sup>/k! y<sup>(k)</sup>)</p></div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="MultistepIntegrator(java.lang.String, int, int, double, double, double, double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MultistepIntegrator</h4>
<pre>protected&nbsp;MultistepIntegrator(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
int&nbsp;nSteps,
int&nbsp;order,
double&nbsp;minStep,
double&nbsp;maxStep,
double&nbsp;scalAbsoluteTolerance,
double&nbsp;scalRelativeTolerance)
throws <a href="../../../../../org/apache/commons/math3/exception/NumberIsTooSmallException.html" title="class in org.apache.commons.math3.exception">NumberIsTooSmallException</a></pre>
<div class="block">Build a multistep integrator with the given stepsize bounds.
<p>The default starter integrator is set to the <a href="../../../../../org/apache/commons/math3/ode/nonstiff/DormandPrince853Integrator.html" title="class in org.apache.commons.math3.ode.nonstiff"><code>Dormand-Prince 8(5,3)</code></a> integrator with
some defaults settings.</p>
<p>
The default max growth factor is set to a quite low value: 2<sup>1/order</sup>.
</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - name of the method</dd><dd><code>nSteps</code> - number of steps of the multistep method
(excluding the one being computed)</dd><dd><code>order</code> - order of the method</dd><dd><code>minStep</code> - minimal step (must be positive even for backward
integration), the last step can be smaller than this</dd><dd><code>maxStep</code> - maximal step (must be positive even for backward
integration)</dd><dd><code>scalAbsoluteTolerance</code> - allowed absolute error</dd><dd><code>scalRelativeTolerance</code> - allowed relative error</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NumberIsTooSmallException.html" title="class in org.apache.commons.math3.exception">NumberIsTooSmallException</a></code> - if number of steps is smaller than 2</dd></dl>
</li>
</ul>
<a name="MultistepIntegrator(java.lang.String, int, int, double, double, double[], double[])">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>MultistepIntegrator</h4>
<pre>protected&nbsp;MultistepIntegrator(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
int&nbsp;nSteps,
int&nbsp;order,
double&nbsp;minStep,
double&nbsp;maxStep,
double[]&nbsp;vecAbsoluteTolerance,
double[]&nbsp;vecRelativeTolerance)</pre>
<div class="block">Build a multistep integrator with the given stepsize bounds.
<p>The default starter integrator is set to the <a href="../../../../../org/apache/commons/math3/ode/nonstiff/DormandPrince853Integrator.html" title="class in org.apache.commons.math3.ode.nonstiff"><code>Dormand-Prince 8(5,3)</code></a> integrator with
some defaults settings.</p>
<p>
The default max growth factor is set to a quite low value: 2<sup>1/order</sup>.
</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - name of the method</dd><dd><code>nSteps</code> - number of steps of the multistep method
(excluding the one being computed)</dd><dd><code>order</code> - order of the method</dd><dd><code>minStep</code> - minimal step (must be positive even for backward
integration), the last step can be smaller than this</dd><dd><code>maxStep</code> - maximal step (must be positive even for backward
integration)</dd><dd><code>vecAbsoluteTolerance</code> - allowed absolute error</dd><dd><code>vecRelativeTolerance</code> - allowed relative error</dd></dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getStarterIntegrator()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getStarterIntegrator</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/commons/math3/ode/ODEIntegrator.html" title="interface in org.apache.commons.math3.ode">ODEIntegrator</a>&nbsp;getStarterIntegrator()</pre>
<div class="block">Get the starter integrator.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>starter integrator</dd></dl>
</li>
</ul>
<a name="setStarterIntegrator(org.apache.commons.math3.ode.FirstOrderIntegrator)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setStarterIntegrator</h4>
<pre>public&nbsp;void&nbsp;setStarterIntegrator(<a href="../../../../../org/apache/commons/math3/ode/FirstOrderIntegrator.html" title="interface in org.apache.commons.math3.ode">FirstOrderIntegrator</a>&nbsp;starterIntegrator)</pre>
<div class="block">Set the starter integrator.
<p>The various step and event handlers for this starter integrator
will be managed automatically by the multi-step integrator. Any
user configuration for these elements will be cleared before use.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>starterIntegrator</code> - starter integrator</dd></dl>
</li>
</ul>
<a name="start(double, double[], double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>start</h4>
<pre>protected&nbsp;void&nbsp;start(double&nbsp;t0,
double[]&nbsp;y0,
double&nbsp;t)
throws <a href="../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a>,
<a href="../../../../../org/apache/commons/math3/exception/NumberIsTooSmallException.html" title="class in org.apache.commons.math3.exception">NumberIsTooSmallException</a>,
<a href="../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a>,
<a href="../../../../../org/apache/commons/math3/exception/NoBracketingException.html" title="class in org.apache.commons.math3.exception">NoBracketingException</a></pre>
<div class="block">Start the integration.
<p>This method computes one step using the underlying starter integrator,
and initializes the Nordsieck vector at step start. The starter integrator
purpose is only to establish initial conditions, it does not really change
time by itself. The top level multistep integrator remains in charge of
handling time propagation and events handling as it will starts its own
computation right from the beginning. In a sense, the starter integrator
can be seen as a dummy one and so it will never trigger any user event nor
call any user step handler.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>t0</code> - initial time</dd><dd><code>y0</code> - initial value of the state vector at t0</dd><dd><code>t</code> - target time for the integration
(can be set to a value smaller than <code>t0</code> for backward integration)</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a></code> - if arrays dimension do not match equations settings</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NumberIsTooSmallException.html" title="class in org.apache.commons.math3.exception">NumberIsTooSmallException</a></code> - if integration step is too small</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></code> - if the number of functions evaluations is exceeded</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NoBracketingException.html" title="class in org.apache.commons.math3.exception">NoBracketingException</a></code> - if the location of an event cannot be bracketed</dd></dl>
</li>
</ul>
<a name="initializeHighOrderDerivatives(double, double[], double[][], double[][])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initializeHighOrderDerivatives</h4>
<pre>protected abstract&nbsp;<a href="../../../../../org/apache/commons/math3/linear/Array2DRowRealMatrix.html" title="class in org.apache.commons.math3.linear">Array2DRowRealMatrix</a>&nbsp;initializeHighOrderDerivatives(double&nbsp;h,
double[]&nbsp;t,
double[][]&nbsp;y,
double[][]&nbsp;yDot)</pre>
<div class="block">Initialize the high order scaled derivatives at step start.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>h</code> - step size to use for scaling</dd><dd><code>t</code> - first steps times</dd><dd><code>y</code> - first steps states</dd><dd><code>yDot</code> - first steps derivatives</dd>
<dt><span class="strong">Returns:</span></dt><dd>Nordieck vector at first step (h<sup>2</sup>/2 y''<sub>n</sub>,
h<sup>3</sup>/6 y'''<sub>n</sub> ... h<sup>k</sup>/k! y<sup>(k)</sup><sub>n</sub>)</dd></dl>
</li>
</ul>
<a name="getMinReduction()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMinReduction</h4>
<pre>public&nbsp;double&nbsp;getMinReduction()</pre>
<div class="block">Get the minimal reduction factor for stepsize control.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>minimal reduction factor</dd></dl>
</li>
</ul>
<a name="setMinReduction(double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMinReduction</h4>
<pre>public&nbsp;void&nbsp;setMinReduction(double&nbsp;minReduction)</pre>
<div class="block">Set the minimal reduction factor for stepsize control.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>minReduction</code> - minimal reduction factor</dd></dl>
</li>
</ul>
<a name="getMaxGrowth()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxGrowth</h4>
<pre>public&nbsp;double&nbsp;getMaxGrowth()</pre>
<div class="block">Get the maximal growth factor for stepsize control.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>maximal growth factor</dd></dl>
</li>
</ul>
<a name="setMaxGrowth(double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMaxGrowth</h4>
<pre>public&nbsp;void&nbsp;setMaxGrowth(double&nbsp;maxGrowth)</pre>
<div class="block">Set the maximal growth factor for stepsize control.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>maxGrowth</code> - maximal growth factor</dd></dl>
</li>
</ul>
<a name="getSafety()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSafety</h4>
<pre>public&nbsp;double&nbsp;getSafety()</pre>
<div class="block">Get the safety factor for stepsize control.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>safety factor</dd></dl>
</li>
</ul>
<a name="setSafety(double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSafety</h4>
<pre>public&nbsp;void&nbsp;setSafety(double&nbsp;safety)</pre>
<div class="block">Set the safety factor for stepsize control.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>safety</code> - safety factor</dd></dl>
</li>
</ul>
<a name="computeStepGrowShrinkFactor(double)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>computeStepGrowShrinkFactor</h4>
<pre>protected&nbsp;double&nbsp;computeStepGrowShrinkFactor(double&nbsp;error)</pre>
<div class="block">Compute step grow/shrink factor according to normalized error.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>error</code> - normalized error of the current step</dd>
<dt><span class="strong">Returns:</span></dt><dd>grow/shrink factor for next step</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/MultistepIntegrator.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/commons/math3/ode/MainStateJacobianProvider.html" title="interface in org.apache.commons.math3.ode"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/commons/math3/ode/MultistepIntegrator.NordsieckTransformer.html" title="interface in org.apache.commons.math3.ode"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/commons/math3/ode/MultistepIntegrator.html" target="_top">Frames</a></li>
<li><a href="MultistepIntegrator.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested_class_summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2003&#x2013;2014 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>