下列程序的功能是:利用如下所示的简单迭代方法求方程cos(x)-x=0的一个实根。迭代式为:xn+1=cos(xn
下列程序的功能是:利用如下所示的简单迭代方法求方程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(),把结果输出到文件OUT.DAT中。部分源程序已给出。请勿改动主函数main()和输出数据函数writeDAT()的内容。#include <conio.h>#include <math.h>#include <stdio.h> float countValue(){ } void main(){ clrscr(); printf("A=%f\n",countValue()); printf("%f\n",cos(countValue())-countValue()); writeDAT();} void writeDAT(){ FILE *wf; wf=fopen("out17.dat","w"); fprintf(wf,"%f\n",countValue()); fclose(wf);}
【解析及答案】
本题的任务是把函数countvalue() 补充完整。该函数利用迭代法求解方程。迭代法求解的过程就是先设置两个变量X0和X1,其中X1比X0更接近方程的解。为方程的初始解X1先赋予一个任意值,然后把X1赋予X0,把X0带入迭代式,求出的结果是比X0更接近方程的根的值。接着比较X0和X1差的绝对值,如果小于要求的精度,则X1就是方程的一个实根;否则,继续上述过程。由于上述过程具有反复迭代的特征,故称为迭代法。一般利用do…while循环比较容易实现上述算法。由上述过程可知,能够使用迭代法求解的方程必须是收敛的,发散的无法求解。综上所述,完整的函数countvalue() 如下。
float countValue()
{
float x0,x1=0.0;
do
{x0=x1;
x1=cos(x0);
}while(fabs(x0-x1)>=0.000001);
return x1;
}
跪求几道C语言编程用C语言编写下面的程序 (不要VFP)1+X+X的平方/2+X的三次方/3.+X 其他 2020-05-16 …
分式方程请观察下列方程和它们的根请观察下列方程和它们的根:x+1/x=c+1/c的解是x=c或x= 数学 2020-06-06 …
快啊,今晚就要,感激不尽某地居民用电数x(千瓦时)与电费C(元)之间的关系如下表.写出用电数x(千 数学 2020-06-18 …
“连下X城”的典故————每有赛事中某队连扳几局最终得胜,解说就会用“连下X城”来形容. 语文 2020-06-21 …
1.y''+(y')^2+1=0求通解,我想问这个使用y''=f(x,y')型的算还是用y''=f 数学 2020-06-25 …
1.用c程序实现下列分段函数的值 y= x (x<1) 2x-1 (1≤x<10) 3x+1 (x 其他 2020-06-27 …
椭圆两准线间的距离公式一问在线等急!!!例如在焦点在x轴上有x=a^2/c和x=-a^2/c两准线 其他 2020-07-31 …
a.b.c是正数求函数y=根号下(x^2+a^2)+根号下[(c-x)^2+b^2]最小值书上说用 数学 2020-08-02 …
高等数学a1某厂每批生产某种商品单位时的费用为(元),得到的收益为(元)。问每批生产多少个单位商品时 其他 2020-10-31 …
下列关于下丘脑功能的叙述正确的是()A.下丘脑的某一区域通过神经的作用可以使肾上腺分泌肾上腺素和胰高 语文 2020-11-23 …