Use Richardson Extrapolation sequence acceleration to compute the order of convergence and exact value of a sequence
Richardson Extrapolation is a numerical method that uses solutions at multiple values of a small parameter (think: = grid size) to accelerate the converenge of a sequence. To make that concrete, consider an method that approximates the value of . Writing this as
the unknowns are the exact value , the error constant , and the order of convergence .In its current form, this module solves for two of three unknowns using the solution at two parameter sizes . So for example, given the the order of convergence , you may approximate the exact value (with error of order ), or given the exact value , you may solve for the order of convergence .
The solution of all three unknowns requires the solution of a set of three nonlinear equations and is not implemented yet. :(
$ npm install richardson-extrapolation
For actual sample usage, see the scijs/ode-rk4 tests that use this module along with a known solution to verify the order of convergence.
var richardson = require('richardson-extrapolation')
// Exact value = 3.5
// Order of convergence = 3
function func( h ) {
return 3.5 + 2.0 * Math.pow( h, 3 )
}
// Solve for the order of convergence:
richardson( func, 1, { f: 3.5 } )
// => { f: 3.5, n: 3, c: 2 }
// Approximate the the exact value given order of convergence:
richardson( func, 1, { n: 3 } )
// => { f: 3.5, n: 3, c: 2 }
Arguments:
func
: a function that takes small parameter as its only argumenth
: either a starting parameter size or a set of parameter sizesknowns
: a hash of known parameters. Possibilities are:
Returns: A hash containing three values: the approximated exact value , order of convergence , and the constant of the error term .
Implement nonlinear simultaneous equation solver as a separate module in order to solve for all three unknowns.
(c) 2015 Ricky Reusser. MIT License