《线性代数》—上机教学(一)理学院ScienceCollege西南石油大学SouthwestPetroleumUniversity一《线性代数》中的基本运算1上机目的:一、突出教学的重点,减少教学的难点;二、掌握常用计算方法和处理问题的方法.2上机内容:向量与矩阵运算上机软件:Matlab一、向量与矩阵运算的环境1、可以在Matlab指令窗口中运算指令窗工作空间历史纪录/当前路径32、可以在Matlab中建立M文件进行运算M文件的建立:File-New-M-file(或点击工具栏上的白页)4(1)直接输入矩阵用方括号“[]”括起例:A=[123;456;789]矩阵同一行中的元素之间用空格或逗号分隔矩阵行与行之间用分号分开直接输入法中,分号可以用回车代替例:二、向量与矩阵运算1、矩阵的生成5(2)由向量生成(4)由函数生成(3)通过编写m文件生成例:x=[1,2,3];y=[2,3,4];A=[x,y],B=[x;y]例:C=magic(3)(魔方矩阵)6C=816357492常见矩阵生成函数zeros(m,n)生成一个m行n列的零矩阵,m=n时可简写为zeros(n)ones(m,n)生成一个m行n列的元素全为1的矩阵,m=n时可写为ones(n)eye(m,n)生成一个主对角线全为1的m行n列矩阵,m=n时可简写为eye(n),即为n维单位矩阵diag(X)若X是矩阵,则diag(X)为X的主对角线向量若X是向量,diag(X)产生以X为主对角线的对角矩阵tril(A)提取一个矩阵的下三角部分triu(A)提取一个矩阵的上三角部分rand(m,n)产生0~1间均匀分布的随机矩阵m=n时简写为rand(n)randn(m,n)产生均值为0,方差为1的标准正态分布随机矩阵m=n时简写为randn(n)其它特殊矩阵生成函数:magic、hilb、pascal72、向量的生成(1)直接输入:a=[1,2,3,4](2)用冒号运算符生成a=[1:4]==a=[1,2,3,4]b=[0:pi/3:pi]==b=[0,1.0472,2.0944,3.1416]c=[6:-2:0]==c=[6,4,2,0]例:(3)从矩阵中抽取行或列8矩阵元素可以是任何数值表达式例:x=[-1.3,sqrt(3),(1+2+3)*4/5]3、矩阵元素赋值矩阵元素的单独赋值例:x(5)=abs(-3)注:Matlab自动将向量x的长度扩展到5,并将未赋值部分置零.9大矩阵可以把小矩阵作为其元素例:A=[123;456;789]B=[A;101112]在原矩阵的下方加一行如何在原矩阵的右边添加一列?3、矩阵元素赋值10单个元素的引用例:A(2,3)4、矩阵元素的引用多个元素的引用:冒号的特殊用法利用小括弧和元素所在的位置(下标)x(i):向量x中的第i个元素A(i,j):矩阵A中的第i行,第j列元素a:b:c产生一个由等差序列组成的向量;a是首项,b是公差,c确定最后一项;若b=1,则b可以省略.例:x=1:2:5y=1:2:6例:x=2:1:5y=2:511多个元素的引用(续)例:A=[123;456;789];x=[123456];x(1:3)A(3,1:3)A(1:2,2:3)可利用冒号提取矩阵的整行或整列.例:A(1,:)A(:,1:2)A(:,:)A(i:j,m:n)表示由矩阵A的第i到第j行和第m到第n列交叉线上的元素组成的子矩阵.4、矩阵元素的引用125、冒号的作用提取矩阵的部分元素:冒号运算符A(:)A的所有元素A(:,:)二维矩阵A的所有元素A(:,k)A的第k列,A(k,:)A的第k行A(k:m)A的第k到第m个元素A(:,k:m)A的第k到第m列组成的子矩阵A(:)与A(:,:)的区别?如何得到由A的第一、三行和第一、二列组成的子矩阵?自己动手136、矩阵的转置矩阵的转置与共轭转置’共轭转置.’转置,矩阵元素不取共轭例:A=[12;2i3i]B=A'C=A.'点与单引号之间不能有空格!在英文状态下输入’或.’147、矩阵的大小查看矩阵的大小:sizesize(A)列出矩阵A的行数和列数size(A,1)返回矩阵A的行数size(A,2)返回矩阵A的列数例:A=[123;456]size(A)size(A,1)size(A,2)length(x)返回向量X的长度length(A)等价于max(size(A))158、矩阵基本运算矩阵的加减:对应分量进行运算要求参与加减运算的矩阵具有相同的维数例:clearA=[123;456];B=[321;654]C=A+BD=A-B矩阵的普通乘法要求参与运算的矩阵满足线性代数中矩阵相乘的原则例:clearA=[123;456]B=[213;343;123]C=A*B16矩阵的除法:/、\右除和左除若A可逆方阵,则A\B==A的逆左乘B==inv(A)*BB/A==A的逆右乘B==B*inv(A)8、矩阵基本运算方阵的逆矩阵:inv(A)例:clearA=[1123;4156;789]D=inv(A)例:clearA=[1123;4156;789];B=[321];C=B*inv(A)D=inv(A)*B'(’表示B的转置,要在英文状态下输入)17矩阵的数乘:k*A例:A=[123;456];B=[321;654];C=5*BD=A-3*B8、矩阵基本运算若A是方阵,p是正整数,则A^p表示A的p次幂,即p个A相乘.矩阵的乘方(幂):A^p例:A=[123;456;789]C=A^2D=A^3189、矩阵的数组运算数组运算:对应元素进行运算点与算术运算符之间不能有空格!数组运算包括:点乘、点除、点幂相应的数组运算符为:.*,./,.\,.^参与运算的对象必须具有相同的形状!例:A=[123;456];B=[321;654];C=A.*BD=A./BE=A.\BF=A.^B1910、数与数组的点幂x.^y=[1^4,2^5,3^6]=[1,32,729]x.^2=[1^2,2^2,3^2]=[1,4,9]2.^x=?.^前面留个空格例:x=[123];y=[456];2.^[x;y]=?Matlab中的所有标点符号必须在英文状态下输入2011、方阵的行列式:det(A)例:A=[123;456;789]ans=det(A)12、矩阵的秩与行最简形rank(A):求矩阵A秩;rref(A):将矩阵A化为行最简形矩阵.R=rank(A)%求秩例:A=[4124;1202;10520;0117]b=rref(A)%将矩阵A化为行最简形矩阵21formatrat%指定有理式格式输出由此得到结果为:R=3(秩为3)b=100-20102001500002213、方阵A的特征向量和特征值d=eig(A)求矩阵A的特征值;[v,d]=eig(A)求矩阵A的特征向量和特征值;这里v的列向量是对应的特征向量.例:A=[4124;1202;10520;0117]d=eig(A)[v,d]=eig(A)23formatrat%指定有理式格式输出由此得到结果为:d=(矩阵A的特征值)2122/2171614/3351/164493462252594344/853v=(矩阵A的特征向量)-172/329-1061/3393-840/2449-837/2347-437/2864172/1309840/24492523/5474-449/583-1626/18552100/2449516/653-1219/3671391/1145-420/2449-6175/32559d=(矩阵A的特征值)2122/21700001614/3350000*0000344/8532414、矩阵的迹和模求迹trace(A):主对角线元素和;求模norm(A):特征值的最大绝对值;例:A=[4124;1202;10520;0117]tr=trace(A)n=norm(A)25三、上机作业(一)1.试分别生成5阶的单位阵和4阶均值为0,方差为1的标准正态分布随机矩阵;2.生成行向量x=(1,3,5,7,9,11,13);3.设A=[1124;1202;4520;5722];B=[12124;11202;14520;1117];求A+B,A-B,A*B,A\B,5*B,A^5,A.*B,A.^5及矩阵A的行列式,特征值,特征向量,秩和行最简形.4.试分别生成任意5阶矩阵A和5阶矩阵B;求A+B,A-B,A*B,A\B,5*B,A^2,A.*B,A.^2及矩阵A的行列式,特征值,特征向量,秩和行最简形.注意:(3题和4题选做1题)262008-10-15