matlab 循环结构设计习题
来源:互联网 发布:淘宝刷好评兼职要会费 编辑:程序博客网 时间:2024/06/04 20:09
考虑以下迭代公式:,其中a、b为正的常数。
(1)编写程序求迭代的结果,迭代的终止条件为,迭代初值=1.0,迭代次数不超过500次。
(2)如果迭代过程收敛于r,那么r的准确值是,当(a,b)的值取(1,1)、(8,3)、(10,0.1)时,分别对迭代结果的准确值进行比较。
题目看完之后,我有一点一直不明白,就是怎么把x0以后每次改变的数值赋给xn,n在变化,数值也在变化,每次都不能迭代完全。
最开始我写的代码如下:
s=1;x0=1;a=input('请输入正数a:');b=input('请输入正数b:');r1=(-b+sqrt(b^2+4*a))/2;r2=(-b-sqrt(b^2+4*a))/2;if a<=0||b<=0 disp('输入错误!');endwhile(s<=500) for xi=1:500 x(i+1)=a/(b+xi); if abs(x(i+1)-xi)<=0.0001 break; else xi=x(i+1); end ends=s+1;end
正如上面代码所示,每次都提示错误。如下图所示:
在请教过网上的朋友后,修改后的代码如下:
x(1)=1; a=input('请输入正数a:'); b=input('请输入正数b:'); r1=(-b+sqrt(b^2+4*a))/2; r2=(-b-sqrt(b^2+4*a))/2; if a<=0||b<=0 disp('输入错误!'); end for s=1:500 x(s+1)=a/(b+x(s)); if abs(x(s+1)-x(s))<=0.00001 break; end end
得到x是一个数组,第一个数是初值1。最后一个数是满足误差条件的结果,应该和r1或r2的值接近。中间的数是每一步迭代的结果。s最终的结果是迭代的次数,一般在500次以前,数列早就收敛了。而因为有初值,得到的数据x的长度等于s+1。这样就解决了我的疑问,利用数组,当序号在改变的同时,相应的,序号所对应的值根据迭代公式的计算也在不停的变化。完成了一一对应。
0 0
- matlab 循环结构设计习题
- C++实验4——循环结构设计
- 结构设计
- 结构设计
- 循环结构习题讲解
- 习题33 while循环
- java for循环习题
- 习题--数组中的循环
- [c++实验报告]第四次实验报告:循环结构设计
- MATLAB R2012a课后习题答案
- 习题 ct6_1: 循环移位☆
- 习题32 循环和列表
- 习题3.12 另类循环队列
- Javase—循环语句习题
- matlab循环结构
- matlab实现循环卷积
- Matlab循环自变量问题
- matlab中的for循环
- oracle数据库的逻辑结构
- poj3007(模拟)
- java初学者的第一个程序
- 中国式季播剧仍需完善 目前只能继续“摸石头”
- jboss4.2.3 javax.management.JMRuntimeException
- matlab 循环结构设计习题
- 微软面试100题之第三题:求子数组的最大和
- 自增、自减运算符的重载
- 什么是 VLSM(可变长子网掩码)
- Android问题之res/raw和assets文件大小限制
- node.js第二课(入门)
- uva208Firetruck(并查集 + DFS)
- UVA 10367 - Equations(数论+模拟)
- 《Thinking in Algorithm》12.详解十一种排序算法