General linear methods
<templatestyles src="Module:Hatnote/styles.css"></templatestyles>
General linear methods (GLMs) are a large class of numerical methods used to obtain numerical solutions to differential equations. This large class of methods in numerical analysis encompass multistage Runge–Kutta methods that use intermediate collocation points, as well as linear multistep methods that save a finite time history of the solution. John C. Butcher originally coined this term for these methods, and has written a series of review papers[1] [2] [3] a book chapter[4] and a textbook[5] on the topic. His collaborator, Zdzislaw Jackiewicz also has an extensive textbook[6] on the topic. The original class of methods were originally proposed by Butcher(1965), Gear (1965) and Gragg and Stetter (1964).
Contents
Some definitions
Numerical methods for first-order ordinary differential equations approximate solutions to initial value problems of the form
The result is approximations for the value of at discrete times
:
- Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): y_i \approx y(t_i) \quad\text{where}\quad t_i = t_0 + i h,
where h is the time step (sometimes referred to as ).
A description of the method
We follow Butcher (2006), pps 189–190 for our description, although we note that this method can be found elsewhere.
General linear methods make use of two integers, , the number of time points in history and
, the number of collocation points. In the case of
, these methods reduce to classical Runge–Kutta methods, and in the case of
, these methods reduce to linear multistep methods.
Stage values and stage derivatives,
are computed from approximations,
, at time step
:
The stage values are defined by two matrices, and
:
and the update to time is defined by two matrices,
and
:
Given the four matrices, and
, one can compactly write the analogue of a Butcher tableau as,
where stands for the tensor product, and
.
Examples
We present an example described in (Butcher, 1996).[7] This method consists of a single 'predicted' step, and 'corrected' step, that uses extra information about the time history, as well as a single intermediate stage value.
An intermediate stage value is defined as something that looks like it came from a linear multistep method:
An initial 'predictor' uses the stage value
together with two pieces of time history:
and the final update is given by:
The concise table representation for this method is given by:
- Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): \left[ \begin{array}{ccc|cccc} 0 & 0 & 0 & 0 & 1 & \frac{9}{8} & \frac{3}{8} \\ \frac{32}{15} & 0 & 0 & \frac{28}{5} & -\frac{23}{5} & -4 & -\frac{26}{15} \\ \frac{64}{93} & \frac{5}{31} & 0 & \frac{32}{31} & -\frac{1}{31} & \frac{4}{31} & -\frac{1}{93} \\ \hline \frac{64}{93} & \frac{5}{31} & 0 & \frac{32}{31} & -\frac{1}{31} & \frac{4}{31} & -\frac{1}{93} \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ \end{array} \right].
See also
Notes
<templatestyles src="Reflist/styles.css" />
Cite error: Invalid <references>
tag; parameter "group" is allowed only.
<references />
, or <references group="..." />
References
- Lua error in package.lua at line 80: module 'strict' not found.
- Lua error in package.lua at line 80: module 'strict' not found.
- Lua error in package.lua at line 80: module 'strict' not found.
- Lua error in package.lua at line 80: module 'strict' not found..
External links
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Butcher 1996, p. 107