编写甬数fun,其功能是:利用下面的简单迭代方法求方程cos(x)一x=0的一个实根。 xn+1=cos(xn) 迭代步骤如下: (1)取x1初值为0.0; (2)x0=x1,将x1的值赋给x0; (3)xl=cos

admin2020-06-16  34

问题 编写甬数fun,其功能是:利用下面的简单迭代方法求方程cos(x)一x=0的一个实根。
    xn+1=cos(xn)
    迭代步骤如下:
    (1)取x1初值为0.0;
    (2)x0=x1,将x1的值赋给x0;
    (3)xl=cos(x0),求出一个新的x1;
    (4)若x0一x1的绝对值小于0.000001,执行步聚(5),否则执行步聚(2);
    (5)所求x1就是方程cos(x)一x=0的一个实根,作为函数值返回。
  程序将输出结果Root=0.739086。
  注意:部分源程序给出如下。
  请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<conio.h>
#include<math.h>
#include<stdio.h>
double fun()
{
}
main()
{
  printf(“Root=%f\n”,fun());
}

选项

答案double fun() { double x1=0.0,x0; do { x0=x1: /*调用math库函数中的余弦函数*/ x1=COS(x0), } /*当x0一x1的绝对值小于10的负6次方退出循环*/ while(fabs(x0一x1)>=1e一6); return x1; }

解析 用迭代方法求方程的一个实根,题目已经给出了算法,只要按照算法用合适的程序表达,就可以解题了。
转载请注明原文地址:https://jikaoti.com/ti/v0G0FFFM
0

最新回复(0)