实验5 Matlab程序设计2
实验目的:
1、掌握建立和执行M文件的方法;
2、掌握实现选择结构的方法;
3、掌握实现循环结构的方法。
4、熟悉利用向量运算来代替循环操作的方法。
实验内容:
1.根据,求π的近似值。当n分别取100、1000、10000时,结果是多少?
要求:分别用循环结构和向量运算(使用sum函数)来实现。
(1)
n=[100 1000 10000];
for i=1:3
p=0;
for j=1:n(i)
p=p+(1/j^2);
end
p=sqrt(6*p)
end
(2)
n=[100 1000 10000];
for i=1:3
x=1:n(i);
p=sum(1./x.^2);
p=sqrt(6*p)
end
2.根据,求:
(1)y<3时的最大n值。
(2)与(1)的n值对应的y值。
y=0;
for n=1:100000
t=y+1/(2*n-1);
if t<3
y=t;
continue;
else
break;
end
end
n=n-1
y
3.先用函数的递归调用定义一个函数文件求,然后调用该函数文件求
函数
function [f]=sy5_4(n)
f=zeros(1,n);
for i=1:n
if i==1
f(i)=1;
elseif i==2
f(i)=0;
elseif i==3
f(i)=1;
else
f(i)=f(i-1)-2*f(i-2)+f(i-3);
end
end
end
脚本
sy5_3(100,1)+sy5_3(50,2)+sy5_3(10,-1)
4.已知
求中:
(1)最大值、最小值、各数之和。
(2)正数、零、负数的个数。
f=sy5_4(100)
max(f)
min(f)
sum(f)
zero=length(find(f==0))
negative=length(find(f<0))
postive=length(find(f>0))
5.写出下列程序的输出结果。
(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
(2) 命令文件exe.m
global x
x = 1:2:5;y = 2:2:6;
sub(y);
x,y
函数文件sub.m
function fun = sub(z)
global x
z = 3*x;x = x+z;
浙公网安备 33010602011771号