下列程序的功能是:利用以下所示的简单迭代方法求方程: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的绝对值将其作为强行退出循环的条件。
解方程x(x-3)-2(x-3)=0解下列分式方程1.x-1/x-1/3=12.2x/x-1+1= 数学 2020-05-01 …
下列方程中哪些是二元一次方程()下列方程中哪些是二元一次方程()1.8x-y=y2.xy=43,2 数学 2020-05-13 …
matlab求解下列方程的解,画出(x,y)的曲线图(2*x-1200*sin(t)-400)^2 数学 2020-05-16 …
小学升初中数学衔接资料方程专题一.解下列方程:x+3x=164+5x=3x+52(x+小学升初中数 数学 2020-05-17 …
复数求下列方程所表示的曲线Z=(1+i)t注:其中t为实参数请高手指导下顺便问下1^(1/5)的值 数学 2020-07-10 …
解下列方程:3sin^2-sin2x-cos^2x=0sin3x=sinxsin2x=cos3x一 数学 2020-07-13 …
用代入法解下列方程组{4x一2y=14{2x十3y=75用代入法解下列方程组{4x一2y=14{2 数学 2020-08-01 …
1、用直接开平方法解下列方程:\x05(1);(2);(3).\x05\x05\x052、用公式法 数学 2020-08-03 …
解下列方程(1)5(x-2)解下列方程=125(2)x解下列方程+2x-99=0(3)(x-2)(x 数学 2020-11-01 …
按要求完成下列方程式:(1)用惰性电极电解下列水溶液,请写出电极反应式及总反应离子方程式:AgNO3 化学 2021-01-24 …