<!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>
