没有合适的资源?快使用搜索试试~ 我知道了~
牛顿迭代算法与递归算法的概念和区别 牛顿迭代算法和递归算法是两种常用的算法思想,它们在解决问题时具有不同的特点和应用场景。 牛顿迭代算法是一种数值分析方法,用于寻找函数的零点或极值点。该算法的基本思想是通过迭代计算,逐步逼近函数的零点或极值点。牛顿迭代算法的优点是收敛速度快,适合于解决非线性方程组的近似解。 递归算法是一种问题解决方法,通过将问题分解成更小的子问题,逐步解决这些子问题,直到找到问题的解答。递归算法的优点是可以将复杂的问题分解成更简单的问题,从而使得问题变得更容易解决。 在解决问题时,需要根据问题的特点选择合适的算法。牛顿迭代算法适合于解决数值分析问题,而递归算法适合于解决具有递归性质的问题。 例 1 中,我们使用递归算法来解决兔子繁殖问题。通过定义迭代变量和迭代关系式,我们可以将问题转换成一个迭代过程,并通过计算机对这个迭代关系式进行重复执行,最后得到问题的解答。 例 2 中,我们使用递归算法来解决阿米巴分裂问题。通过倒推的方法,我们可以从最后的结果反推出初始的条件,并通过迭代公式来计算出答案。 例 3 中,我们使用递归算法来验证谷角猜想。通过定义迭代变量和迭代关系式,我们可以将问题转换成一个迭代过程,并通过计算机对这个迭代关系式进行重复执行,最后得到问题的解答。 牛顿迭代算法和递归算法都是常用的算法思想,它们在解决问题时具有不同的特点和应用场景。选择合适的算法是解决问题的关键。
资源推荐
资源详情
资源评论
迭代算法是用计算机解决问题的一种基本方法。它利用计算机运算速度快、适合做重复性
操作的特点,让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这
些步骤)时,都从变量的原值推出它的一个新值。
利用迭代算法解决问题,需要做好以下三个方面的工作:
一、确定迭代变量。在可以用迭代算法解决的问题中,至少存在一个直接或间接地不断由
旧值递推出新值的变量,这个变量就是迭代变量。
二、建立迭代关系式。所谓迭代关系式,指如何从变量的前一个值推出其下一个值的公式
(或关系)。迭代关系式的建立是解决迭代问题的关键,通常可以使用递推或倒推的方法来
完成。
三、对迭代过程进行控制。在什么时候结束迭代过程?这是编写迭代程序必须考虑的问题。
不能让迭代过程无休止地重复执行下去。迭代过程的控制通常可分为两种情况:一种是所
需的迭代次数是个确定的值,可以计算出来;另一种是所需的迭代次数无法确定。对于前一
种情况,可以构建一个固定次数的循环来实现对迭代过程的控制;对于后一种情况,需要进
一步分析出用来结束迭代过程的条件。
例 1 : 一个饲养场引进一只刚出生的新品种兔子,这种兔子从出生的下一个月开始,每月
新生一只兔子,新生的兔子也如此繁殖。如果所有的兔子都不死去,问到第 12 个月时,该
饲养场共有兔子多少只?
分析: 这是一个典型的递推问题。我们不妨假设第 1 个月时兔子的只数为 u 1 ,第 2 个月
时兔子的只数为 u 2 ,第 3 个月时兔子的只数为 u 3 ,……根据题意,“这种兔子从出生的
下一个月开始,每月新生一只兔子”,则有
以下是引用片段:
u1=1,u2=u1+u1×1=2,u3=u2+u2×1=4,……
根据这个规律,可以归纳出下面的递推公式:
以下是引用片段:
un=un-1×2(n≥2)
对应 u n 和 u n - 1 ,定义两个迭代变量 y 和 x ,可将上面的递推公式转换成如下迭代
关系:
以下是引用片段:
y=x*2
x=y
让计算机对这个迭代关系重复执行 11 次,就可以算出第 12 个月时的兔子数。参考程
序如下:
以下是引用片段:
cls
x=1
fori=2to12
y=x*2
x=y
nexti
printy
end
例 2 : 阿米巴用简单分裂的方式繁殖,它每分裂一次要用 3 分钟。将若干个阿米巴放
在一个盛满营养参液的容器内, 45 分钟后容器内充满了阿米巴。已知容器最多可以装阿米
巴 2 20 个。试问,开始的时候往容器内放了多少个阿米巴?请编程序算出。
分析: 根据题意,阿米巴每 3 分钟分裂一次,那么从开始的时候将阿米巴放入容器里面,
到 45 分钟后充满容器,需要分裂 45/3=15 次。而“容器最多可以装阿米巴 2 20 个”,即阿米
巴分裂 15 次以后得到的个数是 2 20 。题目要求我们计算分裂之前的阿米巴数,不妨使用
倒推的方法,从第 15 次分裂之后的 2 20 个,倒推出第 15 次分裂之前(即第 14 次分裂之
后)的个数,再进一步倒推出第 13 次分裂之后、第 12 次分裂之后、……第 1 次分裂之前的
个数。
设第 1 次分裂之前的个数为 x 0 、第 1 次分裂之后的个数为 x 1 、第 2 次分裂之后的个数
为 x 2 、……第 15 次分裂之后的个数为 x 15 ,则有
以下是引用片段:
x14=x15/2、x13=x14/2、……xn-1=xn/2(n≥1)
因为第 15 次分裂之后的个数 x 15 是已知的,如果定义迭代变量为 x ,则可以将上面
的倒推公式转换成如下的迭代公式:
x=x/2 ( x 的初值为第 15 次分裂之后的个数 2 20 )
让这个迭代公式重复执行 15 次,就可以倒推出第 1 次分裂之前的阿米巴个数。因为所需
的迭代次数是个确定的值,我们可以使用一个固定次数的循环来实现对迭代过程的控制。
参考程序如下:
以下是引用片段:
cls
x=2^20
fori=1to15
x=x/2
nexti
printx
end
例 3 : 验证谷角猜想。日本数学家谷角静夫在研究自然数时发现了一个奇怪现象:对
于任意一个自然数 n ,若 n 为偶数,则将其除以 2 ;若 n 为奇数,则将其乘以 3 ,然后再加
1 。如此经过有限次运算后,总可以得到自然数 1 。人们把谷角静夫的这一发现叫做“谷角
猜想”。
要求:编写一个程序,由键盘输入一个自然数 n ,把 n 经过有限次运算后,最终变成自然
剩余11页未读,继续阅读
资源评论
lxm564494132
- 粉丝: 3
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功