Skip to content

Wynn's Epsilon Algorithm for transforming symbolic SymPy expressions

License

Notifications You must be signed in to change notification settings

J-Revell/Wynn.jl

Repository files navigation

Wynn.jl

Travis Appveyor

A package to facilitate the calculation of epsilon () table structures, derived from Wynn's recursive epsilon algorithm. The components of the epsilon table are commonly used within the calculation of sequence transformations.

Suppose we are presented with a series, , with component terms , and partial sums ,

.

Wynn's epsilon algorithm computes the following recursive scheme: ,

where

, for

, for

, for

The resulting table of values is known as the epsilon table.

Epsilon table values with an even -th index, i.e. , are commonly used to compute rational sequence transformations and extrapolations, such as Shank's Transforms, and Pade Approximants.

Example usage: computing the epsilon table for exp(x)

The first 5 terms of the Taylor series expansion for are . The epsilon table can be generated in the manner below:

using SymPy
using Wynn
# or, if not registered with package repository
# using .Wynn

@syms x
# first 5 terms of the Taylor series expansion of exp(x)
s = [1, x, x^2/2, x^3/6, x^4/24]

etable = EpsilonTable(s).etable

Retrieving the epsilon table value corresponding to is done by

etable[i, j]

Alternatively, the same term can be calculated without generating the entire epsilon table using the epsilon function which is much more efficient.

epsilon(s, (i, j))

Further usage: computing the R[2/2] Pade Approximant of exp(x)

Suppose we wanted to approximate (around ) using a rational Pade Approximant . The pade approximant is known to correspond to the epsilon table value . Computing the R[2/2] Pade approximant is thus equivalent to ,

R = etable[0,4]

which yields

Comparing accuracy, for :

(Native Julia function)

(First 5 terms of Taylor series)

(Pade R[2/2] approximation)

It can be seen that as x moves away from 0, the Pade approximant is more accurate than the corresponding Taylor series.

About

Wynn's Epsilon Algorithm for transforming symbolic SymPy expressions

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages