实验3循环结构程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三 循环结构程序设计
1.根据n 32122222
11116+⋯+++=π,求π的近似值。当n 分别取100、1000、10000时,结果是多少?
1)for 语句:
s=0;
n=input('请输入n 的值:');
for i=1:n
s=s+1/i^2;
end
p=sqrt(6*s);
p
2)while 语句:
s=0;
i=1;
n=input('请输入n 的值:');
while i<=n
s=s+1/i^2;
i=i+1;
end
p=sqrt(6*s);
P
运行结果:
请输入n 的值:100
p =
3.1321
>> shiyan31
请输入n 的值:1000
p =
3.1406
>> shiyan31
请输入n 的值:10000
p =
3.1415
2.根据y=1+1
-n 215131+⋯++,求: (1)y<3时的最大n 值。
(2)与(1)的n 值对应的y 值。
命令语句:
n=1;
y=0;
while y<3
y=y+1/(2*n-1);
n=n+1;
end
y=y-1/(2*(n-1)-1);
n=n-2;
disp(['满足条件的n 的值是:',num2str(n),',','对应的
y 的值是:',num2str(y)])
运行结果:
满足条件的n 的值是:56,对应的y 的值是:2.9944
3.考虑以下迭代公式: x x n n b a +=
+1 其中a 、b 为正的常数。
(1)编写程序求迭代的结果,迭代的终止条件为
1051-+≤-x x n n ,迭代初值=1.0,迭代次数不超过500次。
(2)如果迭代过程收敛于r ,那么r 的准确值是242a b b
+±-,当(a,b )的值
取(1,1)、(8,3)、(10,0.1)时,分别对迭代结果的准确值进行比较。 命令语句:
a=input('请输入一个正数a:');
b=input('请输入一个正输b:');
x=1.0;
n=0;
while abs(x-(a/x-b))>10e-5 & n<=500
x=a/(b+x);
n=n+1;
end
x
r1=(-b+sqrt(b^2+4*a))/2
r2=(-b-sqrt(b^2+4*a))/2
运行结果:
>> shiyan4
请输入一个正数a:1
请输入一个正输b:1
x =
0.6181
r1 =
0.6180
r2 =
-1.6180
>> shiyan4
请输入一个正数a:8
请输入一个正输b:3
x =
1.7016
r1 =
1.7016
r2 =
-4.7016
>> shiyan4
请输入一个正数a:10
请输入一个正输b:0.1
x =
3.1127
r1 =
3.1127
r2 =
-3.2127
实验结论:
✓ x 总是收敛于r1(
242a b b ++-)
✓ r2= -r1-b 4.已知⎪⎪⎩⎪⎪⎨⎧>+-=======---3,23,12,01,1321321
n n n n f f f
f f f f n n n n 求f f 100
1~中: (1)最大值、最小值、各数之和。
命令语句:
f(1)=1;
f(2)=0;
f(3)=1;
max=f(3);
min=f(2);
sum=2;
for i=4:100
f(i)=f(i-1)-2*f(i-2)+f(i-3);
sum=sum+f(i);
if f(i)>max
max=f(i);
elseif f(i) min=f(i); end sum max min 运行结果: >> shiyan44 sum = -7.4275e+011 max = 4.3776e+011 min = -8.9941e+011 (2)正数、零、负数的个数。 命令语句: f(1)=1; f(2)=0; f(3)=1; pn=2; nn=0; zn=1; for i=4:100 f(i)=f(i-1)-2*f(i-2)+f(i-3); if f(i)>0 pn=pn+1; elseif f(i)<0 nn=nn+1; else zn=zn+1; end end disp(['正数的个数:',num2str(pn)]) disp(['负数的个数:',num2str(nn)]) disp(['零的个数:',num2str(zn)]) 运行结果: 正数的个数:49 负数的个数:49 零的个数:2 5.若两个连续自然数的乘积减1是素数,则称这两个连续自然数是亲密数对,该素数是亲密素数。例如,2 3-1=5,由于5是素数,所以2和3是亲密数对,5是亲密素数。求[2,50]区间内: (1)亲密数对的对数。 (2)与上述亲密数对对应的所有亲密素数之和。 命令语句: