版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MATLAB实验MATLABThe Language of Technical ComputingVersion 6.1J0450 Relsaso 12.1May 18, 2001机电工程学院实验一熟悉MATLAB境认识MHLAB1、 实验目的熟悉matlab 的安装与启动;熟悉matlab 用户界面;熟悉matlab 功能、建模元素;熟悉matlab 优化建模过程。2、 实验设备与仪器1. 微机仿真软件3、 实验步骤1. 了解matlab 的硬件和软件必备环境;2. 启动matlab ;3. 熟悉标题栏,菜单栏,工具栏,元素选择窗口,状态栏,控制栏以及系统布局区;4. 学习优化建模过程。4、
2、 实验报告要求1. 写出 matlab 系统界面的各个构成;以及系统布局区的组成;以及每一部分的功能;2. 优化建模过程应用举例五、实验内容(一)、Matlab 操作界面1. 命令窗口(command window)2. 命令历史窗口(command history )3. 工作空间管理窗口(workspace)4. 当前路径窗口(current directory)(二)、实现下列优化建模过程1231、简单矩阵A 4 5 6 的输入步骤。789A=1 2 3;4 5 6;7 8 9A =1234567892、矩阵的分行输入。A=1,2,34,5,67,8,9>> A=1,2,34
3、,5,67,8,9A =1234567893、指令的续行输入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/8画4、出zsnfX; )所表示的三维曲面。x,y的取值范围是8,8x yx=-8:8;x,y=meshgrid(x);z=sin(sqrt(x.A2+y.A2)./(sqrt(x.A2+y.A2);subplot(1,3,1);plot3(x,y,z)subplot(1,3,2);mesh(x,y,z)subplot(1,3,3);surf(x,y,z)6、复数矩阵的生成及运算A=1,3;
4、2,4-5,8;6,9*iB=1+5i,2+6i;3+8*i,4+9*iC=A*B» A=1,3;2,4-5,8;6,9*i;» B=1+5i,2+6i;3+8*i,4+9*i;» C=A*BC =+002*实验二MATLAB运算基础一、实验目的及要求1 . 掌握建立矩阵的方法。2 .掌握MATLA脐种表达式的书写规则以及常用函数的使用。二、 实验设备与仪器1. 微机仿真软件三、实验原理1 .矩阵的建立方法( 1)直接输入法:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。(2)利用M文件建立矩
5、阵,对于比较大且比较复杂的矩阵,可以为它专门建立一个 M文件(3)用MATLA就数建立矩阵,MATLABI供了许多产生特殊矩阵的函数,可以利用他们去建立矩阵2. 常用数学函数sin : 正弦函数cos :余弦函数sqrt :平方根函数exp :自然指数函数abs :绝对值函数rem :求余数或模运算mod :模除求余fix :向零方向取整floor :大于自变量的最大整数round :四舍五入到最邻近的整数四、实验内容及步骤:1 .计算表达式的值|1 3i |2J2J,Z X1 esin 48.7x , y1 Iog2l5 2i>> x=(sin(48*pi/180)+sqrt(7
6、)/(1+log2(15)-2i);>> y=abs(1+3i)/(1+exp(2);>> z=xA2+yA212310A45612;789142.矩阵的直接建立及矩阵的运算(1)请利用直接建立矩阵的方法,采用两种方式建立如下矩阵:>> A=1 2 3 10;4 5 6 12;7 8 9 14A =123104561278914>> A=1,2,3,10;4,5,6,12;7,8,9,141 23104 56127 8914(2)将矩阵A第2至3行中第1, 3, 4列元素赋给矩阵B;>> B=A(2:3,1,3,4)B =46 127
7、9 14(3)将矩阵A的每个元素加30,并且将第1行和第3行进行交换> > A+30ans =31 32 33 4034 35 36 4237 38 39 44> > C=A(1,:);> > A(1,:)=A(3,:);> > A(3,:)=C7891445612123103(1)建立一个4 5的零矩阵、单位矩阵和元素全为1 的方阵。>> ones(4,5)ans =11111111111111111111>> eye(4,5)ans =10000010000010000010(2)请使用直接建立矩阵的方法,并结合MAT
8、LAB建立矩阵的函数,生成如下矩阵013d 01 4。015>> m1=zeros(3);m2=ones(3);m3=3,4,5;m4=m1;m4(:,2)=m2(:,2);m4(:,3)=m5;m4m4 =0130140154当=,时,分别求y sin( x)cos( x) 的值。>> x1=;x2=;x3=;x4=;y1=sin(x1)*cos(x1)y2=sin(x2)*cos(x2)y3=sin(x3)*cos(x3)y4=sin(x4)*cos(x4) y1 =y2 = y3 = y4 =五、实验结果讨论1. 如何访问数组中的元素,其中以列为主顺序依次查询设一
9、个矩阵a,访问其第i个元素则为ai-12. 如何输出显示字符型变量Sprintf( %c ,x)实验三MATLAB巨阵分析和处理0000一、实验目的1 掌握生成特殊矩阵的方法。2掌握矩阵分析的方法。4用矩阵求逆法解线性方程组。二、实验内容1 设有分块矩阵AE33R32,其中 E,R,O,S 分别为单位矩阵、随机矩阵、零矩阵和对角矩阵,O2 3 S2 2试通过数值计算验证A2E R RSOS2程序 :E=eye(3);R=rand(3,2);O=zeros(2,3);S=diag(2,2);A=E R; O S;B1=AA2B2=E R+R*S;O SA2结果 :B1 =000000B2 =00
10、000000000000由结果可以知道,B1=B2,即证明A2E R RSOS22 .产生5阶希尔伯特矩阵 H和5阶帕斯卡矩阵P,求其行列式的值 Hh和Hp以及他们的条件数 Th和Tp,判断哪个矩阵性能更好,为什么程序 :H=hilb(5)P=pascal(5)Hh=det(H)Hp=det(P)Th=cond(H)Tp=cond(P)结果:111111234513610151410203515153570Hh =Hp =Th =+005Tp =+003矩阵H的条件数比矩阵P的条件数更接近1,故矩阵H的性能更好3建立一个5x5 矩阵,求它的行列式的值、迹、秩和范数程序:M=7,4,5,1,2;
11、2,3,7,0,8;,9,5,7,1,3;5,7,9,2,6;7,2,1,6,3Ma=det(M)Mb=trace(M)Mc=rank(M)Md=norm(M)结果 :29 6 184已知A 205 12 ,求特征值和特征向量,并分析其数学意义885程序: A=-29,6,18;20,5,12;-8,8,5;V,D=eig(A)5下面是一个线性方程组1/21/31/4x10.951/31/41/5x20.671/41/51/6x30.521) 求方程的解程序 :A=1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6;B=;C=AB 2) 2) 将方程右边向量第三个元素改为,
12、并比较解的变化程序:A=1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6;D=;E=AD 3) 计算系数矩阵A的条件数并分析结论程序:A=1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6;h=cond(A)结果:h =+003矩阵A的条件数较接近1,故矩阵A的性能较好。6.建立A矩阵,试比较sqrtm( A)和sqrt( A),并分析他们的区别程序:A=3,5,7;4,6,8;5,2,9;B=sqrt(A)C=sqrtm(A)sqrt是求矩阵里每个元素的平方根,并组成一个新的矩阵。峰qrtm是求矩阵的方根并组成一个新的矩阵实验四 求余弦的积分弁绘出图
13、像一、实验目的1、了解绘图工具的使用。二、实验要求(选作下列习题)1 .(不定积分)用int计算下列不定积分,并用diff验证2 dxdx3xsin x dx 1x 【 arcsin xdx sec xdxi cos x e i程序:clear;syms x;int(x.*sin(x.A2)diff(-cos(xA2)/2)int(1/(1+cos(x)diff(tan(x/2)int(1/(exp(x)+1)diff(x - log(exp(x) + 1)int(asin(x)diff(x*asin(x) + (1 - xA2)A(1/2)int(sec(x)A3)diff(log(tan(
14、pi/4 + x/2)/2 + tan(x)/(2*cos(x)结果:ans =-cos(xA2)/2ans =x*sin(xA2)ans =tan(x/2)ans =tan(x/2)A2/2 + 1/2ans =x - log(exp(x) + 1)ans =1 - exp(x)/(exp(x) + 1)ans =x*asin(x) + (1 - xA2)A(1/2)ans =asin(x)ans =log(tan(pi/4 + x/2)/2 + tan(x)/(2*cos(x)ans =1/2)/(2*tan(pi/4 + x/2)(tan(x)A2 + 1)/(2*cos(x) + (t
15、an(pi/4 + x/22/2 + (sin(x)*tan(x)/(2*cos(x)A2)2 .(定积分)用trapz,int计算下列定积分1 sin x ,1212n dx xxdx exsin(2x)dx e x dx0 x000,程序: clear;syms x y h;h=;y=sin(x)/x;x=0:h:1;z=trapz(y)*hy=x.Ax;z=trapz(y).*hy=exp(-x.A2);z=trapz(y).*hx=0二2*pi;y=(exp(-x.A2).*sin(2.*x);z=trapz(x,y)结果:z =0z =z =z =22的周长土上13 .(椭圆的周长)
16、用定积分的方法计算椭圆94程序:syms x y t;t=0:2*pi;x=3*sin(t);y=2*cos(t);z=(x.A2)/9+(y.A2)/4-1;p=trapz(z,t)结果:p =(1 x y)dxdy4 .(二重积分)计算积分x2 y2 2y程序: clear;syms x y z;iy=int(1+x+y,y,(-sqrt(1-xA2)+1,(sqrt(1-xA2)+1);z=int(iy,x,-1,1)结果:z =2*pi1 sin xdx5 .(广义积分)计算广义积分1 tan(x), dx0 vX ,程序: clear;syms x y z;y=int(exp(-x.
17、A2)/(1+xA4),-inf,inf); z=vpa(y,10)y=int(tan(x)/sqrt(x),0,1); z=vpa(y,10)y=int(sin(x)/sqrt(1-xA2),0,1);z=vpa(y,10)结果:实验五matlab求解多项式(常微分方程)一、实验目的1、了解MATLAB主要用dsolve求符号解析解,ode45,ode23,ode15s求数值解。注释:s=dsolve('方程1 ,'方程2' ,'初始条件1','初始条件2',自变量)用字符串方程表示,自变量缺省值为t 。导数用D 表示, 2 阶导数用D
18、2表示,以此类推。S返回解析解。在方程组情形,s为一个符号结构。tout,yout=ode45( yprime ,t0,tf,y0) 采用变步长四阶Runge-Kutta 法和五阶Runge-Kutta-Felhberg 法求数值解,yprime 是用以表示f(t,y)的M文件名,t0表示自变量的初始值,tf表示自变量的终值,y0 表示初始向量值。输出向量tout表示节点(t 0,t i,t n)T,输出矩阵yout表 示数值解,每一列对应y 的一个分量。若无输出参数,则自动作出图形。ode45 是最常用的求解微分方程数值解的命令,对于刚性方程组不宜采用。ode23与ode45类似,只是精度低
19、一些。ode12s用来求解刚性方程组, 是用格式同ode45。可以用help dsolve, help ode45查阅有关这些命令的详细信息 .二、实验要求(选作下列习题)1 求下列微分方程的解析解(1) jrr +2_yf-3_K=名",值工3) j*+ a2y = sinx (a >0) y/-/2 -1 = 0 j?成42(/-江冲=0, yxi =13 _/ + / + _/ = ©。4 "-0 = 6 Ke =5 _/ + 了 = /+38瑞 yL=L =1(s) V + 2y" + y = 0 1yLe = 2H=。,丹山=一1程序:s
20、yms x y a;s1=dsolve('D2y+Dy*2-3*y=exp(-3*x)','x')s2=dsolve('D2y-3*Dy=2*sin(x)*exp(2*x)','x')s3=dsolve('D2y+y*aA2=sin(x)','x')s4=dsolve('D2y*y-Dy*Dy-1=0','x')s5=dsolve('Dy=yA3./(2*(x*yA2-xA2)','y(1)=1','x')s6=dsol
21、ve('D2y+Dy+y=cos(x)','y(0)=0,Dy(0)=','x')s7=dsolve('D2y+y=exp(x)+cos(x)','y(0)=1,Dy(0)=1','x') s8=dsolve('D3y+2*D2y+Dy=0','y(0)=2,Dy(0)=0,D2y(0)=-1','x')结果:s1 =exp(x)*C2+exp(-3*x)*C1-1/4*x*exp(-3*x)s2 =-1/5*cos(x)*exp(2*x)-3/5*s
22、in(x)*exp(2*x)+1/3*exp(3*x)*C1+C2s3 =sin(a*x)*C2+cos(a*x)*C1+sin(x)/(aA2-1)s4 =1/2*C1*(1/exp(1/C1*x)A2/exp(1/C1*C2)A2+1)*exp(1/C1*x)*exp(1/C1*C2)1/2*C1*(exp(1/C1*x)A2*exp(1/C1*C2)A2+1)/exp(1/C1*x)/exp(1/C1*C2)s5 =exp(-1/2*lambertw(-exp(-1)/x)-1/2)s6 =1/3*exp(-1/2*x)*sin(1/2*3八(1/2)*x)*3八(1/2)+sin(x)
23、s7 =1/2*sin(x)+1/2*exp(x)+1/2*cos(x)+1/2*sin(x)*xs8 =1+exp(-x)+exp(-x)*x>>22求方程(1 x )y" 2xy', y(0) 1, y'(0) 3 的解析解和数值解, 并进行比较解方程程序:syms x y;y=dsolve('D2y*(1+xA2)=2*x*Dy','y(0)=1,Dy(0)=3','x')结果 :y =1+3*x+xA3 a. 程序建立函数文件function f=fun(x,y)f=y-xA3+3*xA2-3*x+2
24、;b. 主程序:x,y=ode45('fun',0,1,1);plot(x,y1,'rp')hold onx=0:1;y2=1+x.A3+3*x;plot(x,y2,'b')结果 ;实验七函数文件一、实验目的1、理解函数文件的概念。2、掌握定义和调用 MATLA函数的方法。二、实验内容(选作2 题)1 、定义一个函数文件,求给定复数的指数、对数、正弦和余弦,并在命令文件中调用该函数文件。建立函数文件functiona,b,c,d=hanshu(x)a=exp(x);b=log(x);c=sin(x);d=cos(x);% a指数函数值% b对数函
25、数值% c正弦函数值% d余弦函数值主程序 :x=input(' 输入 x=');a,b,c,d=hanshu(x)结果:输入x=12、 一个物理系统可用下列方程组来表示:m1 cosm1sin0a10m1 sin0cos0a2m1g0m2sin0N1000cos1N2m2g从键盘输入m、m和的值,求a、a?、N、N的值。其中g取,输入时以 角度为单位。要求:定义一个求解线性方程组 AX=B的函数文件,然后在命令 文件中调用该函数文件。建立函数文件function x=solve(A,B)x=AB;主程序 ;m1=input(' 输入m1=')m2=input(
26、' 输入m2=')theta1=input(' 输入 theta=')g=;theta=theta1*180/pi;A=m1*cos(theta),-m1,-sin(theta),0;m1*sin(theta),0,cos(theta),0;0,m2,-sin(theta),0;0,0,-cos(theta),1;B=0;m1*g;0;m2*g;x=solve(A,B);a1=x(1)a2=x(2)N1=x(3)N2=x(4)结果:输入m1=2输入m2=2输入theta=30a1 =a2 =N1 =N2 =3、一个自然数是素数,且它的数字位置经过任意对换后仍为素
27、数,则称是绝对素数。例如13 是绝对素数。试求所有两位绝对素数。建立函数文件function flag=mat(x)flag=1;for i=2:sqrt(x)if rem(x,i)=0flag=0;break;endend主程序:for i=10:99j=10*rem(i,10)+fix(i/10);if mat(i)&mat(j)disp(i)endend结果:1113173137717379974、设f x 124,编写一个MATLA函数文件,使得调用x 20.1 x 30.01f(x)时,X可用矩阵代入,得出的f(x)为同阶矩阵建立函数文件function fx=fx(x)fx
28、=1./(x-2)八2+1./(x-3)八4+;主程序:x=input(' 输入矩阵:')fx=fx(x)结果:输入矩阵:1,2,3;1,2,3;1,2,3x =123123123 fx =5、已知yf 40f 30 f 20(1)当 f(n)=n+10lnn2 5时,求y的值。建立函数文件function x=fn(n)x=n+10*log(nA2+5);主程序:y=fn(40)/(fn(30)+fn(20)结果:2)当f n 1 2 2 3 3 4n n 1时,求y的值建立函数文件function x=fn(n)x=0;for n=1:nx=x+n*(n+1);End主程序
29、:y=fn(40)/(fn(30)+fn(20)结果:y =实验八,九 MATLAB程序设计(循环、选择)一、实验目的1 、掌握利用if 语句实现选择结构的方法;2、掌握利用switch 语句实现多分支选择结构的方法;3、掌握循环结构的程序书写方法。二、实验内容1 、硅谷公司员工的工资计算方法如下:( 1 )工作时数超过120 小时者,超过部分加发15%;( 2)工作时数低于60 小时者,扣发700 元;( 3)其余按每小时84 元计发。编程按输入的工号和该号员工的工作时数,计算应发工资。程序:m=input(' 输入工号:');n=input(' 工作小时数:'
30、;);if n>=120y=84*n+(n-120)*elseif n<60y=84*n-700elseif n>=60 & n<120y=84*nend结果:输入工号:0001工作小时数:50y =35002、用switch case语句得出各月份的季节(如 3, 4, 5月输出为春季)程序:x=input(' 输入月份:');switch xcase 1disp(Num2str(x),' 月是冬季')case 2disp(Num2str(x),'月是冬季')case 3disp(Num2str(x),'
31、月是春季')case 4disp(Num2str(x),'月是春季')case 5disp(Num2str(x),'月是春季')case 6disp(Num2str(x),' 月是夏季')case 7disp(Num2str(x),'月是夏季')case 8disp(Num2str(x),'月是夏季')case 9disp(Num2str(x),'月是秋季')case 10disp(Num2str(x),'月是秋季')case 11disp(Num2str(x),'月
32、是秋季')case 12disp(Num2str(x),'月是冬季')End结果:输入月份:11 月是冬季3、计算1+3+5+ +99的值,当和大于1000的时候终止计算,要求显示终止时候的求和结果以及最后一位计算的整数值。程序:sum=0;for i=1:2:99sum=sum+i;if(sum>1000) break;endenda=sum;b=i;disp(' 求和结果为:',num2str(a)disp(' 最后一位计算的整数值为:',num2str(b)结果:求和结果为:1024最后一位计算的整数值为:63634、分别采用
33、循环语句和sum语句实现K2i 1 2 22263的计算i0循环实现:y=0;for i=0:63y=y+2Ai;i=i+1;enda=y结果:a =+019sum求和实现:i=1:63;b=2.Ai;a=sum(b)结果:a =5、编写一个函数文件,实现两个矩阵的乘积和点乘,并在命令文件中调用该函数。建立函数文件文件function x,y=cheng(A,B)x=A.*B;y=A*B;主程序:A=input(' 输入矩阵A:')B=input('输入能与矩阵A相乘的矩阵B:')x,y=cheng(A,B)结果:输入矩阵A:2,3;4,9A =23输入能与矩阵
34、A相乘的矩阵B:2,1;7,3B =2173x =4328 27y =25 1171 31三、实验要求1、预习,写出自己设计的实验步骤;2、按照实验室规范使用计算机;3、做好实验记录(包括程序和结果)。四、思考题1、break语句和continue语句有什么区别答:while循环、do-while循环和for循环中,可以用break语句跳出循环, 用continue语句结束本次循环,而对用goto语句和if语句构成的循环,不 能用break语句和continue语句进行控制。continue语句只结束本次循环,而不是终止整个循环的执行break 语句则是结束整个循环过程,不再判断执行循环的条件
35、是否成立.continue 语句和 break 语句的区别:continue 语句只结束本次循环,而不是终止整个循环的执行。break 语句则是结束整个循环过程,不再判断执行循环的条件是否成立。break 语句可以用在循环语句和switch 语句中。 在循环语句中用来结束内部循环;在 switch语句中用来跳出switch 语句。 循环嵌套时,break 和 continue 只影响包含它们的最内层循环,与外层循环无关2. 函数文件和命令文件有何异同函数文件是另一种形式的 M文件,每一个函数文件都定义一个函数,事实上, matlab 提供的标准函数大部分是由函数文件定义的。函数文件区别于命令文件之处在于命令文件的变量在文件执行完成后保留在工作空间中,而函数文件内定义的变量只在函数文件内起作用,文件执行完后即被清除。1. 函数文件一般都要带参数, 都要有返回结果, 而命令文件没有参数与返回结果2. 函数文件的变量是局部变量, 运行期间有效, 运行完毕就自动被清除,而命令文件的变量是全局变量, 执 行完毕后仍被保存在内存中3. 函数文件要定义函数名, 且保存该函数文件的文件名必须是函数名.m 。M 函数文件可以有多个因变量和多个自变量, 当有多个因变量时用 括起来。3. 写出书中82 页第 10 题的程序运行结果。( 1)程序:s=0;a=12,13,14
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文书模板-《衣帽回收委托协议书》
- 2024年土地征用委托代理协议范例
- 2024年高效清洗设备销售协议
- 2024工程协议管理实务精要
- 北京2024二手轿车买卖正式协议
- 2024年三方租赁场地协议范例
- DB11∕T 1655-2019 危险化学品企业装置设施拆除安全管理规范
- 2024年BF场地出租协议模板
- 2024年跨国贸易代表协议基本格式
- 2024年分公司加盟协议模板
- 神话故事燧人钻木取火
- 中华人民共和国民法典:研究与解读
- 食品加工与检验实训室建设方案
- 《心导管检查术》课件
- 《基因表达调控》课件
- 常州高级中学2022-2023学年高一上学期期中数学试题(原卷版)
- 厨房安全协议书
- TikTok全球化运营策略解析
- 《蓝色国土》课件
- 消化系统护理中的专业发展规划
- 动画分镜头脚本设计课件
评论
0/150
提交评论