解题思路:
迭代算法的基本思想是:
为求一个问题的解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 人评分
2004年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:670 |
C语言程序设计教程(第三版)课后习题9.2 (C语言代码)浏览:700 |
不知道哪里错了浏览:1145 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:542 |
用筛法求之N内的素数。 (C语言代码)浏览:806 |
三角形 (C语言代码)浏览:914 |
蚂蚁感冒 (C语言代码)浏览:1333 |
2004年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:599 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:595 |
青年歌手大奖赛_评委会打分 (C语言代码)浏览:2149 |