MATLAB实验四_循环结构程序设计
- 格式:doc
- 大小:57.00 KB
- 文档页数:6
实验四 循环结构程序设计 1.根据n
3
212
2
2
2
2
1
1
1
1
6
+⋯+++=
π,求π的近似值。当n 分别取100、1000、10000时,记过是多少?
n=100
程序设计:
n=100;
i=1:n;
f=1./i.^2;
x=sum(f);
y=sqrt(6*x)
运行结果:
x =
3.1321 n=1000
程序设计:
n=1000;
i=1:n;
f=1./i.^2;
x=sum(f);
y=sqrt(6*x)
运行结果:
x =
3.1406 n=10000
程序设计:
n=1000;
i=1:n;
f=1./i.^2;
x=sum(f);
y=sqrt(6*x)
运行结果:
x =
3.1415
2.根据y=1+1
-n 21
5131
+
⋯++,求: (1)y<3时的最大n 值。
(2)与(1)的n 值对应的y 值。
程序设计:
y=1;n=1;
while(y<3)
n=n+2;
y=y+1/n;
end
y=y-1/n n=(n+1)/2 运行结果: y = 2.9944 n =
57 3.
考虑以下迭代公式:
x x n
n b a
+=
+1 其中a 、b 为正的常数。 (1)编写程序求迭代的结果,迭代的终止条件为105
1-+≤-x x n n ,迭代初值x 0=1.0,迭代次数不超过500次。 程序设计: x=1.0; a=2; b=3; x=a/(b+x); n=1;
while(abs(x-(a/x-b))>
10e-5&n<=500) x=a/(b+x); n=n+1; end x n
运行结果: x = 0.5616 n =
6
(2)如果迭代过程收敛于r ,那
么r 的准确值是
2
42
a
b b
+±
-,当
(a,b )的值取(1,1)、(8,3)、(10,0.1)时,分别对迭代结果的准确值进行比较。 (a,b )取(1,1) 程序设计: x=1.0; a=1; b=1; x=a/(b+x);
n=1;
while(abs(x-(a/x-b))>10e-5&n<=5 00)
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
运行结果:
x =
0.6181
r1 =
0.6180
r2 =
-1.6180
(a,b)取(8,3)
程序设计:
x=1.0;
a=8;
b=3;
x=a/(b+x); n=1;
while(abs(x-(a/x-b))>10 e-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 运行结果:
x =
1.7016
r1 =
1.7016
r2 =
-4.7016
(a,b)取(10,0.1)
程序设计:
x=1.0;
a=10;
b=0.1;
x=a/(b+x);
n=1;
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 运行结果: x = 3.1127 r1 = 3.1127 r2 = -3.2127 4.已知
⎪⎪⎩⎪⎪⎨
⎧>+
-=======---3
,2
3
,12,01,13
2
1
321
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; n=100; max=f(3); min=f(2); sum=2; for i=4:n
f(i)=f(i-1)-2*f(i-2)+f(i-3);
if f(i)>max max=f(i); elseif f(i) sum=sum+f(i); end sum max min 运行结果: sum = -7.4275e+011 max = 4.3776e+011 min = -8.9941e+011(2)正数、零、负数的个数。 程序设计: f(1)=1; f(2)=0; f(3)=1; n=100; pn=2; nn=0; zn=1; for i=4:n f(i)=f(i-1)-2*f(i-2)+f( i-3); if f(i)>0 pn=pn+1; elseif f(i)==0 zn=zn+1; else nn=nn+1; end end disp('正数的个数:'),pn disp('负数的个数:'),nn disp('零的个数:'),zn 运行结果: 正数的个数: pn = 49 负数的个数: nn = 49 零的个数: zn = 25.若两个连续自然数的乘积减1是素数,则称这两个连续自然数是亲密数对,该素数是亲密素数。例如,2 3-1=5,由于5