MyNixOS website logo
Description

Padé Approximant Coefficients.

Given a vector of Taylor series coefficients of sufficient length as input, the function returns the numerator and denominator coefficients for the Padé approximant of appropriate order (Baker, 1975) <ISBN:9780120748556>.

CRAN Latest Version & Release R-CMD-check Codecov test coverage OpenSSF Best Practices

Mathematics

Introduction

For a given function, its Taylor series is the "best" polynomial representations of that function. If the function is being evaluated at 0, the Taylor series representation is also called the Maclaurin series. The error is proportional to the first "left-off" term. Also, the series is only a good estimate in a small radius around the point for which it is calculated (e.g. 0 for a Maclaurin series).

Padé approximants estimate functions as the quotient of two polynomials. Specifically, given a Taylor series expansion of a function (T(x)) of order (L + M), there are two polynomials, (P_L(x)) of order (L) and (Q_M(x)) of order (M), such that (\frac{P_L(x)}{Q_M(x)}), called the Padé approximant of order ([L/M]), "agrees" with the original function in order (L + M). More precisely, given

\begin{equation} A(x) = \sum_{j=0}^\infty a_j x^j \end{equation}

the Padé approximant of order ([L/M]) to (A(x)) has the property that

\begin{equation} A(x) - \frac{P_L(x)}{Q_M(x)} = \mathcal{O}\left(x^{L + M + 1}\right) \end{equation}

The Padé approximant consistently has a wider radius of convergence than its parent Taylor series, often converging where the Taylor series does not. This makes it very suitable for numerical computation.

Calculation

With the normalization that the first term of (Q(x)) is always 1, there is a set of linear equations which will generate the unique Padé approximant coefficients. Letting (a_n) be the coefficients for the Taylor series, one can solve:

[ \begin{align} &a_0 &= p_0\
&a_1 + a_0q_1 &= p_1\
&a_2 + a_1q_1 + a_0q_2 &= p_2\
&a_3 + a_2q_1 + a_1q_2 + a_0q_3 &= p_3\
&a_4 + a_3q_1 + a_2q_2 + a_1q_3 + a_0q_4 &= p_4\
&\vdots&\vdots\
&a_{L+M} + a_{L+M-1}q_1 + \ldots + a_0q_{L+M} &= p_{L+M} \end{align} ]

remembering that all (p_k, k > L) and (q_k, k > M) are 0.

Function Input and Output

Given integers L and M, and vector A, a vector of Taylor series coefficients, in increasing order and length at least L + M + 1, the Pade function returns a list of two elements, Px and Qx, which are the coefficients of the Padé approximant numerator and denominator respectively, in increasing order.

Citation

If you use the package, please cite it per CITATION.

Contributions

Please see CONTRIBUTING.md.

Roadmap

Major

  • There are no plans for major changes at this time

Minor

  • There are no plans for minor changes at this time

Security

Please see SECURITY.md.

Metadata

Version

1.0.7

License

Unknown

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows