Fornberg's Finite Difference Approximation
Finite difference approximation using Fornberg's method for the derivatives of order 1 to k based on irregulat grid values.
fornberg(x, y, xs, k = 1)
x |
grid points on the x-axis, must be distinct. |
y |
discrete values of the function at the grid points. |
xs |
point at which to approximate (not vectorized). |
k |
order of derivative, |
Compute coefficients for finite difference approximation for the derivative
of order k
at xs
based on grid values at points in x
.
For k=0
this will evaluate the interpolating polynomial itself, but
call it with k=1
.
Returns a matrix of size (length(xs))
, where the (k+1)-th column
gives the value of the k-th derivative. Especially the first column returns
the polynomial interpolation of the function.
Fornberg's method is considered to be numerically more stable than applying Vandermonde's matrix.
LeVeque, R. J. (2007). Finite Difference Methods for Ordinary and Partial Differential Equations. Society for Industrial and Applied Mathematics (SIAM), Philadelphia.
x <- 2 * pi * c(0.0, 0.07, 0.13, 0.2, 0.28, 0.34, 0.47, 0.5, 0.71, 0.95, 1.0) y <- sin(0.9*x) xs <- linspace(0, 2*pi, 51) fornb <- fornberg(x, y, xs, 10) ## Not run: matplot(xs, fornb, type="l") grid() ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.