2X^3 - 4x^2 +3X-6 = 0
解非线性方程f(x)=0的牛顿法是把非线性方程线性化的一种近似方法。
(一)若函数f(x)在点的某一邻域内具有直到(n+1)阶导数,则在该邻域内f(x)的n阶泰勒公式为:
f(x)=f(x0)+f`( x0)(x- x0)+f``( x0)(x-x0)²/2!+f```( x0)(x- x0)³/3!+...fn(x0)(x- x0)^n/n!+.... 其中:fn(x0)(x- x0)^n/n!,称为拉格朗日余项。
以上函数展开式称为泰勒级数。
(二)
取其线性部分,作为非线性方程f(x) = 0的近似方程,即泰勒展开的前两项,则有f(x0)+f'(x0)(x-x0)=0
设f'(x0)≠0则其解为x1=x0-f(x0)/f'(x0) 这样,得到牛顿法的一个迭代序列:x n+1=x n -f(x n ) /f'(x n )。
(三)
#include "stdafx.h"
#include "math.h"
float getRootInteration()
{
float x0 = 1.5;
float x1 , b;
do
{
x1 = x0 - ( 2*x0*x0*x0 - 4*x0*x0 + 3*x0 -6 ) / ( 6* x0 * x0 - 8*x0 +3 );
b = x0 ;
x0 = x1;
} while (fabs(x0 - b) > 1e-5);
return b ;
}
知识补充:
网易公开课 泰勒级数 http://v.163.com/movie/2006/8/F/4/M6GLI5A07_M6GLMCDF4.html
复变函数http://baike.baidu.com/view/134430.htm