《最新MATLAB实验报告.doc》由会员分享,可在线阅读,更多相关《最新MATLAB实验报告.doc(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品资料Matlab实验报告.实验一:MATLAB语言平台与SIMULINK工具箱一、 实验目的:1学习了解MATLAB语言环境;2练习MATLAB命令;4掌握SIMULINK工具箱的应用。二、实验要求:1实验内容 (1)学习了解MATLAB语言环境;(2)练习MATLAB命令的基本操作;(3)掌握SIMULINK仿真环境的使用方法; (4) 掌握线性系统仿真常用基本模块的用法 2要求按照实验文档的要求与步骤完成实验,撰写实验报告。 三、实验基本知识: 1.熟悉MATLAB环境: MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器、文件和搜索路径浏览器。 2.掌握MATL
2、AB常用命令 3.了解SIMULINK模块库中各子模块基本功能 四、实验内容:1.学习使用help命令,例如在命令窗口输入help eye,然后根据帮助说明,学习使用指令eye(其它不会用的指令,依照此方法类推) help eye EYE Identity matrix. EYE(N) is the N-by-N identity matrix. EYE(M,N) or EYE(M,N) is an M-by-N matrix with 1s on the diagonal and zeros elsewhere. EYE(SIZE(A) is the same size as A. EYE
3、with no arguments is the scalar 1. EYE(M,N,CLASSNAME) or EYE(M,N,CLASSNAME) is an M-by-N matrix with 1s of class CLASSNAME on the diagonal and zeros elsewhere. Example: x = eye(2,3,int8); See also speye, ones, zeros, rand, randn. Reference page in Help browser doc eyeA=eye(3)A= 1 0 0 0 1 0 0 0 12任意创
4、建3个变量,分别为数值、矩阵、字符串,保存到mydat.mat文件,再把my_data.mat文件中的变量读取到MatLab工作空间内;查找已创建变量的信息,删除变量;学习使用clc、clear,观察command window、command history和workspace等窗口的变化结果。a=sym(2) a = 2 b=2,3;4,5b = 2 3 4 5c=sym(Kate) c = Kate save mydate a b cload mydate a b cclear afind(a)? Undefined function or variable a.find(c)? Fun
5、ction find is not defined for values of class sym.Error in = find at 37 builtin(find, varargin:);find(b)ans = 1 2 3 4 3请找出能进行“2维离散傅立叶变换”的指令(或称函数)名称,说出该函数有几种调用格式,并指出该函数文件的所在文件夹。 运用help帮助系统查阅fft函数指令可以进行二维离散傅里叶变换,调用格式:Y = fft(X),Y = fft(X,n),Y = fft(X,dim),Y = fft(X,n,dim)。help fft FFT Discrete Fourier
6、 transform. FFT(X) is the discrete Fourier transform (DFT) of vector X. For matrices, the FFT operation is applied to each column. For N-D arrays, the FFT operation operates on the first non-singleton dimension. FFT(X,N) is the N-point FFT, padded with zeros if X has less than N points and truncated
7、 if it has more. FFT(X,DIM) or FFT(X,N,DIM) applies the FFT operation across the dimension DIM. For length N input vector x, the DFT is a length N vector X, with elements N X(k) = sum x(n)*exp(-j*2*pi*(k-1)*(n-1)/N), 1 = k = N. n=1 The inverse DFT (computed by IFFT) is given by N x(n) = (1/N) sum X(
8、k)*exp( j*2*pi*(k-1)*(n-1)/N), 1 = n = N. k=1 See also fft2, fftn, fftshift, fftw, ifft, ifft2, ifftn. Overloaded functions or methods (ones with the same name in other directories) help uint8/fft.m help uint16/fft.m help gf/fft.m help qfft/fft.m help iddata/fft.m Reference page in Help browser doc
9、fft4在MATLAB指令窗中运行指令 (-32)(1/5) 后,会得到 2 吗? 的全部方根有几个,并写出计算全部方根的M脚本文件f=(-32)(1/5)f=1.6180 + 1.1756i共有5个根p=1,0,0,0,0,32;R=roots(p)R = -2.0000 -0.6180 + 1.9021i -0.6180 - 1.9021i 1.6180 + 1.1756i 1.6180 - 1.1756i在历史指令窗中找到上述指令并选中点亮,单击鼠标右键选中create M-file,并以exer0108为文件名保存,就得到了exer0108.m文件7SIMULINK仿真实际应用 1)利
10、用SIMULINK求微分方程在初始条件情况下的解(mu=2,mu=100)。2)完成教材例7.2-1的simulink仿真。五、实验讨论: 通过本次实验我们熟悉了matlab的一些基本知识、操作和一些基本指令。这些操作对以后的学习起到一个铺垫的作用,需要熟练地掌握,和多加练习。实验二 MATLAB的符号运算符号计算的特点:一,运算以推理解析的方式进行,因此不受计算误差积累问题困扰;二,符号计算,或给出完全正确的封闭解,或给出任意精度的数值解(当封闭解不存在时);三,符号计算指令的调用比较简单;四,计算所需时间较长。在MATLAB中,符号计算虽以数值计算的补充身份出现,但涉及符号计算的指令使用、
11、运算符操作、计算结果可视化、程序编制以及在线帮助系统都是十分完整、便捷的。 一、实验目的 1、熟悉符号对象和符号表达式; 2、掌握符号表达式和符号函数的操作; 3、学习利用符号代数方程的求解 。二、实验基本知识 1、基本运算指令 ;2. 掌握符号运算的应用。三、上机练习1. (1)通过符号计算求的导数。(2)然后根据此结果,求和。clear allsyms ty=abs(sin(t)df=diff(y),ac=class(df)df1=limit(df,t,0,left)df2=subs(df,t,sym(pi/2)y =abs(sin(t)df = sign(sin(t)*cos(t)ac=
12、Symdf1 =-1df2 =02. 计算二重积分。clear all syms x yf=x.2+y.2; eq=(int(int(f,y,1,x.2),x,1,2), a=double(eq)f = x2 + y2 eq=1006/105 a= 9.58103. 已知(1)求;(2)求.clear allsyms x yf=x.2+y.2dfdy2=diff(f,y,2)eq=int(f,x,-1,1)f = x2 + y2 dfdy2 = 2 eq=2*y2 + 2/34. 解方程: clear all syms x f=solve(3*x2+4*x-6)f = - 22(1/2)/3
13、- 2/3 22(1/2)/3 - 2/3 5.已知方程:(1) 求通解;(2)求满足的特解.clear allsyms xy=dsolve(D3y+3*Dy+2*y=6,x)eq=dsolve(D3y+3*Dy+2*y=6,Dy(0)=2,y(0)=3,x)结果:y = C2/exp(x*(1/(2(1/2) - 1)(1/3) - (2(1/2) - 1)(1/3) + C3*cos(3(1/2)*x*(1/(2(1/2) - 1)(1/3) + (2(1/2) - 1)(1/3)/2)*exp(x*(1/(2*(2(1/2) - 1)(1/3) - (2(1/2) - 1)(1/3)/2
14、) + C4*sin(3(1/2)*x*(1/(2(1/2) - 1)(1/3) + (2(1/2) - 1)(1/3)/2)*exp(x*(1/(2*(2(1/2) - 1)(1/3) - (2(1/2) - 1)(1/3)/2) + 3 eq= C9*sin(3(1/2)*x*(1/(2(1/2) - 1)(1/3) + (2(1/2) - 1)(1/3)/2)*exp(x*(1/(2*(2(1/2) - 1)(1/3) - (2(1/2) - 1)(1/3)/2) + (3(1/2)*C9)/(2(1/2) - 1)(1/3) + 3(1/2)*C9*(2(1/2) - 1)(1/3)
15、- 4)/(exp(x*(1/(2(1/2) - 1)(1/3) - (2(1/2) - 1)(1/3)*(3/(2(1/2) - 1)(1/3) - 3*(2(1/2) - 1)(1/3) - (cos(3(1/2)*x*(1/(2(1/2) - 1)(1/3) + (2(1/2) - 1)(1/3)/2)*exp(x*(1/(2*(2(1/2) - 1)(1/3) - (2(1/2) - 1)(1/3)/2)*(3(1/2)*C9)/(2(1/2) - 1)(1/3) + 3(1/2)*C9*(2(1/2) - 1)(1/3) - 4)/(3/(2(1/2) - 1)(1/3) - 3*(
16、2(1/2) - 1)(1/3) + 36. 求方程 的解。clear allf=solve(x2+y2-1=0,x*y-2=0,x,y),S.x, S.y结果:f= x: 4x1 sym y: 4x1 sym ans = (1/2 + (15(1/2)*i)/2)(1/2)/2 - (1/2 + (15(1/2)*i)/2)(3/2)/2 - (1/2 + (15(1/2)*i)/2)(1/2)/2 + (1/2 + (15(1/2)*i)/2)(3/2)/2 (1/2 - (15(1/2)*i)/2)(1/2)/2 - (1/2 - (15(1/2)*i)/2)(3/2)/2 - (1/2
17、 - (15(1/2)*i)/2)(1/2)/2 + (1/2 - (15(1/2)*i)/2)(3/2)/2 ans = (1/2 + (15(1/2)*i)/2)(1/2) -(15(1/2)*i)/2 + 1/2)(1/2) (1/2 - (15(1/2)*i)/2)(1/2) -(1/2 - (15(1/2)*i)/2)(1/2)四、 实验讨论 本次实验使主要练习符号运算及指令,让我对其有使用方法有了更深入的理解,通过和数值运算比较,也更加明白了符号运算的优点和不足,对matlab有了进一步了解。实验三 MATLAB的数值运算一、实验目的 1学习MATLAB的基本矩阵运算; 2学习MA
18、TLAB的点运算;3学习复杂运算。二、实验基本知识 1.基本矩阵运算; 2.多项式运算; 3.代数方程组;4.数值微积分。 三、上机练习1. 给a,b,c赋如下数据:1)求a+b,a*b,a.*b,a/b,a./b,a2,a.2,length(c)的结果.程序:clear all a=1,3,4;5,12,44;7,8,27b=-7,8,4;12,24,38;68,-5,3c=1,0,8,3,6,2,-4,23,46,6f1=a+bf2=a*bf3=a.*bf4=a/bf5=a./bf6=a2f7=a.2f0=length(c)a = 1 3 4 5 12 44 7 8 27b = -7 8
19、4 12 24 38 68 -5 3c = Columns 1 through 3 1 0 8 Columns 4 through 6 3 6 2 Columns 7 through 9 -4 23 46 Column 10 6f1 = -6 11 8 17 36 82 75 3 30f2 = Column 1 301 3101 1883 Column 2 60 108 113 Column 3 130 608 413f3 = Column 1 -7 60 476 Column 2 24 288 -40 Column 3 16 1672 81f4 = Columns 1 through 2 0
20、.0966 0.0945 -3.6125 1.5838 -1.9917 0.9414 Column 3 0.0080 -0.5778 -0.2682f5 = Columns 1 through 2 -0.1429 0.3750 0.4167 0.5000 0.1029 -1.6000 Column 3 1.0000 1.1579 9.0000f6 = Column 1 44 373 236 Column 2 71 511 333 Column 3 244 1736 1109f7 = Column 1 1 25 49 Column 2 9 144 64 Column 3 16 1936 729f
21、0 = 102)求c中所有元素的平均值、最大值.Max_c=max(c)L_c=length(c)sr=0;for k=1:L_csr=sr+c(k)endrm_c=sr/L_cMax_c = 46L_c = 10sr = 1sr = 1sr = 9sr = 12sr = 18sr = 20sr = 16sr = 39sr = 85sr = 91rm_c = 9.10003)求d=b(2:3,1,3).d = 12 38 68 32.求解方程,并对所得结果作出解释。clear alla=1,2,3;4,5,6;7,8,9b=1,0,0f=a*b a = 1 2 3 4 5 6 7 8 9b =
22、 1 0 0f = 1 2 3 3.已知有理分式,其中,。求该分式的商多项式和余多项式。format ratNX=conv(3,0,1,0,1,0,0,0.5)DX=conv(1,2,-2,5,2,0,1)q,r=deconv(NX,DX)cq=商多项式为 ;cr=余多项式为 ;disp(cq,poly2str(q,s),disp(cr,poly2str(r,s)NX = Columns 1 through 5 3 0 1 3/2 0 Columns 6 through 7 1/2 0 DX = Columns 1 through 5 5 12 -6 -3 2 Column 6 -2 q =
23、3/5 -36/25 r = Columns 1 through 5 0 0 547/25 -267/50 -138/25 Columns 6 through 7 229/50 -72/25 商多项式为 0.6 s - 1.44余多项式为 21.88 s4 - 5.34 s3 - 5.52 s2 + 4.58 s - 2.884.求解Lorenz模型的状态方程,并图示.其中a=16,b=4,c=45初值在(0,1)中取值X1(0)=X2(0)=0,X3=,为一个小常数,记=10e-10function xdot = lorenzeq(t,x) a=16;r=4;b=45;xdot=a*(x(2
24、)-x(1);r*x(1)-x(2)-x(1)*x(2);x(1)*x(2)-b*x(3); t_final=100; x0=0;0;1e-10; t,x=ode45(lorenzeq,0,t_final,x0); plot(t,x), figure; plot3(x(:,1),x(:,2),x(:,3); axis(10 40 -20 20 -20 20);四、 实验讨论 本次实验主要练习数值计算, 与符号运算相比,数值计算在科研和工程中的应用更为广泛,而且,数值计算只需一个的数值就能把结果表达出来,不想符号计算,是一个表达式,结果不够直观。这次实验让我更加熟悉了Matlab的操作。验四 M
25、ATLAB语言绘图 一、实验目的: 1、学习MATLAB图形绘制的基本方法; 2、熟悉和了解MATLAB图形绘制程序编辑的基本指令; 3、熟悉掌握利用MATLAB图形编辑窗口编辑和修改图形界面,并添加图形的各种标注; 4、掌握plot、subplot的指令格式和语法。 二、实验基本知识: 1.plot(x,y)-绘制由x,y所确定的曲线; 2.图形窗口的分割; 3.图形编辑窗口的使用。 三、实验内容 1.用图形表示连续调制波形 y=sint*sin(9t)及其包络线。clear allt=(0:pi/100:pi); y1=sin(t)*1,-1; y2=sin(t).*sin(9*t); t
26、3=pi*(0:9)/9; % y3=sin(t3).*sin(9*t3);plot(t,y1,r:,t,y2,b,t3,y3,bo) axis(0,pi,-1,1) 2. 画出的曲线,在图上用“小红圈”标出第一次使y=0.6的那点位置。t=-5:0.01:5y=exp(-0.5*t).*sin(t);plot(t,y)xx=find(y=0.6);hold ongrid onplot(t(xx(1),y(xx(1),ro,markersize,3)3. 在同一个图形窗里画出实验三中第四题的三个输出,给出图题、横坐标、纵坐标名称。并利用图形编辑器将三幅图用不同的颜色和线性表示。clftspan
27、=0,30;x0=0.5;0.4;0.6;tt,xx=ode45(DxDt,tspan,x0);subplot(3,1,1),plot(tt,xx(:,1),-b)xlabel(t)ylabel(x1(t)title(Lorenz模型图)legend(fontsize14it x1(t)hold onsubplot(3,1,2),plot(tt,xx(:,2),r*)xlabel(t)ylabel(x2(t)legend(fontsize14it x2(t)subplot(3,1,3),plot(tt,xx(:,3),go)xlabel(t)ylabel(x3(t)legend(fontsize14it x3(t)四、实验讨论 本次试验主要练习plot、subplot指令,初步认识和熟悉了matlab的绘图功能。当看到图案绘制出来是还是很开心的,这让我对matlab绘图充满了兴趣。只不过指令的编写有些复杂,不容易入手,我相信多家练习是能游刃有余的。
限制150内