实验5_Matlab程序设计
实验5 Matlab程序设计2
实验目的:
掌握建立和执行M文件的方法;
掌握实现选择结构的方法;
掌握实现循环结构的方法。
熟悉利用向量运算来代替循环操作的方法。
实验内容:
根据,求π的近似值。当n分别取100、1000、10000时,结果是多少?
要求:分别用循环结构和向量运算(使用sum函数)来实现。
s=0;
n=input('请输入:');
for i=1:n
s=s+1/(i*i);
end
(6*s)^(1/2)
ans = 3.1321
请输入:1000
ans = 3.1406
请输入:10000
ans =
3.1415
n=100;
i=1:n;
f=1./i.^2;
y=sum(f);
m=(6*y)^0.5
n=1000;
i=1:n;
f=1./i.^2;
y=sum(f);
m=(6*y)^0.5
n=10000;
i=1:n;
f=1./i.^2;
y=sum(f);
m=(6*y)^0.5
m = 3.1321
m = 3.1406
m =
3.1415
根据,求:
y<3时的最大n值。
与(1)的n值对应的y值。
y=0;
i=1;
while(y<3)
y=y+1/(2*i-1);
i=i+1;
end
y=y-1/(2*i-1)
n=i-2
y =
2.9946
n = 56
先用函数的递归调用定义一个函数文件求,然后调用该函数文件求
function f=factor(m,n)
x=0;
for i=1:n
x=x+i^m
end
f=x;
end
s=factor(1,100)+factor(2,50)+factor(-1,10)
s =
4.7978e+004
已知
求中:
最大值、最小值、各数之和。
正数、零、负数的个数。
f=ones(1,100);
f(2)=0;
for i=4:100
f(i)=f(i-1)-2.*f(i-2)+f(i-3);
end
disp('最大值:');
max(f)
disp('最小值:');
min(f)
disp('各数值和:');
sum(f)
disp('正数个数:');
length(find(f>0))
disp('负数个数:');
length(find(f<0))
disp('零的个数:');
length(find(f==0))
>> 最大值:
ans =
4.3776e+011
最小值:
ans =
-8.9941e+011
各数值和:
ans =
-7.4275e+011
正数个数:
ans =
49
负数个数:
ans =
49
零的个数:
ans =
2
写出下列程序的输出结果。
(1)s = 0;
a = [12,13,14;15,16,17;18,19,20;21,22,23];
for k = a
for j = 1:4
if rem(k(j),2)~=0
s = s +k(j);
end
end
end
s
s =
108
(2) 命令文件exe.m
global x
x = 1:2:5;y = 2:2:6;
exsub(y);
x,y
函数文件sub.m
function fun = sub(z)
global x
z = 3*x;x = x+z;
x =
4 12 20
y =
2 4 6