您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > Matelab教程与实验
数学实验与Matlab05101520250102030-10-50510MATLAB是一种交互式的以矩阵为基础的系统计算平台,它用于科学和工程的计算与可视化。Matlab的含义是矩阵实验室(MatrixLaboratory),是美国MathWork公司于1982年推出的一套高性能的数值计算和可视化软件,它集数值分析、矩阵计算、信号处理和图形显示于一体,已发展成为国际上最优秀的科技应用软件之一。Matlab软件简介矩阵是MATLAB的核心.目录实验一:矩阵运算与Matlab命令;实验二:函数可视化与Matlab作图;实验三:插值和拟和;实验四:微分、积分和常微分方程;实验五:最优化方法;如何撰写数学建模论文.实验一矩阵运算与Matlab命令Matlab基本指令向量的创建和运算1.直接输入向量》x1=[124],x2=[1,2,1],x3=x1’2.冒号创建向量x1=3.4:6.7,x2=3.4:2:6.7,x3=2.6:-0.8:03.生成线性等分向量指令x=linspace(a,b,n)在[a,b]区间产生n个等分点(包括端点)例如:x=linspace(0,1,5)结果x=00.25000.50000.75001.0000工作空间在Matlab窗口创建向量后并运行后,向量就存在于工作空间(Workspace),可以被调用。向量的运算设三维向量x=[x1x2x3];y=[y1y2y3];,a,b为标量。向量的数乘:a*x=[a*x1a*x2a*x3]向量的平移:x+b=[x1+bx2+bx3+b]向量和:x+y=[x1+y1x2+y2x3+y3]向量差:x-y=[x1-y1x2-y2x3-y3]向量对应元素的运算x.*y=[x1*y1x2*y2x3*y3](乘积)x./y=[x1/y1x2/y2x3/y3](右除,右边的y做分母)x.\y=[y1/x1y2/x2y3/x3](左除,左边的x做分母)x.^5=[x1^5x2^5x3^5](乘幂)2.^x=[2^x12^x22^x3]x.^y=[x1^y1x2^y2x3^y3]函数计算Matlab有许多内部函数,可直接作用于向量产生一个同维的函数向量。如:x=linspace(0,4*pi,100);(产生100维向量x)y=sin(x);(y也自动为100维向量)y1=sin(x).^2;y2=exp(-x).*sin(x);观察结果创建矩阵(数值矩阵的创建)直接输入法创建简单矩阵。A=[1234;5678;9101112]B=[-1.3,sqrt(3);(1+2)*4/5,sin(5);exp(2),6]观察运行结果A=123456789101112B=-1.30001.73212.4000-0.95897.38916.0000矩阵的运算(矩阵的加减、数乘、乘积等)A,A_trans=A'H=[123;210;123],K=[123;210;231]h_det=det(H),k_det=det(K),H_inv=inv(H),K_inv=K^-1矩阵的运算(左除和右除)左除“\”:求矩阵方程AX=B的解;(A、B的行要保持一致)解为X=A\B;当A为方阵且可逆时有X=A\B=inv(A)*B;右除“/”:求矩阵方程XA=B的解(A、B的列要保持一致)解为X=B/A,当A为方阵且可逆时有X=B/A=B*inv(A)矩阵的运算(左除和右除)例1:求矩阵方程:设A、B满足关系式:AB=2B+A,求B。其中A=[301;110;014]。解:有(A-2I)B=A程序:A=[301;110;014];B=inv(A-2*eye(3))*A,B=(A-2*eye(3))\A观察结果:分块矩阵(矩阵的标识)例2取出A的1、3行和1、3列的交叉处元素构成新矩阵A1。解:程序A=[10112;01-123;30510;23121],vr=[1,3];vc=[1,3];A1=A(vr,vc)观察结果分块矩阵(矩阵的标识)例3将A分为四块,并把它们赋值到矩阵B中,观察运行后的结果。解:程序A11=A(1:2,1:2),A12=A(1:2,3:5),A21=A(3:4,1:2),A22=A(3:4,3:5)B=[A11A12;A21A22]运行结果分块矩阵(矩阵的修改和提取)例4(1)修改矩阵A,将它的第1行变为0。解:程序:A=[10112;01-123;30510;23121]A(1,:)=[00000];A(2)删除上面矩阵A的第1、3行。程序:A([1,3],:)=[]生成特殊矩阵全1阵ones(n),ones(m,n),ones(size(A))全零阵:zeros(n),zeros(m,n),zeros(size(A))常常用于对某个矩阵或向量赋0初值单位阵:eye(n),eye(m,n)随机阵:rand(m,n),rand(n)=rand(n,n)用于随机模拟,常和rand('seed',k)配合使用。常用矩阵函数det(A):方阵的行列式;rank(A):矩阵的秩;eig(A):方阵的特征值和特征向量;trace(A):矩阵的迹;rref(A):初等变换阶梯化矩阵Asvd(A):矩阵奇异值分解。分块矩阵(矩阵的标识)1.矩阵元素的标识:A(i,j)表示矩阵A的第i行j列的元素;2.向量标识方式A(vr,vc):vr=[i1,i2,…,ik]、vc=[j1,j2,…,ju]分别是含有矩阵A的行号和列号的单调向量。A(vr,vc)是取出矩阵A的第i1,i2,…,ik行与j1,j2,…,ju列交叉处的元素所构成新矩阵。数据的简单分析1.当数据为行向量或列向量时,函数对整个向量进行计算.2.当数据为矩阵时,命令对列进行计算,即把每一列数据当成同一变量的不同观察值。常用的命令:max(求最大)、min(求最小)、mean(求平均值)、sum(求和)、std(求标准差)、cumsum(求累积和)、median(求中值)、diff(差分)、sort(升序排列)、sortrows(行升序排列)等等。数据的简单分析例5观察:生成一个3×6的随机数矩阵,并将其各列排序、求各列的最大值与各列元素之和。解:程序A=rand(3,6),Asort=sort(A),Amax=max(A),Asum=sum(A)观察结果实验二函数可视化与Matlab作图绘制平面曲线(plot指令)plot(x,y):以x为横坐标、y为纵坐标绘制二维图形x,y是同维数的向量;plot(y):相当于x=[1,2,…,length(y)]时情形。函数的可视化)))sin(cos(sin()(xxxxf)))sin(cos(sin(2.0)(xxxxxg问:f(x),g(x)是周期函数吗?观察它们的图象。解:程序clf,x=linspace(0,8*pi,100);y1=sin(x+cos(x+sin(x)));y2=0.2*x+sin(x+cos(x+sin(x)));plot(x,y1,'k:',x,y2,'k-')legend('sin(x+cos(x+sin(x))','0.2x+sin(x+cos(x+sin(x)))',2)例1令绘制平面曲线(绘制多个图形)1.plot(x,[y1;y2;…]),x是横坐标向量,[y1;y2;…]是由若干函数的纵坐标拼成的矩阵;2.plot(x1,y1),holdon,plot(x2,y2),holdoff3.plot(x1,y1,x2,y2,…)4.plotyy两个坐标系,用于绘制不同尺度的函数。绘制平面曲线(线型、点形和颜色的控制)plot(x,y,‘颜色+线型+点形’)plot(x,y,‘颜色+线型+点形’,x,y,‘颜色+线型+点形’,…)句柄图形和set命令改变属性值,可套用:h=plot(x,y),set(h,‘属性’,属性值,‘属性’,属性值,…)或plot(x,y,'属性','属性值')设置图形对象的属性。绘制平面曲线(属性变量和属性值)表2-1颜色的标识符标识符yrcmgbwk颜色黄红青紫绿蓝白黑表2-2(b)点型和线型的标识符标识符---:-..ox+*square线型和点型实线破折线虚线点划线点圆圈×号+号*号方形单词线宽:LineWidth点的大小:MarkerSize线型:LineStyle颜色:Color绘制平面曲线(例)程序h=plot([0:0.1:2*pi],sin([0:0.1:2*pi]));set(h,'LineWidth',5,'color','red');gridon观察结果绘制平面曲线(坐标轴的控制)gridon指令为图形窗口加上网格线axis指令axis([xminxmaxyminymax]):设定二维图形的x和y坐标的范围;axis([xminxmaxyminymaxzminzmax]):设定三维图形的坐标范围;其中xminxxmax,yminyymax,zminzzmax。绘制平面曲线(文字标注)title(‘图形标题’);xlabel(‘x轴名称’);ylabel(‘y轴名称’);zlabel(‘z轴名称’);text(‘说明文字’):创建说明文字;gtext('说明文字'):用鼠标在特定位置输入文字。文字标注常用符号:\pi(π);\alpha(α);\beta(β);\leftarrow(左箭头)\rightarrow(右箭头);\bullet(点号)图形窗口的创建和分割subplot(m,n,k)命令在图形区域中显示多个图形窗口,m为上下分割数,n为左右分割数,k为第k子图编号。例:将一个图形分为4个子图,在第k个子图画sin(kx)的图象.程序:clf,b=2*pi;x=linspace(0,b,50);fork=1:4y=sin(k*x);subplot(2,2,k),plot(x,y),axis([0,2*pi,-1,1])end若干有用的指令clf:清除图形窗口已有的内容.shg:显示图形窗口。clear、clearx:清除工作空间的已有变量。figure(n):打开第n个图形窗口help:…:续行号绘制二元函数z=f(x,y)基本步骤:1.生成二维网格点2.计算函数在网格点上的值3.绘制函数图形1.meshgrid指令:生成网格点观察meshgrid指令的效果。程序:a=-3;b=3;c=-3;d=3;n=10;x=linspace(a,b,n);y=linspace(c,d,n);[X,Y]=meshgrid(x,y);plot(X,Y,'+')观察结果2.计算函数值如,z=peaks(X,Y);3.绘图指令mesh(X,Y,z):在三维空间中绘出由(X,Y,z)表示的曲面;meshz(X,Y,z):除了具有mesh的功能外,还画出上下高度线,meshc(X,Y,z):除了具有mesh的功能外,还在曲面的下方画出函数z=f(x,y)的等值线图,surf(X,Y,z):也是三维绘图指令,与mesh的区别在于mesh绘出彩色的线,surf绘出彩色的面,三维绘图(等值线指令)contour(X,Y,z,n):n条等高线,n可缺省;contourf(X,Y,z,n):等值线间用不同的颜色填满,有更好的视觉效果;contour3(X,Y,z,n):在三维空间画出等值线图;colorbar:将颜色与函数值对应起来显示在图中。空间曲线和运动方向的表现一条空间曲线可以用矢量函数表示为],[,))(),(),({)(:ttztytxtr它的速度矢量表现为曲线的切矢量:))(,)(,)(()(dttdzdttdydttdxdtdrtv观察:一架飞机沿某空间曲线飞行,飞行速度为2326,2,2ttdtdztdtdytdtdx.设飞机的初始位置在坐标原点,绘制飞机飞行的轨迹,并标明速度矢量。绘制空间曲线(指令)plot3(x,y,z):绘制三维空间曲线,用法和plot类似。quiver(X,Y,u,v):绘
本文标题:Matelab教程与实验
链接地址:https://www.777doc.com/doc-5763500 .html