下列程序的功能是:利用如下所示的简单迭代方法求方程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程序编的有问题,又不知道错在哪里了,请大哥大姐指教#incl 其他 2020-05-14 …
更迭的“迭”字,用粤语怎么说的?跟哪个字同音?普通话我知道怎么说, 语文 2020-05-17 …
A.程序、数据和标示符B.程序、数据和PCBC.程序、标示符和PCBD.数据、标示符和PCB 计算机类考试 2020-05-26 …
有序偶的括号问题看离散数学有序偶(a,b)是这么表示的,数据结构中的二元组是这么表示的,离散数学的 数学 2020-06-26 …
一道编程题:求逆序对的个数给定一个序列a1,a2,…,an,如果存在iaj,那么我们称之为逆序对,求 其他 2020-11-20 …
下列情况中,适合用结构图来描述的是()A.表示某同学参加高考报名的程序B.表示某企业生产某种产品的生 数学 2020-12-01 …
植被?比喻就像叫苦不迭的意思叫苦不迭:形容连声叫苦。不迭,不停止。 其他 2020-12-03 …
一个数据结构中...用二叉树表示无序序列的问题二叉树13/\3827/\/\49!796549/97 数学 2020-12-05 …
编写程序,它的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根.迭代表达式为 其他 2020-12-16 …
如图为甲、乙、丙三根笔直的木棍平行摆放在地面上的情形.已知乙有一部分只与甲重迭,其余部分只与丙重迭, 数学 2020-12-19 …