数学实验与Matlab实验一矩阵运算与Matlab命令日常矩阵及其运算矩阵应用实例:榄球防护用品的生产管理应用问题一个工厂生产三种橄榄球用品:防护帽、垫肩、臀垫。需要不同数量的:硬塑料、泡沫塑料尼龙线、劳动力。为监控生产,管理者对它们之间的关系十分关心。为把握这些量的关系,他列出下面的表原料产品关系表原料产品防护帽垫肩臀垫硬塑料422泡沫塑料132尼龙线133劳动力322订单管理者接到四份订单如上表所示。问应该如何计算每份订单所需的原材料,以便组织生产?订单1订单2订单3订单4防护帽35206045垫肩10155040臀垫20124520原料产品防护帽垫肩臀垫硬塑料422泡沫塑料132尼龙线133劳动力322订单1订单2订单3订单4防护帽35206045垫肩10155040臀垫20124520204512204050151045602035,223331231224BA将表格写成矩阵形式计算输入下面Matlab指令A=[423;132;133;322],B=[35206045;10155040;20124520]C=A*B请自行计算观看结果Matlab基本指令向量的创建和运算1.直接输入向量》x1=[124],x2=[1,2,1],x3=x1’运行结果x1=124x2=121x3=1242.冒号创建向量x1=3.4:6.7,x2=3.4:2:6.7x3=2.6:-0.8:0运算结果x1=3.40004.40005.40006.4000x2=3.40005.4000x3=2.60001.80001.00000.20003.生成线性等分向量指令x=linspace(a,b,n)在[a,b]区间产生n个等分点(包括端点)x=linspace(0,1,5)结果x=00.25000.50000.75001.0000工作空间在Matlab窗口创建向量后并运行后,向量就存在于工作空间,可以被调用。向量的运算设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]数的乘幂:如a^2元素群运算(四则运算)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]观察运行结果创建矩阵(符号矩阵的创建)用指令“syms”说明符号变量。symsa11a12a13a14a21a22a23a24a31a32a33a34b11b12b13b14b21b22b23b24b31b32b33b34A1=[a11a12a13a14;a21a22a23a24;a31a32a33a34],B1=[b11b12b13b14;b21b22b23b24;b31b32b33b34]运行矩阵的运算(矩阵的加减、数乘、乘积)C=A1+B1D=A1-B1symsc,cA=c*A1A2=A1(:,1:3),B1G=A2*B1矩阵的运算(矩阵的加减、数乘、乘积)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)矩阵的运算(左除和右除)求矩阵方程:设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观察结果:分块矩阵(矩阵的标识)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列交叉处的元素所构成新矩阵。分块矩阵(矩阵的标识)取出A的1、3行和1、3列的交叉处元素构成新矩阵A1程序A=[10112;01-123;30510;23121],vr=[1,3];vc=[1,3];A1=A(vr,vc)观察结果分块矩阵(矩阵的标识)将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]结果分块矩阵(矩阵的修改和提取)修改矩阵A,将它的第1行变为0。程序:A=[10112;01-123;30510;23121]A(1,:)=[00000];A删除上面矩阵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)配合使用。生成特殊矩阵将rand指令运行多次,观察结果。程序:y1=rand(1,5),y2=rand(1,5),rand('seed',3),x1=rand(1,5),rand('seed',3),x2=rand(1,5)结果常用矩阵函数det(A):方阵的行列式;rank(A):矩阵的秩;eig(A):方阵的特征值和特征向量;trace(A):矩阵的迹;rref(A):初等变换阶梯化矩阵Asvd(A):矩阵奇异值分解。cond(A):矩阵的条件数;数据的简单分析1.当数据为行向量或列向量时,函数对整个向量进行计算.2.当数据为矩阵时,命令对列进行计算,即把每一列数据当成同一变量的不同观察值。max(求最大)、min(求最小)、mean(求平均值)、sum(求和)、std(求标准差)、cumsum(求累积和)、median(求中值)、diff(差分)、sort(升序排列)、sortrows(行升序排列)等等。数据的简单分析观察:生成一个3×6的随机数矩阵,并将其各列排序、求各列的最大值与各列元素之和。程序rand('seed',1);A=rand(3,6),Asort=sort(A),Amax=max(A),Asum=sum(A)结果实验二函数可视化与Matlab作图函数的可视化))sin(cos()(xxxf))sin(cos(1.0)(xxxxgf(x),g(x)是周期函数吗?观察它们的图象。程序•clf,x=linspace(0,8*pi,100);•F=inline('sin(x+cos(x+sin(x)))');•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)令绘制平面曲线(plot指令)plot(x,y):以x为横坐标、y为纵坐标绘制二维图形x,y是同维数的向量;plot(y):相当于x=[1,2,…,length(y)]时情形。绘制平面曲线(绘制多个图形)1.plot(x,[y1;y2;…]),x是横坐标向量,[y1;y2;…]是由若干函数的纵坐标拼成的矩阵2.plot(x,y1),holdon,plot(x,y2),holdoff3.plot(x,y1,x,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绘制平面曲线(例)观察:改变绘图的线型和颜色。用gridon指令为图形窗口加上网格线,并改变网格的线型和字体的大小。程序h=plot([0:0.1:2*pi],sin([0:0.1:2*pi]));set(h,'LineWidth',5,'color','red');gridonset(gca,'GridLineStyle','-','fontsize',16)观察结果绘制平面曲线(坐标轴的控制)axis指令axis([xminxmaxyminymax]):设定二维图形的x和y坐标的范围;axis([xminxmaxyminymaxzminymax]):设定三维图形的坐标范围;其中xminxxmax,yminyymax,zminzzmax。绘制平面曲线(gca属性控制)改变当前轴对象句柄gca属性用set(gca,‘属性’,属性值,…)可改变字体大小、坐标刻度等轴对象的内容。例如:set(gca,'ytick',[-1-0.500.51])将y坐标按向量[-1-0.500.51]将刻度分成4格;set(gca,'yticklabel','a|b|c|d|e')改变y坐标刻度的说明。绘制平面曲线(gca属性控制,例)设置y坐标的刻度并加以说明,并改变字体的大小。程序plot([0:0.1:2*pi],sin([0:0.1:2*pi]),'k.-',);gridon,axis([06.3-1.11.1]),set(gca,'ytick',[-1-0.500.51]),set(gca,'yticklabel','a|b|c|d|e'),set(gca,'fontsize',20)get(gca)运行结果绘制平面曲线(文字标注)title(‘图形标题’);xlabel(‘x轴名称’);ylabel(‘y轴名称’);zlabel(‘z轴名称’);text(‘说明文字’):创建说明文字;gtext('说明文字'):用鼠标在特定位置输入文字。文字标注常用符号:\pi(π);\alpha(α);\beta(β);\leftarro