您的位置:首页 > 其它

求方程的值——牛顿迭代法

2013-06-25 22:31 197 查看
求解方程:

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: