迭代法的基本思想ppt课件
- 格式:ppt
- 大小:451.50 KB
- 文档页数:13
大连理工大学罗晓芳算法思想:利用计算机运算速度快、适合做重复性操作的特点,让计算机对一组指令(或一定步骤)进行重复执行,每次执行这组指令(或步骤)时,都从变量原值推出一个新值。
关键步骤:1、确定迭代变量:也就是直接或间接地不断由旧值递推出新值的变量。
2、建立迭代关系式: 指如何从变量的前一个值推出其下一个值的公式(或关系)。
3、对迭代过程进行控制。
在什么时候结束迭代过程?迭代算法一般结构小猴在一天内摘了若干个桃子,当天吃掉一半多一个;第二天吃掉剩下的一半桃子多一个;以后每天都吃尚存桃子的一半零一个。
直到第7天早上要吃时,只剩下一个了,问小猴共摘了多少个桃子?例4:小猴吃桃子问题问题分析:先从最后一天推出倒数第二天的桃子,再从倒数第二天推出倒数第三天的桃子,……设第n天的桃子为x,它是前一天的桃子数的一半少一个x n = xn-1/2-1前一天的桃子数为:xn-1=(xn+1)×2(递推公式)设迭代变量x x=(x+1)*2#include "stdio.h"int main(){int i, x;x=1;printf("第7 天的桃子数为:1只\n");for(i=6; i>=1; i--){x=(x+1)*2;printf("第%d 天的桃子数为:%d 只", i , x);printf("\n");}return 0;小猴吃桃子问题迭代关系,迭代:原值推出新值//迭代变量赋初值思考:小猴在一天内摘了94个桃子,当天吃掉一半多一个;以后每天都吃尚存桃子的一半多一个,问小猴直到第几天早上要吃时只剩下一个了?例5:用迭代法求a 的算术平方根。
公式:x n =0.5*(x n-1+a/x n-1)确定初值为x0,新值为x1 取a/2为x0的初值,迭代结束条件:|x1-x0|<=10-5.#include <stdio.h>#include <math.h>int main( ){ float a, x0, x1;scanf("%f",&a);x0=a/2; x1=(x0+a/x0)/2; while (fabs(x1-x0)>1e-5){x0=x1;x1=(x0+a/x0)/2; }printf("sqrt(a)=%f\n", x1);零非零|x1-x0|>10-5?x0=x1x1=(x0+a/x0)/2x0=a/2x1=(x0+a/x0)/2输出a ,x1迭代:原值推出新值// 迭代变量赋初值//新值变原值//将循环结束条件取反1.分析:程序采用逐位分离的方法。