实验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;
posted @ 2022-06-14 14:39  行呗  阅读(2128)  评论(0)    收藏  举报