【描述】
用牛顿迭代法求下面方程在1.5附近的根:2x^3-4x^2+3X-6=0
【程序流程分析】
① 赋值x0=1.5,即迭代初值;② 用初值x0代入方程中计算此时的f(x0)及f’(x0),程序中用变量f描述方程的值,用fd描述方程求导之后的值;
③ 计算增量d=f/fd;
④ 计算下一个x,x=x0-d;
⑤ 把新产生的x替换x0,为下一次迭代做好准备;
⑥ 若d绝对值大于1e-5,则重复②③④⑤步。
【C语言】
#include<stdio.h>
#include<math.h>
int main() {
double x0, x, f, fd;
x0 = 1.5;
do {
f = 2 * x0 * x0 * x0 - 4 * x0 * x0 + 3 * x0 - 6;
fd = 6 * x0 * x0 - 8 * x0 + 3;
x = x0 - f / fd;
x0 = x;
} while (fabs(f / fd) >= 0.00001);
printf("%f", x);
return 0;
}