matlab循环结构程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四循环结构程序设计
一、实验目的
1.掌握利用for语句实现循环结构的方法。
2.掌握利用while语句实现循环结构的方法。
3.熟悉利用向量运算来代替循环操作的方法。
二、实验内容
1. 根据pi*pi/6=1/1^2+1/2^2+1/3^2+……+1/n^2,求pi的近似值。当n分别
取100,1000,10000时,结果是多少?
2. 根据y=1+1/3+1/5+……+1/(2n-1),求
(1)y<3时的最大n值
(2)与(1)的n值对应的y值
4. 已知{f1=1,n=1;f2=0,n=2;f3=1,n=3;fn=fn-1-2fn-2+fn-3,n>3
求f1-f100中
(1)最大值,最小值,各数之和。
(2)正数,零、负数的个数。
三、实验步骤(程序和结果)
1. 方法1:y=0;n=100;
>> for i=1:n
y=y+1/i/i;
end
>> y
y =
1.6350
>> pi=sqrt(6*y)
pi =
3.1321
y=0;n=1000;
for i=1:n
y=y+1/i/i;
end
>> y
y =
1.6439
pi=sqrt(6*y)
pi =
3.1406
y=0;n=10000;
>> for i=1:n
y=y+1/i/i;
end
>> y
y =
1.6448
pi=sqrt(6*y)
pi =
3.1415
方法2:n=100;i=1:n; >> f=1./i.^2;
>> y=sum(f)
y =
1.6350
>> pi=sqrt(6*y)
pi =
3.1321
n=1000;i=1:n;
>> f=1./i.^2;
>> y=sum(f)
y =
1.6439
>> pi=sqrt(6*y)
pi =
3.1406
y=0;n=10000;
for i=1:n
y=y+1/i/i;
end
>> y
y =
1.6448
pi=sqrt(6*y)
pi =
3.1415
2.(1)y=0;
n=0;
while(y<3)
n=n+1
y=1./2*n-1;
end
n
n=
8
(2)y=0;
n=8;
y=1./2*n-1;
y
y=
3
4.
四、思考题
1. 你认为第1题用sum函数、for语句、while语句这三种方法哪种设计程序更为方便? Sum函数最方便。
2. 在多重循环的嵌套结构中应当注意哪些事项?比如少写一个end会有运行结果吗?
要注意内,外循环之间的关系,以及各语句放置的位置。不会有运行结果。
3.
五、实验总结:上机实验体会(心得、经验、教训)
通过这次上机,我对循环结构程序设计这个章节有了更深入的认识和了解。在解决了很多问题的同时,也掌握了很多知识,使我受益匪浅。