实验4 MATLAB 基本编程
一、实验目的
1. 熟悉MATLAB 的脚本编写
2. 熟悉MATLAB 的函数编写
3. 熟悉MATLAB 的变量使用
4. 熟悉MATLAB 的程序控制结构
二、实验内容
1. 分别选用if 或switch 结构实现下述函数表示。
-1 x ≤-a
f(x)= x/a -a <x <a
1 x ≥a
2. 根据e x =1+x+x 2/2!+…+x n /n!+…近似计算指数,当与指数函数的误差小于0.01时停止,分别用for 和while 结构实现。
3. 记录上题的调试过程。
刚开始对于指数直接用e ,后来改成exp
4. 提示用户输入1或2,如输入1时,执行第一题脚本;如输入2时,提示用户输入随机数序列长度,然后执行第二题的函数。
5. 从键盘输入数值,迭代计算x n+1=3/(x n +2)。
三、思考题
1. 创建脚本实现随机系列的各元素由大到小排列,其中随机数服从U(-5,9)的均匀分布,并且序列长度为10。
2. 创建函数实现指定长度的随机数序列的各元素由大到小的排列,其中随机数服从N(3,9)的高斯分布。
3. 分别用for 和while 结构实现下述函数计算。
(1) sin(x)-cos(x)+sin(2x)+cos(2x)+……+sin(nx)+(-1)n cos(nx)
(2) 分别if 或switch 结构实现下列函数表示
⎪⎪⎪⎭
⎫ ⎝⎛=+++100210321,...A e A Ae e t A n At At n 其中⎪⎩⎪⎨⎧===otherwise x x y x y x y x f )cos()sin(2)cos(1)sin(),(⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧>≤<--≤<≤<--≤=d x d x c d x d c c x b b x a a x a b a x x f 0)(11)(10)(
function y=function1(x,a)
if (x<=-a)
y=-1;
elseif (x<a&x>-a)
y=x/a;
else
y=1;
end
function output=function2(x,a)
switch x&a
case x<=(-a)
output=-1;
case x>(-a)&x<a
output=x/a;
otherwise
output=1;
end
function y=function3(x)
y=0;
for i=0:inf
y=y+(x^i/factorial(i));
if(exp(x)-y<0.01)
break
end
end
function y=function4(x)
y=0;
i=0;
while(exp(x)-y>0.01)
y=y+(x^i/factorial(i));
i=i+1;
end
function n=function5()
r=input('please input 1 or 2:' ); switch r
case 1
disp(function1(1,2));
case 2
x=input('input a number:');
disp(function3(x));
end
function y=function6()
n=input('input a number :');
y=1.5;
if n==0
y=1.5;
else
for x=1:1:n
y=3/(y+2);
end
end
function y=function7
n=input('请输入n的值:'); a=normrnd(3,9,1,n);
y=fliplr(sort(a))
function y=function8
n=input('n=');
x=input('x=');
y=0;
for i=1:n
s=sin(i*x)+(-1)^i*cos(i*x); y=y+s;
end
disp(y);
function function9
x=input('x=');
n=1;
y=0;
while n<=10
s=sin(n*x)+(-1)^n*cos(n*x);
n=n+1;
end
disp(y);
function y=function10
A=[1,2,3;0,1,2;0,0,1];
n=input('n=');
t=input('t=');
y=0;
for i=1:1:n
x=A^i*exp(A^i*t);
y=y+x;
end
disp(y);
function y=function11
A=[1,2,3;0,1,2;0,0,1];
n=input('n=');
t=input('t=');
y=0;
while(n)
x=A^n*exp(A^n*t);
y=y+x;
n=n-1;
end
y=y+exp(A*t);
function p=f(x,y)
x=input('请输入x的值:') y=input('请输入y的值:') if y==1
p=sin(x);
elseif y==2
p=cos(x);
else
p=sin(x)*cos(x);
end
function f=function13(x,y) switch y
case 1
f=sin(x);
case 2
f=cos(x);
otherwise
f=sin(x)*cos(x);
end
a=unifrnd(-5,9,1,10); y=sort (a);
y=rot90(y)。