57、下列程序的功能是:利用发下所示的简单迭代方法求方程:
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的一个实根,作为函数值返回。
请编写函数countValue()实现程序的要求,最后调用函数WRITEDAT()把结果输出到
文件OUT17.DAT中。
部分源程序已给出。
请勿改动主函数main()和输出数据函数writeDAT()的内容。
#include <conio.h>
#include <math.h>
#include <stdio.h>

float countValue()
{

}

main()
{
clrscr();
printf("A=%f\n",countValue());
printf("%f\n",cos(countValue())-countValue());
writeDAT();
}

writeDAT()
{
FILE *wf;

wf=fopen("out17.dat","w");
fprintf(wf,"%f\n",countValue());
fclose(wf);
}

/* 注:该迭代法的基本算法是:反复赋值直到x0-x1的绝对值小于0.00001。故而可用do-while循环。这是一个典型的算法。*/
float countValue()
{
float x0,x1=0.0;
do
{x0=x1;
x1=cos(x0);
}while(fabs(x0-x1)>=0.000001);
return x1;
}

返回南开百题目录

www.163164.cn 联系QQ:3149886