I have forgotten

COST (GBP) 3.97 0.00 0

Newton

Calculates the zeros of a function using Newton's method.
Controller: CodeCogs Contents C++

Newton

 doublenewton( double (*f)(double)[function pointer] double (*df)(double)[function pointer] double x = 0 double eps = 1E-10 int maxit = 1000 )
This is a well-known iterative method for approximating the zeros of a function. Starting with a given initial approximation , a sequence is computed where

This iterative process can be stopped when has become less than the largest error one is willing to permit in the root. This method is only locally convergent and will converge to complex zeros only if the initial approximation is complex. When it does converge, the convergence is quadratic to roots that are simple.

To give you a better idea on the way this method works, the following graph shows different iterations in the approximation process. This algorithm finds the roots of the user-defined function f starting with an initial guess x and iterating the sequence above until either the accuracy eps is achieved or the maximum number of iterations maxit is exceeded. Also required is the derivative of the user-defined function df.

References:

• F.R. Ruckdeschel, "BASIC Scientific Subroutines", Vol. II, BYTE/McGRAWW-HILL, 1981

Example 1

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

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

double f(double x) {
return sin(x);
}

double df(double x) {
return cos(x);
}

int main()  {

double x = Maths::RootFinding::newton(f, df, 3);

std::cout << "The calculated zero is X = " << std::setprecision(15) << x << std::endl;
std::cout << "The associated ordinate value is Y = " << f(x) << std::endl;
return 0;
}
Output:
The calculated zero is X = 3.14159265358979
The associated ordinate value is Y = 1.22460635382238e-016

Parameters

 f the user-defined function df the derivative of f x Default value = 0 eps Default value = 1E-10 maxit Default value = 1000

Authors

Lucian Bentea (August 2005)
Source Code

Source code is available when you buy a Commercial licence.

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