求C语言例题讲解:用迭代法求方程x=cos x的根,要求误差小于10的-6次方

问题描述:

求C语言例题讲解:用迭代法求方程x=cos x的根,要求误差小于10的-6次方
main()
{double x1,x2;
x1=0.0;
x2=cos(x1);
while(fabs(x2-x1)>le-6)
{x1=x2;
x2=cos(x1);
}
printf("x=%f\n",x2);
}
1、x1=0.0;x2=cos(x1);分别是什么意思
2、while后面的{x1=x2;
x2=cos(x1);
}
1个回答 分类:综合 2014-09-23

问题解答:

我来补答
你不已经编完了吗
因为是cos函数 所以要定义成浮点数,这样更精确,因此赋值也 要赋浮点数,即0.0其实就是零加个小数点使数域更广,
这段程序的意思是
先对x1赋0
x2用cos(x)赋值
此时要是x1等于x2就是x=cosx,成立输出,要不成立
,进入while,判断括号里的就是判断误差.当误差大于10的-6次方时循环继续,等小于10的-6次方时结束循环,输出的就是要求得
循环体的意思是
当满足判断条件时
看,开始 -----x1-----------x2----------------------
x1用x2赋值 x1--------------x2
因为开始x2等于cos0即1,此时cos值最大,以后的非零一定小
也就是说x2的值会不断变小,x1又不断的用x2赋值,那么x1也不断小这样x1和x2就会不断靠近,当两者之间的距离相差小于10的-6次方时就看成相等.满足要求,我再画几个数轴
x1-----------------------x(0)------------------------------------------
x1--------------------x(1)--------------------
x(1)----x【x(1)】
左为变量x1不断赋值,右为x2不断赋值
 
 
展开全文阅读
剩余:2000
下一页:请说清为什么