1、MATLAB实验报告最终定稿 MATLAB实验报告机电工程学院 姓名: 李祖达 学号: 5901111120 专业:机械设计制造及其自动化 目 录实验一 熟悉MATLAB环境认识MATLAB 3实验二 MATLAB运算础 6实验三 MATLAB矩阵分析和理 8实验四 求余弦的积分并绘出像 11实验五、六 用matlab求解多项式并用plot绘制函数图象(常微分程) 13实验七 函数件 16实验八、九 MATLAB程序设计(循环、择) 19实验十 采用SIMULINK的系统真 24实验十一 菜单设计27实验一熟悉MATLAB环境认识MATLAB一、 实验目的熟悉matlab的安装与启动;熟悉ma
2、tlab用户界面;熟悉matlab功能、建模元素;熟悉matlab优化建模过程。二、 实验设备与仪器1.微机2.matlab仿真软件三、 实验步骤1. 了解matlab的硬件和软件必备环境;2. 启动matlab;3. 熟悉标题栏,菜单栏,工具栏,元素选择窗口,状态栏,控制栏以及系统布局区;4. 学习优化建模过程。四、 实验报告要求1. 写出matlab系统界面的各个构成;以及系统布局区的组成;以及每一部分的功能;2. 优化建模过程应用举例五、实验内容(一)、Matlab操作界面1. 命令窗口(command window)2. 命令历史窗口(command history)3. 工作空间管理
3、窗口(workspace)4. 当前路径窗口(current directory)(二)、实现下列优化建模过程1、简单矩阵的输入步骤。指令:A=1 2 3 ;4 5 6 ;7 8 9A = 1 2 3 4 5 6 7 8 92、矩阵的分行输入。A=1,2,3 4,5,6 7,8,9 指令: A=1,2,3 4,5,6 7,8,9A = 1 2 3 4 5 6 7 8 93、指令的续行输入S=1-1/2+1/3-1/4+ .1/5-1/6+1/7-1/8 指令:S=1-1/2+1/3-1/4+ .1/5-1/6+1/7-1/8S =0.63454、画出衰减振荡曲线及其它的包络线。的取值范围是0,
4、2pi指令:t=0:pi/4:2*pi;y=exp(-t/3).*sin(3*t);plot(y)5、画出所表示的三维曲面。的取值范围是。 x=-8:0.5:8; y=-8:0.5:8; z=(sin(sqrt(x.2+y.2)./sqrt(x.2+y.2); plot3(x,y,z)6、复数矩阵的生成及运算A=1,3;2,4-5,8;6,9*iB=1+5i,2+6i;3+8*i,4+9*i C=A*B A=1,3;2,4-5,8;6,9*iA = 1.0000 - 5.0000i 3.0000 - 8.0000i 2.0000 - 6.0000i 4.0000 - 9.0000i B=1+5
5、i,2+6i;3+8*i,4+9*iB = 1.0000 + 5.0000i 2.0000 + 6.0000i 3.0000 + 8.0000i 4.0000 + 9.0000i C=A*BC = 1.0e+02 * 0.9900 1.1600 - 0.0900i 1.1600 + 0.0900i 1.3700 实验二 MATLAB运算基础一、实验目的及要求:1.掌握建立矩阵的方法。2.掌握MATLAB各种表达式的书写规则以及常用函数的使用。二、实验内容及程序:计算表达式的值, x=(sin(48*pi/180)+sqrt(7)/(1+log2(15)-2i); y=abs(1+3i)/(1+
6、exp(2); z=x2+y2z = 0.4346 + 0.2859i2. 矩阵的直接建立及矩阵的运算(1)请利用直接建立矩阵的方法,采用两种方式建立如下矩阵:;(2)将矩阵A第2至3行中第1,3,4列元素赋给矩阵B;(3)将矩阵A的每个元素加30,并且将第1行和第3行进行交换。(1) A=1 2 3 10;4 5 6 12;7 8 9 14A = 1 2 3 10 4 5 6 12 7 8 9 14 A=1,2,3,10;4,5,6,12;7,8,9,14A = 1 2 3 10 4 5 6 12 7 8 9 14(2) B=A(2:3,1 3 4)B = 4 6 12 7 9 14 A=A
7、+30A = 31 32 33 40 34 35 36 4237 38 39 44(3),A=A+30A = 31 32 33 40 34 35 36 42 37 38 39 44 A=A(3,:) ;A(2,:) ;A(1,:)A = 37 38 39 44 34 35 36 42 31 32 33 403(1)建立一个的零矩阵、单位矩阵和元素全为1的方阵。 (2)请使用直接建立矩阵的方法,并结合MATLAB中建立矩阵的函数,生成如下矩阵。(1) a=zeros(4,5)a = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 b=eye(4,5)b = 1 0
8、 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 c=ones(4)c = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1(2) a=0 1 3; b=0 1 4; c=0 1 5; d=a;b;cd = 0 1 3 0 1 4 0 1 54当=0.2,0.4,0.6,0.8时,分别求的值。 x=0.2:0.2:0.8; y=sin(x).*cos(x)y = 0.1947 0.3587 0.4660 0.4998三、实验结果讨论1. 如何访问数组中的元素?设一个矩阵a,访问其第i个元素则为ai-1,其中以列为主顺序依次查询2. 如何输出显示字符型变量?
9、Sprintf(%c,x)实验三 MATLAB矩阵分析和处理一、实验目的1掌握生成特殊矩阵的方法。2掌握矩阵分析的方法。4用矩阵求逆法解线性方程组。二、实验内容1产生3行二列的单位矩阵、随机矩阵、零矩阵和对角矩阵。A=ones(3,2)A = 1 1 1 1 1 1B=rand(3,2)B = 0.9501 0.4860 0.2311 0.8913 0.6068 0.7621C=diag(3,2)C=diag(3,2)C = 0 0 3 0 0 0 0 0 02产生5阶希尔伯特矩阵H和5阶帕斯卡矩阵P,求其行列式的值Hh和Hp以及他们的条件数Th和Tp,判断哪个矩阵性能更好,为什么?3建立一个
10、5x5矩阵,求它的行列式的值、迹、秩和范数4已知,求特征值和特征向量,并分析其数学意义 A=-29 6 18;20 5 12;-8 8 5A = -29 6 18 20 5 12 -8 8 5 v,d=eig(A)v = %特征向量 0.7130 0.2803 0.2733 -0.6084 -0.7867 0.8725 0.3487 0.5501 0.4050d = %特征值 -25.3169 0 0 0 -10.5182 0 0 0 16.83515下面是一个线性方程组(1) 求方程的解A=0.95;0.67;0.52;B=1/2 1/3 1/4;1/3 1/4 1/5;1/4 1/5 1/
11、6;X=BAX = 1.2000 0.6000 0.6000(2)将方程右边向量第三个元素0.52改为0.53,并比较解的变化 A=0.95;0.67;0.53; X=BAX = 3.0000 -6.6000 6.6000(3)计算系数矩阵A的条件数并分析结论6建立A矩阵,试比较sqrtm(A)和sqrt(A),并分析他们的区别 A=1 2 3;4 5 6;7 8 9A = 1 2 3 4 5 6 7 8 9 sqrtm(A)ans = 0.4498 + 0.7623i 0.5526 + 0.2068i 0.6555 - 0.3487i 1.0185 + 0.0842i 1.2515 + 0.
12、0228i 1.4844 - 0.0385i 1.5873 - 0.5940i 1.9503 - 0.1611i 2.3134 + 0.2717i sqrt(A)ans = 1.0000 1.4142 1.7321 2.0000 2.2361 2.4495 2.6458 2.8284 3.0000实验四 求余弦的积分并绘出图像一、实验目的 1、了解绘图工具的使用。二、实验要求1(不定积分)用int计算下列不定积分,并用diff验证,输入以下指令: syms x; f=x*sin(x2); int(f,x) ans = -cos(x2)/2验证: diff(-cos(x2)/2) ans = x
13、*sin(x2)输入以下指令: syms x; f=1/(1+cos(x); int(f) ans = tan(x/2)验证: diff(tan(x/2) ans = tan(x/2)2/2 + 1/22(定积分)用trapz,int计算下列定积分(2个),输入指令: syms x; f=sin(x)/x; int(f,x,0,1) ans = sinint(1) x=0:0.1:2*pi;f=exp(x).*sin(2*x);s=trapz(x,f)s = -209.55813(椭圆的周长) 用定积分的方法计算椭圆的周长t=0:0.001:2*pi;a=2;b=3;x=a*sin(t);y=
14、b*cos(t); X=0 x(1:end-1);Y=0 y(1:end-1);x=x-X;y=y-Y;d=sqrt(x.2+y.2);d=sum(d) d = 18.8651 4(二重积分)计算积分指令为: fun=inline(1+x+y).*(x.2+y.2-2*y i=dblquad(fun,-1,1,0,2)i =6.2835 (广义积分)计算广义积分指令为:syms x; f=exp(-x.2)./(1+x.4); int(f,x,-inf,inf) ans = (4*pi(1/2)*hypergeom(1, 5/4, 7/4, -1/4)/3 + (2(1/2)*pi*(cos(
15、1) - sin(1)/2实验五、六 用matlab求解多项式并用plot绘制函数图象(常微分方程)一、实验目的 1、 了解MATLAB中主要用dsolve求符号解析解,ode45,ode23,ode15s求数值解。2、 s=dsolve(方程1, 方程2,初始条件1,初始条件2 ,自变量) 用字符串方程表示,自变量缺省值为t。导数用D表示,2阶导数用D2表示,以此类推。S返回解析解。在方程组情形,s为一个符号结构。tout,yout=ode45(yprime,t0,tf,y0) 采用变步长四阶Runge-Kutta法和五阶Runge-Kutta-Felhberg法求数值解,yprime是用以
16、表示f(t,y)的M文件名,t0表示自变量的初始值,tf表示自变量的终值,y0表示初始向量值。输出向量tout表示节点(t0,t1, ,tn)T,输出矩阵yout表示数值解,每一列对应y的一个分量。若无输出参数,则自动作出图形。ode45是最常用的求解微分方程数值解的命令,对于刚性方程组不宜采用。ode23与ode45类似,只是精度低一些。ode12s用来求解刚性方程组,是用格式同ode45。可以用help dsolve, help ode45查阅有关这些命令的详细信息.3、熟悉plot绘图二、实验内容 1求下列微分方程的解析解(2个)指令为:y=dsolve(D2y+2*Dy-3*y=exp
17、(-3*x),x) y =C2*exp(x) - (x*exp(-3*x)/4 - exp(-3*x)/16 + C3*exp(-3*x)指令为:y=dsolve(D2y+Dy+y=cos(x),y(0)=0,Dy(0)=1.5,x) y = sin(3(1/2)*x)/2)*(cos(x - (3(1/2)*x)/2)/2 - cos(x + (3(1/2)*x)/2)/2 + (3(1/2)*cos(x - (3(1/2)*x)/2)/3 + (3(1/2)*cos(x + (3(1/2)*x)/2)/3 + (3(1/2)*sin(x - (3(1/2)*x)/2)/6 + (3(1/2
18、)*sin(x + (3(1/2)*x)/2)/6) + (3(1/2)*exp(-x/2)*sin(3(1/2)*x)/2)/3 - (3(1/2)*cos(3(1/2)*x)/2)*(sin(x*(3(1/2)/2 - 1)/2 - cos(x*(3(1/2)/2 - 1)*(3(1/2)/2 - 1)/(3(1/2)/2 - 1)2 + 1/4) + (sin(x*(3(1/2)/2 + 1)/2 - cos(x*(3(1/2)/2 + 1)*(3(1/2)/2 + 1)/(3(1/2)/2 + 1)2 + 1/4)/32求方程的解析解和数值解,并进行比较(用plot绘图)解析解: s=
19、dsolve(1+x2)*D2y-2*x*Dy,y(0)=1,Dy(0)=3,x) s = x*(x2 + 3) + 1数值解:先建立m文件function dy=myfun_1(x,y)dy=zeros(2,1);dy(1)=y(2);dy(2)=2*x*y(1)/(1+x2);end后再命令窗口输入: x,y=ode23(myfun_1,0,1000,0,1);plot(x,y(:,1),r+,x,y(:,2),g*)得到:3分别用ode45和ode15s求解Van-del-Pol方程的数值解,并进行比较.(用plot绘图)function dy=vdp1000(t,y)dy=zeros(
20、2,1);dy(1)=y(2);dy(2)=1000*(1-y(1)2)*y(2)-y(1);end T,Y=ode15s(vdp1000,0 3000,0 1); plot(T,Y(:,1),-)实验七 函数文件 一、实验目的1、理解函数文件的概念。2、掌握定义和调用MATLAB函数的方法。二、实验内容(选作2题)1、定义一个函数文件,求给定复数的指数、对数、正弦和余弦,并在命令文件中调用该函数文件。程序设计:M文件:function f(x)e=exp(x)ln=log(x)s=sin(x)c=cos(x)end运行结果: f(2i)e = -0.4161 + 0.9093iln = 0.
21、6931 + 1.5708is = 0 + 3.6269ic = 3.76222、一个物理系统可用下列方程组来表示: 从键盘输入m1、m2和的值,求a1、a2、N1、N2的值。其中g取 9.8,输入时以角度为单位。要求:定义一个求解线性方程组AX=B的函数文件,然后在命令文件中调用该函数文件。程序设计:函数文件in.m:function a1,a2,N1,N2=in(m1,m2,t)g=9.8;A=m1*cos(t) -m1 -sin(t) 0;m1*sin(t) 0 cos(t) 0;0 m2 -sin(t) 0;0 0 -cos(t) 1;C=0;m1*g;0;m2*g;B=inv(A)*
22、C;a1=B(1);a2=B(2);N1=B(3); N2=B(4);end调用in.m的命令文件: m1=1;m2=2;t=30*pi/180; a1,a2,N1,N2=in(m1,m2,t)运行结果:a1 = 6.5333a2 = 1.8860N1 = 7.5440N2 = 26.13333、一个自然数是素数,且它的数字位置经过任意对换后仍为素数,则称是绝对素数。例如13是绝对素数。试求所有两位绝对素数。要求:定义一个判断素数的函数文件。函数文件:for y=10:99 if isprime(y) a=rem(y,10); b=fix(y/10); c=10*a+b; if isprime
23、(c) disp(y) end endend运行结果: 11 13 17 31 37 71 73 79 974、设,编写一个MATLAB函数文件fx.m,使得调用f(x)时,x可用矩阵代入,得出的f(x)为同阶矩阵。程序设计:function y=fx(x)y=1./(x-2).2+0.1+1./(x-3).4+0.01end运行结果: x=1 2 3 4 5x = 1 2 3 4 5 fx(x)=1./(x-2).2+0.1+1./(x-3).4+0.01fx = 0.9716 10.9901 100.9091 1.2340 0.17245、已知(1)当f(n)=n+10ln时,求y的值。程
24、序设计:函数文件fn.m:function x=fn(n)x=n+10*log(n2+5)end调用fn.m的命令文件:y=fn(40)/(fn(30)+fn(20)运行结果:y =0.6390(2)当时,求y的值。程序设计:函数文件fn.m:function x=fn(n)if n120 y=84*120+(a-120)*1.15*84;else if a60 y=84*a-700; else y=84*a; endend disp(工号为,num2str(x),的员工工资为:,num2str(y),元);end2、用switchcase语句得出各月份的季节(如3,4,5月输出为春季)。请输
25、入月份function jijie(x)clear;x=input(请输入月份:);switch x case 1 disp(Num2str(x),月是冬季) case 2 disp(Num2str(x),月是冬季) case 3 disp(Num2str(x),月是春季) case 4 disp(Num2str(x),月是春季) case 5 disp(Num2str(x),月是春季) case 6 disp(Num2str(x),月是夏季) case 7 disp(Num2str(x),月是夏季) case 8 disp(Num2str(x),月是夏季) case 9 disp(Num2str(x),月是秋季) case 10 disp(Num2str(x),月是秋季) case 11 disp(Num2str(x),月是秋季) case 12 disp(Num2str(x),月是冬季)end 3、计算1+3+5+99的值,当和大于1000的时候终止计算,要求显示终止时候的求和结果以及
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1