The Modern C# Challenge
上QQ阅读APP看书,第一时间看更新

23. Newton's method

Binary subdivision uses intervals to quickly converge on an equation's root. Newton's method, which is also called the Newton-Raphson method, uses a different technique to converge even more quickly.

The method starts with a value (x). As long as F(x) is not close enough to zero, the method uses the derivative of the function to find the slope F'(x). It then follows the tangent line at that point to the new point x' where the line intersects the X axis. The value x' becomes the method's next guess for the root. The program continues calculating new values until F(x) is close enough to 0.

Finding the point of intersection between the tangent line and the X axis is easier than you might think. If you start with the value xi, you simply use the following equation to find the next value, xi+1:

Here, F is the function and F' is its derivative.

Write a program that uses Newton's method to find roots for equations. Make the equation and its derivative delegate parameters to the main method so you can easily pass different equations to the method. Use the program to find the roots for the following equations:

 

In case you don't remember your calculus, the derivatives of those functions are the following:

For extra credit, make the program draw the equations and their roots.