C语言迭代法?

/*10.5 编程题:
题目:编写函数fun,它的功能是:利用如下简单迭代法求方程cos(x)-x=0的一个实根。
xn+1=cos(xn)
迭代步骤如下:
1)取x1初值为0.0
2)x0=x1,把x1的值赋给x0.
3)x1=cos(x0),求出一个新的x1.
4)若x0-x1的绝对值小于0.000001,则执行步骤5,否则执行步骤2
5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。
程序输出结构Root=0.739085。
注意:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在函数fun的函数体中填入所编写的若干语句。
程序:*/
#include <stdio.h>
#include <math.h>float fun()
{float x,n,Root;</p><p><br>;<br>;</p><p>return Root ;<br> <br>}
void main()
{
float f=fun();
printf("Root=%f\n",f);
}
首先,迭代法是什么意思?高手给下我这道题目的思路

迭代法就是让方程的解不断去逼近真实的解。这是一种数值计算方法。思路就是按上面的步骤,只设置两个x0,x1开始x0代表第一个值,x1代表第二值第一次迭代之后,让x0=x1,x1=新的值,这样x0代表第二个值,x1代表第三值以此类推。。。直到误差满足要求
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-21
迭代法,是一种不断用变量的旧值递推新值的过程。 fun函数设置循环,当x0-x1的绝对值小于0.000001循环结束。 #include <stdio.h>
#include <math.h>
float fun()
{float x,n=0.0,Root;</p><p>while(Root>=0.000001||Root<=-0.000001)</p><p>{<br> x=n;</p><p> n=cos(x);</p><p> Root=x-n;<br>} Root=n; return Root ;

}
void main()
{
float f=fun();
printf("Root=%f\n",f);
}本回答被网友采纳
相似回答