Convergence acceleration
We give an example of application of generators for convergence acceleration. This presentation follows closely the example given by Pramode C.E in Python Generator Tricks (refer [9] for more information).
Note that a generator may take an other generator as an input parameter. For instance, suppose that we have defined a generator that generates the elements of a converging sequence. It is then possible to improve the convergence by an acceleration technique due to Euler and Aitken, often called Aitken’s Δ2-method (Refer [33]). It transforms a sequence si into another by defining
Both sequences have the same limit, but the sequence converges significantly faster. One possible implementation is as follows:
def Euler_accelerate(sequence): """ Accelerate the iterator in the variable `sequence`. """ s0 = next(sequence) # Si ...