用牛顿迭代法求函数根。(谭浩强 C 语言 第三版 130 页第 6.12 题)
用牛顿迭代法求下面方程在 1.5 附近的根:2 * x * x * x - 4 * x * x + 3 * x -6 = 0
具体,我们可以参考牛顿迭代公式,请自行百度。
#include <stdio.h>
#include <math.h>
void main()
{
printf("嗨客网(www.haicoder.net)\n\n");
float x1,x0,f,f1;
x1 = 1.5;
do{
x0 = x1;
f = ((2 * x0 - 4) * x0 + 3) * x0 - 6;
f1 = (6 * x0 - 8) * x0 +3 ;
x1 = x0 -f/f1;
}while(fabs(x1 - x0) >= 1e-5);
printf("最终的结果为 %5.2f \n",x1);
}
运行后,控制台输出如下:
根据思路里面的牛顿迭代公式,将数据存放进去就可以算出。其中 我们将 2 * x * x * x - 4 * x * x + 3 * x -6 = 0 转换成了 ((2 * x0 - 4) * x0 + 3) * x0 - 6;