# SuanShu, a Java numerical and statistical library

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

## Class SemiImplicitExtrapolation

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

public class SemiImplicitExtrapolation
extends Object
implements ODESolver
Semi-Implicit Extrapolation is a method of solving ordinary differential equations, that is similar to Burlisch-Stoer extrapolation. However, instead of using the regular explicit Euler's method to compute mid-point estimates, this algorithm uses a Taylor series approximation to the implicit backward Euler's method: $x_{k+1} = x_k + h f(t_{k+1}, x_{k+1})$

This method is more computationally expensive but has a tendency to remain stable for larger step sizes. In particular, it is useful for solving stiff ODEs.

Wikipedia: Explicit and implicit methods
• ### Constructor Summary

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

All Methods
Modifier and Type Method and Description
ODESolution solve(ODE1stOrder ode)
Solves the given ODE problem.
ODESolution solve(ODE1stOrderWith2ndDerivative ode)
• ### Methods inherited from class java.lang.Object

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

• #### SemiImplicitExtrapolation

public SemiImplicitExtrapolation(double epsilon,
int maxIterations)
Create an instance of this algorithm with the given 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)
Description copied from interface: ODESolver
Solves the given ODE problem.
Specified by:
solve in interface ODESolver
Parameters:
ode - the ODE problem
Returns:
the solution
• #### solve

public ODESolution solve(ODE1stOrderWith2ndDerivative ode)