来自樊长在的问题
C语言编程:牛顿迭代法求方程的根2*x*x*x-4*x*x+3*x-6=0
C语言编程:牛顿迭代法求方程的根
2*x*x*x-4*x*x+3*x-6=0
1回答
2020-06-01 00:07
C语言编程:牛顿迭代法求方程的根2*x*x*x-4*x*x+3*x-6=0
C语言编程:牛顿迭代法求方程的根
2*x*x*x-4*x*x+3*x-6=0
程序流程分析:
①赋值x0=1.5,即迭代初值;
②用初值x0代入方程中计算此时的f(x0)及f’(x0),程序中用变量f描述方程的值,用fd描述方程求导之后的值;
③计算增量d=f/fd;
④计算下一个x,x=x0-d;
⑤把新产生的x替换x0,为下一次迭代做好准备;
⑥若d绝对值大于1e-3,则重复②③④⑤步.
源程序代码:
#include
main()
{
floatx,x0,d,f,fd;
x0=0;
do{
f=2*x0*x0*x0-4*x0*x0+3*x0-6;
fd=6*x0*x0-8*x0+3;
d=f/fd;
x=x0-d;
x0=x;
}while(fabs(d)>1e-3);
printf("x=%fn",x);
}