☆題目21下列程序prog1.c的功能是:利用以下所示的簡單迭代方法求方程:cos(x)-x=0的一個(gè)實(shí)根。
xn+1=cos(xn)
迭代步驟如下:
(1)取x1初值為0.0;
(2)x0=x1,把x1的值賦給x0;
(3)x1=cos(x0),求出一個(gè)新的x1;
(4)若x0-x1的絕對(duì)值小于0.000001,執(zhí)行步驟(5),否則執(zhí)行步驟(2);
(5)所求x1就是方程cos(x)-x=0的一個(gè)實(shí)根,作為函數(shù)值返回。
請(qǐng)編寫函數(shù)countvalue()實(shí)現(xiàn)程序的要求,最后調(diào)用函數(shù)writedat()把結(jié)果輸出到文件out17.dat中。
部分源程序已給出。
請(qǐng)勿改動(dòng)主函數(shù)main()和輸出數(shù)據(jù)函數(shù)writedat()的內(nèi)容。
#include
#include
#include
float countvalue()
{ float x0,x1;
x1=0.0;
do{ x0=x1;
x1=cos(x0);
}while(fabs(x0-x1)>=0.000001);
return x1;
}
main()
{
clrscr();
printf("實(shí)根=%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);
}
xn+1=cos(xn)
迭代步驟如下:
(1)取x1初值為0.0;
(2)x0=x1,把x1的值賦給x0;
(3)x1=cos(x0),求出一個(gè)新的x1;
(4)若x0-x1的絕對(duì)值小于0.000001,執(zhí)行步驟(5),否則執(zhí)行步驟(2);
(5)所求x1就是方程cos(x)-x=0的一個(gè)實(shí)根,作為函數(shù)值返回。
請(qǐng)編寫函數(shù)countvalue()實(shí)現(xiàn)程序的要求,最后調(diào)用函數(shù)writedat()把結(jié)果輸出到文件out17.dat中。
部分源程序已給出。
請(qǐng)勿改動(dòng)主函數(shù)main()和輸出數(shù)據(jù)函數(shù)writedat()的內(nèi)容。
#include
#include
#include
float countvalue()
{ float x0,x1;
x1=0.0;
do{ x0=x1;
x1=cos(x0);
}while(fabs(x0-x1)>=0.000001);
return x1;
}
main()
{
clrscr();
printf("實(shí)根=%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);
}