请编写函数findRoot(),其功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=-0的一个实根。 迭代步骤如下: (1)取x1初值为0.0。 (2)把x1的值赋给x0,即x0=x1。 (3)求出一个新的x1,即

admin2020-10-21  77

问题 请编写函数findRoot(),其功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=-0的一个实根。
    迭代步骤如下:
    (1)取x1初值为0.0。
    (2)把x1的值赋给x0,即x0=x1。
    (3)求出一个新的x1,即xl=cos(xO)。
    (4)若x0—x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2)。
    (5)所求x0就是方程cos(x)-x=0的一个实根,作为函数值返回。
    函数writeData()负责把结果输出到OUT.DAT文件中。
    注意:部分源程序已给出。   
    请勿改动主函数main()和写函数writeData()的内容。
    试题程序:
    #include
    #include
    #include
    void writeData();
    float findRoot()
    {
    }
    void main()
    {
    system(“CLS”);
    printf(“root=%f\n”,findRoot());
    writeData();
    }
    void writeData()
    {
    FILE*wf;
    wf=fopen(“OUT.DAT”,“W”);
    fprintf(wf,“%f\n”,findRoot());
    fclose(wf);
    }

选项

答案float findRoot() { float x1=0.00.x0; int i=0; do {x0=x1;//将x1的值赋给x0 x1=cos(x0);//得到一个新的x1的值 } while(fabs(x1-x0)>0.000001); //如果误差比所要求的值大.则继续循环 return x0; }

解析 本题主要考查方程的数值解法。
    题目较简单,按照题目中所给的流程即可很快编出程序。
转载请注明原文地址:https://jikaoti.com/ti/pps7FFFM
0

最新回复(0)