blob: 87a2c5f8e139186a41b1dfe7dc3b52f3119db578 [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>GraggBulirschStoerIntegrator (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="GraggBulirschStoerIntegrator (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/GraggBulirschStoerIntegrator.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/nonstiff/GillIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../../org/apache/commons/math3/ode/nonstiff/HighamHall54Integrator.html" title="class in org.apache.commons.math3.ode.nonstiff"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/commons/math3/ode/nonstiff/GraggBulirschStoerIntegrator.html" target="_top">Frames</a></li>
<li><a href="GraggBulirschStoerIntegrator.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>Nested&nbsp;|&nbsp;</li>
<li><a href="#fields_inherited_from_class_org.apache.commons.math3.ode.nonstiff.AdaptiveStepsizeIntegrator">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>Field&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.nonstiff</div>
<h2 title="Class GraggBulirschStoerIntegrator" class="title">Class GraggBulirschStoerIntegrator</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.nonstiff.GraggBulirschStoerIntegrator</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>
<hr>
<br>
<pre>public class <span class="strong">GraggBulirschStoerIntegrator</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 implements a Gragg-Bulirsch-Stoer integrator for
Ordinary Differential Equations.
<p>The Gragg-Bulirsch-Stoer algorithm is one of the most efficient
ones currently available for smooth problems. It uses Richardson
extrapolation to estimate what would be the solution if the step
size could be decreased down to zero.</p>
<p>
This method changes both the step size and the order during
integration, in order to minimize computation cost. It is
particularly well suited when a very high precision is needed. The
limit where this method becomes more efficient than high-order
embedded Runge-Kutta methods like <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> depends on the problem. Results given in the
Hairer, Norsett and Wanner book show for example that this limit
occurs for accuracy around 1e-6 when integrating Saltzam-Lorenz
equations (the authors note this problem is <i>extremely sensitive
to the errors in the first integration steps</i>), and around 1e-11
for a two dimensional celestial mechanics problems with seven
bodies (pleiades problem, involving quasi-collisions for which
<i>automatic step size control is essential</i>).
</p>
<p>
This implementation is basically a reimplementation in Java of the
<a
href="http://www.unige.ch/math/folks/hairer/prog/nonstiff/odex.f">odex</a>
fortran code by E. Hairer and G. Wanner. The redistribution policy
for this code is available <a
href="http://www.unige.ch/~hairer/prog/licence.txt">here</a>, for
convenience, it is reproduced below.</p>
</p>
<table border="0" width="80%" cellpadding="10" align="center" bgcolor="#E0E0E0">
<tr><td>Copyright (c) 2004, Ernst Hairer</td></tr>
<tr><td>Redistribution and use in source and binary forms, with or
without modification, are permitted provided that the following
conditions are met:
<ul>
<li>Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.</li>
<li>Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.</li>
</ul></td></tr>
<tr><td><strong>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</strong></td></tr>
</table></div>
<dl><dt><span class="strong">Since:</span></dt>
<dd>1.2</dd>
<dt><span class="strong">Version:</span></dt>
<dd>$Id: GraggBulirschStoerIntegrator.java 1416643 2012-12-03 19:37:14Z tn $</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<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="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../../../org/apache/commons/math3/ode/nonstiff/GraggBulirschStoerIntegrator.html#GraggBulirschStoerIntegrator(double, double, double[], double[])">GraggBulirschStoerIntegrator</a></strong>(double&nbsp;minStep,
double&nbsp;maxStep,
double[]&nbsp;vecAbsoluteTolerance,
double[]&nbsp;vecRelativeTolerance)</code>
<div class="block">Simple constructor.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><strong><a href="../../../../../../org/apache/commons/math3/ode/nonstiff/GraggBulirschStoerIntegrator.html#GraggBulirschStoerIntegrator(double, double, double, double)">GraggBulirschStoerIntegrator</a></strong>(double&nbsp;minStep,
double&nbsp;maxStep,
double&nbsp;scalAbsoluteTolerance,
double&nbsp;scalRelativeTolerance)</code>
<div class="block">Simple constructor.</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>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/ode/nonstiff/GraggBulirschStoerIntegrator.html#addEventHandler(org.apache.commons.math3.ode.events.EventHandler, double, double, int, org.apache.commons.math3.analysis.solvers.UnivariateSolver)">addEventHandler</a></strong>(<a href="../../../../../../org/apache/commons/math3/ode/events/EventHandler.html" title="interface in org.apache.commons.math3.ode.events">EventHandler</a>&nbsp;function,
double&nbsp;maxCheckInterval,
double&nbsp;convergence,
int&nbsp;maxIterationCount,
<a href="../../../../../../org/apache/commons/math3/analysis/solvers/UnivariateSolver.html" title="interface in org.apache.commons.math3.analysis.solvers">UnivariateSolver</a>&nbsp;solver)</code>
<div class="block">Add an event handler to the integrator.</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/nonstiff/GraggBulirschStoerIntegrator.html#addStepHandler(org.apache.commons.math3.ode.sampling.StepHandler)">addStepHandler</a></strong>(<a href="../../../../../../org/apache/commons/math3/ode/sampling/StepHandler.html" title="interface in org.apache.commons.math3.ode.sampling">StepHandler</a>&nbsp;handler)</code>
<div class="block">Add a step handler to this integrator.</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/nonstiff/GraggBulirschStoerIntegrator.html#integrate(org.apache.commons.math3.ode.ExpandableStatefulODE, double)">integrate</a></strong>(<a href="../../../../../../org/apache/commons/math3/ode/ExpandableStatefulODE.html" title="class in org.apache.commons.math3.ode">ExpandableStatefulODE</a>&nbsp;equations,
double&nbsp;t)</code>
<div class="block">Integrate a set of differential equations up to the given time.</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/nonstiff/GraggBulirschStoerIntegrator.html#setControlFactors(double, double, double, double)">setControlFactors</a></strong>(double&nbsp;control1,
double&nbsp;control2,
double&nbsp;control3,
double&nbsp;control4)</code>
<div class="block">Set the step size control factors.</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/nonstiff/GraggBulirschStoerIntegrator.html#setInterpolationControl(boolean, int)">setInterpolationControl</a></strong>(boolean&nbsp;useInterpolationErrorForControl,
int&nbsp;mudifControlParameter)</code>
<div class="block">Set the interpolation order control parameter.</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/nonstiff/GraggBulirschStoerIntegrator.html#setOrderControl(int, double, double)">setOrderControl</a></strong>(int&nbsp;maximalOrder,
double&nbsp;control1,
double&nbsp;control2)</code>
<div class="block">Set the order control parameters.</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/nonstiff/GraggBulirschStoerIntegrator.html#setStabilityCheck(boolean, int, int, double)">setStabilityCheck</a></strong>(boolean&nbsp;performStabilityCheck,
int&nbsp;maxNumIter,
int&nbsp;maxNumChecks,
double&nbsp;stepsizeReductionFactor)</code>
<div class="block">Set the stability check controls.</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#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#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">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="GraggBulirschStoerIntegrator(double, double, double, double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>GraggBulirschStoerIntegrator</h4>
<pre>public&nbsp;GraggBulirschStoerIntegrator(double&nbsp;minStep,
double&nbsp;maxStep,
double&nbsp;scalAbsoluteTolerance,
double&nbsp;scalRelativeTolerance)</pre>
<div class="block">Simple constructor.
Build a Gragg-Bulirsch-Stoer integrator with the given step
bounds. All tuning parameters are set to their default
values. The default step handler does nothing.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>minStep</code> - minimal step (sign is irrelevant, regardless of
integration direction, forward or backward), the last step can
be smaller than this</dd><dd><code>maxStep</code> - maximal step (sign is irrelevant, regardless of
integration direction, forward or backward), the last step can
be smaller than this</dd><dd><code>scalAbsoluteTolerance</code> - allowed absolute error</dd><dd><code>scalRelativeTolerance</code> - allowed relative error</dd></dl>
</li>
</ul>
<a name="GraggBulirschStoerIntegrator(double, double, double[], double[])">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>GraggBulirschStoerIntegrator</h4>
<pre>public&nbsp;GraggBulirschStoerIntegrator(double&nbsp;minStep,
double&nbsp;maxStep,
double[]&nbsp;vecAbsoluteTolerance,
double[]&nbsp;vecRelativeTolerance)</pre>
<div class="block">Simple constructor.
Build a Gragg-Bulirsch-Stoer integrator with the given step
bounds. All tuning parameters are set to their default
values. The default step handler does nothing.</div>
<dl><dt><span class="strong">Parameters:</span></dt><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="setStabilityCheck(boolean, int, int, double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setStabilityCheck</h4>
<pre>public&nbsp;void&nbsp;setStabilityCheck(boolean&nbsp;performStabilityCheck,
int&nbsp;maxNumIter,
int&nbsp;maxNumChecks,
double&nbsp;stepsizeReductionFactor)</pre>
<div class="block">Set the stability check controls.
<p>The stability check is performed on the first few iterations of
the extrapolation scheme. If this test fails, the step is rejected
and the stepsize is reduced.</p>
<p>By default, the test is performed, at most during two
iterations at each step, and at most once for each of these
iterations. The default stepsize reduction factor is 0.5.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>performStabilityCheck</code> - if true, stability check will be performed,
if false, the check will be skipped</dd><dd><code>maxNumIter</code> - maximal number of iterations for which checks are
performed (the number of iterations is reset to default if negative
or null)</dd><dd><code>maxNumChecks</code> - maximal number of checks for each iteration
(the number of checks is reset to default if negative or null)</dd><dd><code>stepsizeReductionFactor</code> - stepsize reduction factor in case of
failure (the factor is reset to default if lower than 0.0001 or
greater than 0.9999)</dd></dl>
</li>
</ul>
<a name="setControlFactors(double, double, double, double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setControlFactors</h4>
<pre>public&nbsp;void&nbsp;setControlFactors(double&nbsp;control1,
double&nbsp;control2,
double&nbsp;control3,
double&nbsp;control4)</pre>
<div class="block">Set the step size control factors.
<p>The new step size hNew is computed from the old one h by:
<pre>
hNew = h * stepControl2 / (err/stepControl1)^(1/(2k+1))
</pre>
where err is the scaled error and k the iteration number of the
extrapolation scheme (counting from 0). The default values are
0.65 for stepControl1 and 0.94 for stepControl2.</p>
<p>The step size is subject to the restriction:
<pre>
stepControl3^(1/(2k+1))/stepControl4 <= hNew/h <= 1/stepControl3^(1/(2k+1))
</pre>
The default values are 0.02 for stepControl3 and 4.0 for
stepControl4.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>control1</code> - first stepsize control factor (the factor is
reset to default if lower than 0.0001 or greater than 0.9999)</dd><dd><code>control2</code> - second stepsize control factor (the factor
is reset to default if lower than 0.0001 or greater than 0.9999)</dd><dd><code>control3</code> - third stepsize control factor (the factor is
reset to default if lower than 0.0001 or greater than 0.9999)</dd><dd><code>control4</code> - fourth stepsize control factor (the factor
is reset to default if lower than 1.0001 or greater than 999.9)</dd></dl>
</li>
</ul>
<a name="setOrderControl(int, double, double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setOrderControl</h4>
<pre>public&nbsp;void&nbsp;setOrderControl(int&nbsp;maximalOrder,
double&nbsp;control1,
double&nbsp;control2)</pre>
<div class="block">Set the order control parameters.
<p>The Gragg-Bulirsch-Stoer method changes both the step size and
the order during integration, in order to minimize computation
cost. Each extrapolation step increases the order by 2, so the
maximal order that will be used is always even, it is twice the
maximal number of columns in the extrapolation table.</p>
<pre>
order is decreased if w(k-1) <= w(k) * orderControl1
order is increased if w(k) <= w(k-1) * orderControl2
</pre>
<p>where w is the table of work per unit step for each order
(number of function calls divided by the step length), and k is
the current order.</p>
<p>The default maximal order after construction is 18 (i.e. the
maximal number of columns is 9). The default values are 0.8 for
orderControl1 and 0.9 for orderControl2.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>maximalOrder</code> - maximal order in the extrapolation table (the
maximal order is reset to default if order <= 6 or odd)</dd><dd><code>control1</code> - first order control factor (the factor is
reset to default if lower than 0.0001 or greater than 0.9999)</dd><dd><code>control2</code> - second order control factor (the factor
is reset to default if lower than 0.0001 or greater than 0.9999)</dd></dl>
</li>
</ul>
<a name="addStepHandler(org.apache.commons.math3.ode.sampling.StepHandler)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addStepHandler</h4>
<pre>public&nbsp;void&nbsp;addStepHandler(<a href="../../../../../../org/apache/commons/math3/ode/sampling/StepHandler.html" title="interface in org.apache.commons.math3.ode.sampling">StepHandler</a>&nbsp;handler)</pre>
<div class="block">Add a step handler to this integrator.
<p>The handler will be called by the integrator for each accepted
step.</p></div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/ode/ODEIntegrator.html#addStepHandler(org.apache.commons.math3.ode.sampling.StepHandler)">addStepHandler</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/commons/math3/ode/ODEIntegrator.html" title="interface in org.apache.commons.math3.ode">ODEIntegrator</a></code></dd>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#addStepHandler(org.apache.commons.math3.ode.sampling.StepHandler)">addStepHandler</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html" title="class in org.apache.commons.math3.ode">AbstractIntegrator</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>handler</code> - handler for the accepted steps</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../org/apache/commons/math3/ode/ODEIntegrator.html#getStepHandlers()"><code>ODEIntegrator.getStepHandlers()</code></a>,
<a href="../../../../../../org/apache/commons/math3/ode/ODEIntegrator.html#clearStepHandlers()"><code>ODEIntegrator.clearStepHandlers()</code></a></dd></dl>
</li>
</ul>
<a name="addEventHandler(org.apache.commons.math3.ode.events.EventHandler, double, double, int, org.apache.commons.math3.analysis.solvers.UnivariateSolver)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addEventHandler</h4>
<pre>public&nbsp;void&nbsp;addEventHandler(<a href="../../../../../../org/apache/commons/math3/ode/events/EventHandler.html" title="interface in org.apache.commons.math3.ode.events">EventHandler</a>&nbsp;function,
double&nbsp;maxCheckInterval,
double&nbsp;convergence,
int&nbsp;maxIterationCount,
<a href="../../../../../../org/apache/commons/math3/analysis/solvers/UnivariateSolver.html" title="interface in org.apache.commons.math3.analysis.solvers">UnivariateSolver</a>&nbsp;solver)</pre>
<div class="block">Add an event handler to the integrator.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/ode/ODEIntegrator.html#addEventHandler(org.apache.commons.math3.ode.events.EventHandler, double, double, int, org.apache.commons.math3.analysis.solvers.UnivariateSolver)">addEventHandler</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/commons/math3/ode/ODEIntegrator.html" title="interface in org.apache.commons.math3.ode">ODEIntegrator</a></code></dd>
<dt><strong>Overrides:</strong></dt>
<dd><code><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></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html" title="class in org.apache.commons.math3.ode">AbstractIntegrator</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>function</code> - event handler</dd><dd><code>maxCheckInterval</code> - maximal time interval between switching
function checks (this interval prevents missing sign changes in
case the integration steps becomes very large)</dd><dd><code>convergence</code> - convergence threshold in the event time search</dd><dd><code>maxIterationCount</code> - upper limit of the iteration count in
the event time search</dd><dd><code>solver</code> - The root-finding algorithm to use to detect the state
events.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../org/apache/commons/math3/ode/ODEIntegrator.html#getEventHandlers()"><code>ODEIntegrator.getEventHandlers()</code></a>,
<a href="../../../../../../org/apache/commons/math3/ode/ODEIntegrator.html#clearEventHandlers()"><code>ODEIntegrator.clearEventHandlers()</code></a></dd></dl>
</li>
</ul>
<a name="setInterpolationControl(boolean, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setInterpolationControl</h4>
<pre>public&nbsp;void&nbsp;setInterpolationControl(boolean&nbsp;useInterpolationErrorForControl,
int&nbsp;mudifControlParameter)</pre>
<div class="block">Set the interpolation order control parameter.
The interpolation order for dense output is 2k - mudif + 1. The
default value for mudif is 4 and the interpolation error is used
in stepsize control by default.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>useInterpolationErrorForControl</code> - if true, interpolation error is used
for stepsize control</dd><dd><code>mudifControlParameter</code> - interpolation order control parameter (the parameter
is reset to default if <= 0 or >= 7)</dd></dl>
</li>
</ul>
<a name="integrate(org.apache.commons.math3.ode.ExpandableStatefulODE, double)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>integrate</h4>
<pre>public&nbsp;void&nbsp;integrate(<a href="../../../../../../org/apache/commons/math3/ode/ExpandableStatefulODE.html" title="class in org.apache.commons.math3.ode">ExpandableStatefulODE</a>&nbsp;equations,
double&nbsp;t)
throws <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/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</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">Integrate a set of differential equations up to the given time.
<p>This method solves an Initial Value Problem (IVP).</p>
<p>The set of differential equations is composed of a main set, which
can be extended by some sets of secondary equations. The set of
equations must be already set up with initial time and partial states.
At integration completion, the final time and partial states will be
available in the same object.</p>
<p>Since this method stores some internal state variables made
available in its public interface during integration (<a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#getCurrentSignedStepsize()"><code>AbstractIntegrator.getCurrentSignedStepsize()</code></a>), it is <em>not</em> thread-safe.</p></div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#integrate(org.apache.commons.math3.ode.ExpandableStatefulODE, double)">integrate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff">AdaptiveStepsizeIntegrator</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>equations</code> - complete set of differential equations to integrate</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/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/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a></code> - if the dimension of the complete state does not
match the complete equations sets dimension</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>
</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/GraggBulirschStoerIntegrator.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/nonstiff/GillIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../../org/apache/commons/math3/ode/nonstiff/HighamHall54Integrator.html" title="class in org.apache.commons.math3.ode.nonstiff"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/commons/math3/ode/nonstiff/GraggBulirschStoerIntegrator.html" target="_top">Frames</a></li>
<li><a href="GraggBulirschStoerIntegrator.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>Nested&nbsp;|&nbsp;</li>
<li><a href="#fields_inherited_from_class_org.apache.commons.math3.ode.nonstiff.AdaptiveStepsizeIntegrator">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>Field&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>