递归算法在程序设计语言中广泛应用。是指函数/过程/子程序在运行过程中直接或间接调用自身而产生的现象。采用递归编写程序能使程序变得简洁和清晰。递归要求
1递归结束条件及结束时的值递归出口
2能用递归形式表示且递归向终止条件发展问题简化语句规模递减
例4.18利用函数的递归调用求n 。
function f=factor(n)%最好不要取此函数名if n<=1f=1;elsef=factor(n-1)*n; %递归调用求(n-1)!endnote系统采用递归工作栈来实现。 Matlab递归深度为500。
运行效率比较低。
迭代算法是用计算机解决问题的一种基本方法。它利用计算机运算速度快、适合做重复性操作的特点让计算机对一组指令(或一定步骤)进行重复执行在每次执行这组指令(或这些步骤)时都从变量的原值推出它的一个新值。
利用迭代算法解决问题需要做好以下三个方面的工作
第一确定迭代变量
在可以用迭代算法解决的问题中至少存在一个直接或间接地不断由旧值递推出新值的变量这个变量就是迭代变量。
第二建立迭代关系式
所谓迭代关系式指如何从变量的前一个值推出其下一个值的公式(或关系) 。迭代关系式的建立是解决迭代问题的关键通常可以使用递推或倒推的方法来完成。
第三对迭代过程进行控制
在什么时候结束迭代过程?不能让迭代过程无休止地重复执行下去。迭代过程的控制通常可分为两种情况一种是所需的迭代次数是个确定的值可以计算出来;另一种是所需的迭代次数无法确定。对于前一种情况可以构建一个固定次数的循环来实现对迭代过程的控制;对于后一种情况需要进一步分析出用来结束迭代过程的条件。
实验四3考虑以下迭代公式xn+1=a/(b+xn) , 其中a b为正的常数。
(1)编写程序求迭代的结果迭代的终止条件为|xn+1-xn|≤10-5
迭代初值x0=1 .0,迭代次数不超过500次。a=input( 'a=?' ) ;b=input( 'b=?' ) ;
X0=1.0;%迭代变量,确定初值
X1=a/ (b+X0) ;n=1;while abs (X1-X0)>1e-5 %终止条件
X0=X1;
X1=a/ (b+X0) ;%迭代关系式n=n+1;if n==500%终止条件break;endendn
X1r1=(-b+sqrt(b*b+4*a) ) /2r2=(-b-sqrt(b*b+4*a) ) /2note方程x2+bx-a=0之根。
RackNerd今天补货了3款便宜vps,最便宜的仅$9.49/年, 硬盘是SSD RAID-10 Storage,共享G口带宽,最低配给的流量也有2T,注意,这3款补货的便宜vps是intel平台。官方网站便宜VPS套餐机型均为KVM虚拟,SolusVM Control Panel ,硬盘是SSD RAID-10 Storage,共享G口带宽,大流量。CPU:1核心内存:768 MB硬盘:12 ...
vollcloud LLC首次推出6折促销,本次促销福利主要感恩与回馈广大用户对于我们的信任与支持,我们将继续稳步前行,为广大用户们提供更好的产品和服务,另外,本次促销码共限制使用30个,个人不限购,用完活动结束,同时所有vps产品支持3日内无条件退款和提供免费试用。需要了解更多产品可前往官网查看!vollcloud优惠码:VoLLcloud终生6折促销码:Y5C0V7R0YW商品名称CPU内存S...
炭云怎么样?炭云(之前的碳云),国人商家,正规公司(哈尔滨桓林信息技术有限公司),主机之家测评介绍过多次。现在上海CN2共享IP的VPS有一款特价,上海cn2 vps,2核/384MB内存/8GB空间/800GB流量/77Mbps端口/共享IP/Hyper-v,188元/年,特别适合电信网络。有需要的可以关注一下。点击进入:炭云官方网站地址炭云vps套餐:套餐cpu内存硬盘流量/带宽ip价格购买上...