MATLAB实验报告.docx
《MATLAB实验报告.docx》由会员分享,可在线阅读,更多相关《MATLAB实验报告.docx(17页珍藏版)》请在冰豆网上搜索。
MATLAB实验报告
MATLAB
实验报告
专业班级
学号
姓名
实验一Matlab环境及命令窗口的使用
实验目的与要求:
熟练掌握MATLAB的启动和退出;熟悉MATLAB的命令窗口;熟悉常用选单和工具栏;熟悉MATLAB桌面的其它窗口。
实验内容:
启动MATLAB,熟悉各环境窗口及作用,熟悉file、edit、View等菜单下各选项的功能;熟悉工具栏中各项的功能;打开演示程序(demo),开始其中的演示程序;退出MATLAB(exit、quit)。
在命令窗口中,输入简单的命令操作;打开函数编辑窗,编写简单的程序并保存;
程序:
>>x1=sqrt(100),x2=5.48,y=9/x2
x1=
10
x2=
5.4800
y=
1.6423
>>demo
演示框左侧是库目录,选定demo下的图形类(Graphics)按钮,双击演示框右边的栏里的functionofcomplexvariable选项,就会出现如图中的演示框。
此例为复数Z的三次方:
Z^3。
实验二Matlab数值计算
实验目的与要求:
熟练掌握matlab变量的使用;熟练掌握矩阵的创建;熟悉掌握matlab的矩阵和数组的运算;熟悉matlab多项式的运算。
实验内容:
给2×3阶矩阵变量a赋值(注意逗号与分号的使用),取其第2行第2个元素,取其第2行元素,取其第1列和第3列的元素;计算a/3、5*a、a+2等的值;
程序:
>>a=[7,9,5;5,9,4]
a=
795
594
>>a=[7,9,5;594]
a=
795
594
>>b=a([2],[2])
b=
9
>>c=a([2],:
)
c=
594
>>d=a(:
[1,3])
d=
75
54
>>e=a/3
e=
2.33333.00001.6667
1.66673.00001.3333
>>5*a
ans=
354525
254520
>>a+2
ans=
9117
7116
2、生成2×3阶的全1矩阵x和3×3魔方矩阵y,计算a+x,x*y,x/y,y^2,2^a;a.*x,a.\x,y.^2,2.^a的值。
程序:
>>x=ones(2,3)
x=
111
111
>>y=magic(3)
y=
816
357
492
>>a+x
ans=
8106
6105
(注意不同行列数之间不能相加)
>>x*y
ans=
151515
151515
>>x/y
ans=
0.06670.06670.0667
0.06670.06670.0667
(左除与右除的区别)
>>y^2
ans=
916767
679167
676791
>>2^a
?
?
?
Errorusing==>mpower
Inputsmustbeascalarandasquarematrix.
(注意2后面要加点表示按元素群运算)正确如下:
>>2.^a
ans=
12851232
3251216
>>a.*x
ans=
795
594
>>a.\x
ans=
0.14290.11110.2000
0.20000.11110.2500
>>y.^2
ans=
64136
92549
16814
3多项式a=3x^5+4x^4+7x^3+9x+12,b=x^5-4x^4+3x^3-2x+6,计算a+b,a*b,a/b,求b的根,当x=3时求a的值。
程序:
>>a=[3,4,7,9,12],b=[1,-4,3,-2,6],a+b
a=
347912
b=
1-43-26
ans=
4010718
>>a=[3,4,7,9,12],b=[1,-4,3,-2,6],conv(a,b)
a=
347912
b=
1-43-26
ans=
3-80-137-11603072
>>a=[3,4,7,9,12],b=[1,-4,3,-2,6],[s,y]=deconv(a,b)
a=
347912
b=
1-43-26
s=
3
y=
016-215-6
(相除s表示商,y表示余子式)
>>roots(b)
ans=
3.0000
1.6956
-0.3478+1.0289i
-0.3478-1.0289i
>>polyval(a,3)
ans=
453
实验三M文件的建立
实验目的与要求:
熟练掌握主程序文件的建立;熟练掌握函数文件的建立;熟悉M文件的调试;熟悉M文件的保存;熟悉M文件的运行。
实验内容:
建立一个函数文件file1,定义函数f(x)=1/((x-2)^2+0.1)+1/((x-3)^4+0.01)-4;建立一个主程序文件mainf,分别求出f(x)在[2,3]内的极小值,在2,3.5附近的零点,并绘制出其在[0,5]内的曲线及横轴(0,0),(0,5)。
Fminbnd(’f’,2,3),fzero(‘f’,2),fzero(‘f’,3.5),fplot(‘f’,[0,5]),line([0,5],[0,0])
功能函数:
文件名:
file1.m
functiony=file1(x)
y=1./((x-2).^2+.1)+1./((x-3).^4+.01)-4;
end
主程序文件:
文件名:
mainf.m
clearcloseall
m=fminbnd('file1',2,3),holdon,plot(m,file1(m),'*k')%在[2,3]内的极小值;
n=fzero('file1',2),holdon,plot(n,0,'*k')%在2附近的零点;
z=fzero('file1',3.5),plot(z,0,'*k')%在3.5附近的零点;
fplot('file1',[0,5])
line([0,5],[0,0])
>>mainf
m=
2.2704
n=
1.5915
z=
3.7157
实验四MATLAB计算的可视化
实验目的与要求:
熟练掌握Matlab二维曲线的设计;熟练掌握各种特殊图形的绘制;熟练掌握各种坐标控制语句的使用。
实验内容:
绘图:
习题:
4.4设y=cosx[0.5+3sinx/(1+x^2)],把x=0~2pi间分为101点,画出以x为横坐标,y为纵坐标的曲线。
(linspace:
绿色*线)。
程序如下:
clear,closeall
x=linspace(0,2*pi,101);
y=cos(x).*(0.5+3*sin(x)./(1+x.^2));
plot(x,y,'*g')
4.14设x=zsin3z,y=zcos3z,要求在z=0~10区间内画出x,y,z三维曲线(plot3:
蓝色虚线)
程序如下:
clear,closeall
z=0:
0.1:
10;
x=z.*(sin(3*z));
y=z.*(cos(3*z));
plot3(x,y,z,':
b')
4.15设z=x^2e^(-(x^2+y^2)),求定义域x=[-2,2],y=[-2,2]内的z值,网格取0.1见方。
(meshgrid,mesh),加标题(title),加轴名(xlabel,ylabel,zlabel),加网格(grid)。
程序:
clear,closeall
x=-2:
0.1:
2;y=-2:
0.1:
2;
X=x'*ones(1,length(y));Y=ones(length(x),1)*y;
[X,Y]=meshgrid(-2:
0.1:
2,-2:
0.1:
2);
z=X.*X.*exp(-X.^2-Y.^2);mesh(z);
title('4.15'),xlabel('X'),ylabel('Y'),zlabel('Z');gridon
在同一坐标轴内绘图:
t1=0:
0.5:
2*pi;y1=exp(-0.5*t).*sin(t);红色实线。
t2=0:
0.2:
3*pi;y2=exp(-0.5*t).*sin(2*t+1);色虚线。
最后,用gtext加上标注,y1,y2。
程序:
clear,closeall
t1=0:
0.5:
2*pi;y1=exp(-0.5*t1).*sin(t1);
plot(t1,y1,'-r'),holdon,
t2=0:
0.2:
3*pi;y2=exp(-0.5*t2).*sin(2*t2+1);
plot(t2,y2,':
b'),gtext('y1'),gtext('y2')
绘制其他类型图:
t=0:
0.5:
2*pi;y=3*sin(x+1);在子图中分别绘制直角坐标图(plot),脉冲图(stem),阶梯图(stairs),条形图(bar)。
程序:
clear,closeall
t=0:
0.5:
2*pi;y=3*sin(t+1);
subplot(2,2,1),plot(t,y),title('plot(t,y)');
subplot(2,2,2),stem(t,y),title('stem(t,y)');
subplot(2,2,3),stairs(t,y),title('stairs(t,y)');
subplot(2,2,4),bar(t,y),title('bar(t,y)'
实验五逻辑运算与流程控制
实验目的与要求:
熟悉逻辑控制语句表达式的运用,熟练掌握流程控制语句的使用以及其在复杂循环程序中的应用。
实验内容:
1.逻辑运算:
n为下标,利用逻辑语句生成一个只在n=3处有一个脉冲的向量x;生成一个在[3,5]内为1,其余为零的向量y。
生成一个在3以后为1其余为零的向量z。
clear,closeall
t0=0;tf=10;dt=0.01;t1=3;
t=t0:
tf;x1=[(t-t1)==0];
subplot(2,2,1),stem(t,x1),title('脉冲的向量x');
axis([0,5,0,1.2])
m=(t0:
dt:
tf);
x2=[(m-t1)>=0];
subplot(2,2,3),stairs(m,x2),title('向量z')
axis([0,5,0,1.1])
x3=[((m-3)>=0)&(m-5<=0)];
subplot(2,2,2),stairs(m,x3),title('向量y');
axis([0,8,0,1.1])
2.流程控制语句及应用:
分别用if语句switch语句编程实现,判断一个数是奇数还是偶数的。
用if语句编程:
clear,closeall
n=input('n=');
if(rem(n,2)==0)
A='even';
elseA='odd',
end
结果:
n=57
A=
odd
用switch语句编写:
clear,closeall
n=input('n=');
switchmod(n,2),case1,A='奇',case0,A='偶',otherwise,A='空',end
结果:
n=4