小菜鸟


私信TA

用户名:dotcpp0593272

访问量:656

签 名:

等  级
排  名 23393
经  验 595
参赛次数 0
文章发表 4
年  龄 0
在职情况 学生
学  校 重庆工商职业学院
专  业

  自我简介:

TA的其他文章

解题思路:

迭代算法的基本思想是:

 为求一个问题的解x,可由给定的一个初值x0,根据某一迭代公式得到一个新的值x1,这个新值x1比初值x0 更接近要求的值x;再以新值作为初值,即:x1→x0,重新按原来方法求x1,重复这一过程直到|x-x1|< ∞(某一个给定的精度)此时可以将x1作为题的解

1)确定迭代模型

   根据问题描述,分析出前一个(或几个)值与下一个值的迭代关系数学模型。

2)建立迭代关系式

  递推数学模型一般是带下标的字母,算法设计中要将其转化为“循环不变式”----迭代关系式,迭代关系式就是一个直接或间接地不断由旧值递推出新值的表达式,存储新值的变量称为迭代变量。

3)对迭代过程进行控制。

  确定在什么时候结束迭代过程。根据题意可得 :

  while(fabs(x1-x2) > 1e-5)

 迭代也是通过循环结构实现,只不过要重复的操作是不断的从一个变量的旧值出发去计算他的新值,基本格式描述如下:

  while(迭代终止条件)

{

    根据迭代表达式,由旧值推算出新值

    新值取代旧值,为下一次迭代做准备

}


参考代码:

int main()

{
   int a;
   double x1=1.0,x2=0;
   scanf("%d",&a);
   while (fabs(x1-x2)>1e-5)//绝对值小于0.00005
   {
       x2 = x1;//赋予x2初值,储存旧值
       x1 = (x2 + a / x2) / 2;
   }
   printf("%.3lf",x1);
   return 0;
}
 

0.0分

3 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区

注释不对吧。明明是绝对值大于0.00005,为什么注释写小于?
2022-11-28 16:33:07
x1为啥等于0?
2022-09-04 09:14:24
  • «
  • 1
  • »