pade.RdA Pade approximation is a rational function (of a specified order) whose power series expansion agrees with a given function and its derivatives to the highest possible order.
pade(p1, p2 = c(1), d1 = 5, d2 = 5)The relationship between the coefficients of p1 (and p2)
and r1 and r2 is determined by a system of linear equations.
The system is then solved by applying the pseudo-inverse pinv for
for the left-hand matrix.
List with components r1 and r2 for the numerator and
denominator polynomials, i.e. r1/r2 is the rational approximation
sought.
In general, errors for Pade approximations are smallest when the degrees of numerator and denominator are the same or when the degree of the numerator is one larger than that of the denominator.
Press, W. H., S. A. Teukolsky, W. T Vetterling, and B. P. Flannery (2007). Numerical Recipes: The Art of Numerical Computing. Third Edition, Cambridge University Press, New York.
taylor, ratInterp
## Exponential function
p1 <- c(1/24, 1/6, 1/2, 1.0, 1.0) # Taylor series of exp(x) at x=0
R <- pade(p1); r1 <- R$r1; r2 <- R$r2
f1 <- function(x) polyval(r1, x) / polyval(r2, x)
if (FALSE) { # \dontrun{
xs <- seq(-1, 1, length.out=51); ys1 <- exp(xs); ys2 <- f1(xs)
plot(xs, ys1, type = "l", col="blue")
lines(xs, ys2, col = "red")
grid()} # }