当前位置:首页 > Matlab上机实验答案
0.1299 0.1622 0.6020 0.4505 0.8258 0.1067
实验四 循环结构程序设计
?2111?2?2?2?1. 根据6123时,结果是多少?
要求:分别用循环结构和向量运算(使用sum函数)来实现。
程序设计(一):
clear;
for n=[100,1000,10000] sum=0; for x=1:n
sum=sum+1/(x.^2); end
result=sqrt(6*sum) end
?1,求π的近似值。当n分别取100、1000、10000n2
运行结果:
result =
3.1321 result =
3.1406 result =
3.1415
程序设计(二):
clear;
for n=[100,1000,10000] x=1:n;
result=sqrt(6*sum(1./x./x)) end
运行结果: result =
3.1321 result =
3.1406 result =
3.1415 2. 根据y?1?11??35?1,求: 2n?1(1) y<3时的最大n值。 (2) 与(1)的n值对应的y值。
程序设计:
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
【
%验证n=56时的y值 clear all;clc; n=56; i=1:n; f=1./(2*i-1); y=sum(f) 】
3. 考虑以下迭代公式: xn?1?a b?xn其中a、b为正的学数。 (1) 编写程序求迭代的结果,迭代的终止条件为|xn+1-xn|≤10-5,迭代初值x0=1.0,迭代次数不超过500次。 ?b?b2?4a(2) 如果迭代过程收敛于r,那么r的准确值是,当(a,b)的值取(1,1)、(8,3)、2(10,0.1)时,分别对迭代结果和准确值进行比较。
程序设计:
clear;
a=input('a=?'); b=input('b=?'); x0=1; x1=a/(b+x0); y=abs(x1-x0); n=1;
while y>10^(-5)&n<=499 x0=x1; x1=a/(b+x0); y=abs(x1-x0); n=n+1; end
x1
%比较收敛准确值和迭代结果 r1=(-b+sqrt(b^2+4*a))/2 r2=(-b-sqrt(b^2+4*a))/2
运行结果:
a=?1 b=?1 x1 =
0.6180 r1 =
0.6180 r2 =
-1.6180
a=?8 b=?3 x1 =
1.7016 r1 =
1.7016 r2 =
-4.7016
a=?10 b=?0.1
共分享92篇相关文档