请编写函数findRoot(),其功能是;利用以下所示的简单迭代方法求方程;COS(x)-x=0的一个实根。 迭代步骤如下; (1)取x1初值为0.0。 (2)把x1的值赋给x0,即x0=xl。 (3)求出一个新的x1,即x1=cos(x0)。

admin2012-07-20  35

问题 请编写函数findRoot(),其功能是;利用以下所示的简单迭代方法求方程;COS(x)-x=0的一个实根。
迭代步骤如下;
  (1)取x1初值为0.0。
  (2)把x1的值赋给x0,即x0=xl。
  (3)求出一个新的x1,即x1=cos(x0)。
  (4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2)。
  (5)所求x0就是方程cos(x)-x=0的一个实根,作为函数值返回。
函数writeData()负责把结果输出到OUT.DAT文件中。
注意;部分源程序已给出。
请勿改动主函数main()和写函数writeData()的内容。
试题程序;
#include
#include
#include
void writeData();
float findRoot()
{
}
  void main()
{
  system("CLS");
  printf("root=%f\n",findRoot());
  writeData();
}
void writeData()
{
  FILE*wf;
  wf=fopen("OUT.DAT","w");
  fprintf(wf,"%f\n",findRoot());
  fclose(wf);
}

选项

答案 float findRoot() { float xl=0.00,x0; int i=0; do {x0=xl; //将x1的值赋给x0 x1=cos(x0); //得到一个新的x1的值 } while(fabs(x1-x0)>0.000001); //如果误差比所要求的值大,则继续循环 return x0; }

解析 本题主要考查方程的数值解法。 题目较简单,按照题目中所给的流程即可很快编出程序。
转载请注明原文地址:https://kaotiyun.com/show/I24Z777K
0

最新回复(0)