C语言循环控制

描述

用牛顿迭代法求函数根。(谭浩强 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); }

运行后,控制台输出如下:

16_6.12答案.png

根据思路里面的牛顿迭代公式,将数据存放进去就可以算出。其中 我们将 2 * x * x * x - 4 * x * x + 3 * x -6 = 0 转换成了 ((2 * x0 - 4) * x0 + 3) * x0 - 6;