# SuanShu, a Java numerical and statistical library

com.numericalmethod.suanshu.analysis.differentialequation.ode.ivp.solver.extrapolation

## Class BurlischStoerExtrapolation

• java.lang.Object
• com.numericalmethod.suanshu.analysis.differentialequation.ode.ivp.solver.extrapolation.BurlischStoerExtrapolation
• All Implemented Interfaces:
ODESolver

public class BurlischStoerExtrapolation
extends Object
implements ODESolver
Burlisch-Stoer extrapolation (or Gragg-Bulirsch-Stoer (GBS)) algorithm combines three powerful ideas: Richardson extrapolation, the use of rational function extrapolation in Richardson-type applications, and the modified midpoint method, to obtain numerical solutions to ordinary differential equations (ODEs) with high accuracy and comparatively little computational effort. The extrapolation is achieved with numerical calculation with decreasing step sizes. The basic technique used to compute approximations is known as the modified midpoint method: $q_{k+1} = q_{k-1} + 2 h f(\alpha + k h, q_k),$ where $$q_k$$ are the estimates, $$h$$ is the step size and $$\alpha$$ is the time point of the initial value. Since the recursive equation requires two previous values, $$q_1$$ is computed using Euler's method.
Wikipedia: Bulirsch-Stoer algorithm
• ### Constructor Summary

Constructors
Constructor and Description
BurlischStoerExtrapolation(double epsilon, int maxIterations)
Create an instance of the algorithm with the precision parameter and the maximum number of iterations allowed.
• ### Method Summary

All Methods
Modifier and Type Method and Description
ODESolution solve(ODE1stOrder ode)
Perform the extrapolation.
• ### Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
• ### Constructor Detail

• #### BurlischStoerExtrapolation

public BurlischStoerExtrapolation(double epsilon,
int maxIterations)
Create an instance of the algorithm with the precision parameter and the maximum number of iterations allowed.
Parameters:
epsilon - the relative precision required
maxIterations - the maximum number of iterations
• ### Method Detail

• #### solve

public ODESolution solve(ODE1stOrder ode)
Perform the extrapolation. The algorithm will stop when the desired precision is reached or the maximum number of iterations is exceeded, whichever comes first.

If the given error criterion cannot be achieved within the given maximum number of iterations, an UnsatisfiableErrorCriterionException will be thrown.

Specified by:
solve in interface ODESolver
Parameters:
ode - the ODE problem
Returns:
the solution