# Minimum polynomial extrapolation

In mathematics, minimum polynomial extrapolation is a sequence transformation used for convergence acceleration of vector sequences, due to Sabay and Jackson.[1]

While Aitken's method is the most famous, it often fails for vector sequences. An effective method for vector sequences is the minimum polynomial extrapolation. It is usually phrased in terms of the fixed point iteration:

${\displaystyle x_{k+1}=f(x_{k}).}$

Given iterates ${\displaystyle x_{1},x_{2},...,x_{k}}$ in ${\displaystyle {\mathbb {R}}^{n}}$, one constructs the ${\displaystyle n\times (k-1)}$ matrix ${\displaystyle U=(x_{2}-x_{1},x_{3}-x_{2},...,x_{k}-x_{k-1})}$ whose columns are the ${\displaystyle k-1}$ differences. Then, one computes the vector ${\displaystyle c=-U^{+}(x_{k+1}-x_{k})}$ where ${\displaystyle U^{+}}$ denotes the Moore–Penrose pseudoinverse of ${\displaystyle U}$. The number 1 is then appended to the end of ${\displaystyle c}$, and the extrapolated limit is

${\displaystyle s={Xc \over \sum _{i=1}^{k}c_{i}},}$

where ${\displaystyle X=(x_{2},x_{3},...,x_{k+1})}$ is the matrix whose columns are the ${\displaystyle k}$ iterates starting at 2.

The following 4 line MATLAB code segment implements the MPE algorithm:

U=x(:,2:end-1)-x(:,1:end-2);
c=-pinv(U)*(x(:,end)-x(:,end-1));
c(end+1,1)=1;
s=(x(:,2:end)*c)/sum(c);


## References

1. ^ Cabay, S.; Jackson, L.W. (1976), "A polynomial extrapolation method for finding limits and antilimits of vector sequences", SIAM Journal of Numerical Analysis, doi:10.1137/0713060