P018 迭代方法求根 ★★

03-程序设计题 软件121, 唐鼎威 899浏览

所属年份:2010.9;2011.9;2012.3;
编写函数fun,其功能是:利用下面的简单迭代方法求方程cos(x)-x=0的一个实根。

迭代步骤如下:
(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.739086。

#include <math.h>
#include <stdio.h>
double fun()
{


}

main()
{
   printf("Root =%f\n",fun());
}

【考点分析】
本题考查:迭代法求方程的实根;do…while循环语句,其形式为:
do{
语句
}while(表达式);
do…while循环与while循环的不同在于,它先执行循环中的语句,然后再判断表达式是否为真, 如果为真则继续循环;如果为假, 则终止循环。因此, do…while循环至少要执行一次循环语句。

【解题思路】
用迭代方法求方程的一个实根,题目已经给出了算法,只要按照算法用合适的程序表达,就可以解题了。

【参考答案】

double fun()
{
   double x0,x1;
   x1=0.0;
   do
   {
      x0=x1;
      x1=cos(x0);
   }while(fabs(x0-x1)>=1e-6);
   return x1;
}