matlab实验4_循环结构程序设计_参考解答
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四 循环结构程序设计
教材P364
一、实验目的
1. 掌握利用for 语句实现循环结构的方法。
2. 掌握利用while 语句实现循环结构的方法。
3. 熟悉利用向量运算来代替循环操作的方法。
二、实验内容
1. 根据2222π11116123n
=++++"2,求的近似值。当n 分别取100、1000、10000时,结果是多少?
π要求:分别用循环结构和向量运算(使用sum 函数)来实现。
答:程序设计:
(1) 循环结构
clear all; close all; clc;
for n=[100,1000,10000]
sum=0;
for x=1:n
sum=sum+1/(x.^2);
end
value=sqrt(6*sum)
end
(2) 向量运算
clear all; close all; clc;
for n=[100,1000,10000]
x=1:n;
value=sqrt(6*sum(1./x./x))
end
运行结果:
value =
3.1321
value =
3.1406
value =
3.1415
2. 根据11113521
y n =++++−",求: (1) 时的最大n 值。
3y <(2) 与(1)的n 值对应的y 值。
答:程序设计:
clear all; close all; clc;
y=0; n=1;
while y<3
y=y+1/(2*n-1);
n=n+1;
end
n=n-1;
y=y-1/(2*n-1)
n=n-1
运行结果:
y =
2.9944
n =
56
验证:
clear all; close all; clc;
n=56;
i=1:n;
f=1./(2*i-1);
y=sum(f)
运行结果:
y =
2.9944
3. 考虑以下迭代公式:
1n n
a x
b x +=+ 其中、b 为正的常数。
a (1) 编写程序求迭代的结果,迭代的终止条件为5110n n x x −+−≤,迭代初值,迭代次数不超过500次。
0 1.0x =(2) 如果迭代过程收敛于r ,那么r
的准确值是2
b −±,当的值取、(8、时,分别对迭代结果和准确值进行比较。
(,)a b (1,1),3)(10,0.1)答:
(1) 程序设计:
clear all; close all; clc;
a=2; b=3;
x0=1.0; x1=0;
n=1;
y=abs(x1-x0);
while n<=500 & y>10^(-5)
x1=a/(b+x0);
y=abs(x1-x0);
x0=x1;
n=n+1;
end
x1
运行结果:
x1 =
0.5616
(2) 程序设计:
(i) 当(a,b)的取值为(1,1)时clear all; close all; clc;
a=1; b=1;
x0=1.0; x1=0;
n=1;
y=abs(x1-x0);
while n<=500 & y>10^(-5) x1=a/(b+x0);
y=abs(x1-x0);
x0=x1;
n=n+1;
end
x1
r1=(-b+sqrt(b^2+4*a))/2
r2=(-b-sqrt(b^2+4*a))/2
运行结果:
x1 =
0.6180
r1 =
0.6180
r2 =
-1.6180
(ii) 当(a,b)的取值为(8,3)时clear all; close all; clc;
a=8; b=3;
x0=1; x1=0;
n=1;
y=abs(x1-x0);
while n<=500 & y>10^(-5) x1=a/(b+x0);
y=abs(x1-x0);
x0=x1;
n=n+1;
end
x1
r1=(-b+sqrt(b^2+4*a))/2
r2=(-b-sqrt(b^2+4*a))/2
运行结果:
x1 =
1.7016
r1 =
1.7016
r2 =
-4.7016
(iii) 当(a,b)的取值为(10,0.1)时
clear all; close all; clc;
a=10; b=0.1;
x0=1; x1=0;
n=1;
y=abs(x1-x0);
while n<=500 & y>10^(-5)
x1=a/(b+x0);
y=abs(x1-x0);
x0=x1;
n=n+1;
end
x1
r1=(-b+sqrt(b^2+4*a))/2
r2=(-b-sqrt(b^2+4*a))/2
运行结果:
x1 =
3.1127
r1 =
3.1127
r2 =
-3.2127
4. 已知,求1231231, 10, 21, 3
2, n n n n f n f n f n f f f f n −−−==⎧⎪==⎪⎨==⎪⎪=−+>⎩3
1100~f f 中:
(1) 最大值、最小值、各数之和。
(2) 正数、零、负数的个数。