I have forgotten
my Password

Or login with:

• http://facebook.com/
• https://www.google.com/accounts/o8/id
• https://me.yahoo.com
COST (GBP)
2.98
0.00
0

# Aitken

viewed 2035 times and licensed 50 times
Calculates the zeros of a function using Aitken acceleration.
Controller: CodeCogs
Contents

C++

## Aitken

 doubleaitken( double (*f)(double)[function pointer] double x0 = 0 double eps = 1E-10 int maxit = 1000 double c = -1 )
Let  be a sequence with limit . The Aitken method consists of transforming  into  where



The  sequence converges more rapidly than  towards the same limit . It is good practice to avoid the above form of , which is numerically unstable, and write it in the following equivalent form:



This algorithm finds the roots of the user-defined function f starting with an initial guess x0 and iterating the sequence above until either the accuracy <em> eps </em> is achieved or the maximum number of iterations maxit is exceeded. The c factor is used to aid convergence; c = -1 is a normal value, however if divergence occurs, smaller and/or positive values should be tried.

## References:

• Jean-Pierre Moreau's Home Page, http://perso.wanadoo.fr/jean-pierre.moreau/
• F.R. Ruckdeschel, "BASIC Scientific Subroutines", Vol. II, BYTE/McGRAWW-HILL, 1981

### Example 1

#include <codecogs/maths/rootfinding/aitken.h>

#include <iostream>
#include <iomanip>
#include <cmath>

// user-defined function
double f(double x) {
return sin(x);
}

int main()
{
double x = Maths::RootFinding::aitken(f, 3);

std::cout << "The calculated zero is X = " << std::setprecision(12) << x << std::endl;
std::cout << "The associated ordinate value is Y = " << f(x) << std::endl;
return 0;
}
Output:
The calculated zero is X = 3.14159265462
The associated ordinate value is Y = -1.02635576671e-009

### Parameters

 f the user-defined function x0 Default value = 0 eps Default value = 1E-10 maxit Default value = 1000 c Default value = -1

### Authors

Lucian Bentea (August 2005)
##### Source Code

Source code is available when you agree to a GP Licence or buy a Commercial Licence.

Not a member, then Register with CodeCogs. Already a Member, then Login.