下列程序的功能是:利用以下所示的简单迭代方法求方程: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()把结果输出到文件out41.dar中。
注意:部分源程序已给出。
请勿改动主函数main()和写函数writeDAT()的内容。
试题程序:
include<conio.h>
include<math.h>
include<stdio.h>
float countvalue( )
{
main ( )
{
clrscr( );
printf("实根=%f\n",countValue( ));
printf("%f\n",cos(countValue( ))countValue( ));
writeDAT( );
writeDAT( )
{
FILE *wf;
wf=fopen("out41.dat","w");
fprintf(wf,"%fln",countValue(
fclose(wf);
}
float countValue() { float x0,x1=0.0; while(1) { x0=x1; /*将x1赋值给x0*/ x1=cos(x0); /*求出新的x1*/ if(fabs(x0-x1)1e-6)break; /*若x0-x1的绝对值小于0.000001,则结束循环*/ } return x1; } 解析:本题考查的知识点如下:
(1)数学函数doublecos(doublex)及doublefabs(doublex)的使用。
(2)使用循环结构实现迭代。
在本题中,因为要求一个实数的余弦值,在结束迭代的时候要判断绝对值,所以这里要用到数学函数cos(doublex)和fabs(doublex)。先设一个条件永远为真的while循环结构,按照步骤提示,要先为x1取初值,将x1的值赋给x0,使xl=cos(x0),判断x0-x1的绝对值将其作为强行退出循环的条件。
李奶奶卖鸡蛋,第一次卖出篮中的一半又一个,第二次卖出第一次剩下的一半又一个,第三次卖出第二次剩下的一 其他 2020-03-30 …
一个农妇拉着一筐西瓜去卖,第一次卖掉了全部西瓜的一半又多半个.第二次又卖了剩下的一半又多半个,第三又 其他 2020-03-31 …
哪位高手知道那個木字下面加四个口是什么字,打全拼怎么打,下面四点像这个“霝”字的下面三个口一样…… 其他 2020-04-06 …
544÷4=.5个百除以4,商个百,余个百,余下的个百和十位上的个十合起来是个十;除以4,商个十, 其他 2020-04-07 …
六.一联欢会上,五年级和四年级共买气球200个.联欢会后,两个班剩下的气球个数相等.已知五年级用去 数学 2020-04-26 …
A市在B市的12km的位置,给B市发货的车以40km/时送货,以60km/时返回A市,往返1时10 数学 2020-04-27 …
1:有土能种米麦,有水能养鱼虾,有人不是你我,有马能行天下(打一字)2:顺序添数字按照下列顺序,下 数学 2020-05-13 …
童话扫弦怎么弹还有什么上上下下什么意思还有那个CAmDmGT3231323什么意思麻烦教下.最好能 其他 2020-05-14 …
伽利略在研究斜面上滚下的小球的运动时,得出的结论是:只要斜面的倾角相同,质量不同的小球滚下的加速度 物理 2020-05-16 …
交流电焊机输入5根接线柱电焊机输入有5个接线柱,其中最左面那个是地线,这个我知道,剩下4个我就不知 其他 2020-05-17 …