-310-附录二Matlab在线性代数中的应用§1向量组的线性相关性求列向量组A的一个最大线性无关组可用命令rref(A)将A化成阶梯形的行最简形式,其中单位向量对应的列向量即为最大线性无关组所含向量,其它列向量的坐标即为其对应向量用最大线性无关组线性表示的系数。例1求下列矩阵列向量组的一个最大无关组。⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡−−−−−=43333320126624220121A解编写M文件ex1.m如下:formatrata=[1,-2,-1,0,2;-2,4,2,6,-6;2,-1,0,2,3;3,3,3,3,4];b=rref(a)求得b=101/3016/3012/30-1/90001-1/300000记矩阵A的五个列向量依次为1α、2α、3α、4α、5α,则1α、2α、4α是列向量组的一个最大无关组。且有2133231ααα+=,42153191316αααα−−=.例2设⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡−−−==221212122],,[321aaaA,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡−==243041],[21bbB,验证321,,aaa是3R的一个基,并把21,bb用这个基线性表示。解编写M文件ex2.m如下:formatrata=[2,2,-1;2,-1,2;-1,2,2];b=[1,4;0,3;-4,2];c=rref([a,b])求得c=1002/34/3010-2/31001-12/3§2线性方程组Matlab中解线性方程组可以使用“\”。虽然表面上只是一个简简单单的符号,而它的内部却包含许许多多的自适应算法,如对超定方程用最小二乘法,对欠定方程它将给出范数最小的一个解,解三对角阵方程组时用追赶法等。另外欠定方程组可以使用求矩阵A的阶梯形行最简形式命令rref(A),求出所有的-311-基础解系。例3求解下列方程组⎪⎪⎩⎪⎪⎨⎧=+−+−=+−=−−=+−+067452296385243214324214321xxxxxxxxxxxxxx解编写M文件ex3.m如下:formatrata=[2,1,-5,1;1,-3,0,-6;0,2,-1,2;1,4,-7,6];b=[8;9;-5;0];solution=a\b求得solution=[3-4-11]'。例4求超定方程组⎪⎪⎩⎪⎪⎨⎧=+=+=−=+7262353114221212121xxxxxxxx解编写M文件ex4.m如下:a=[2,4;3,-5;1,2;2,1];b=[11;3;6;7];solution=a\b求得solution=[3.04031.2418]'。例5求解方程组⎪⎪⎩⎪⎪⎨⎧−=+−−=−+−=+−−.212,13,0432143214321xxxxxxxxxxxx解编写M文件ex5.m如下:formatrata=[1,-1,-1,1,0;1,-1,1,-3,1;1,-1,-2,3,-1/2];b=rref(a)求得:b=1-10-11/2001-21/200000故方程组有解,并有⎪⎪⎩⎪⎪⎨⎧+=++=2122143421xxxxx-312-§3相似矩阵及二次型有时我们需要精确的特征值和特征向量,就须利用Matlab的符号运算功能。在Matlab中创建符号矩阵和创建数值矩阵的形式很相似,只不过要用到符号定义函数sym。下面介绍使用此函数创建符号函数的几种形式。3.1使用sym函数直接创建符号矩阵此方法和直接创建数值矩阵的方法几乎完全相同。矩阵元素可以是符号表达式,各符号表达式的长度可以不同,矩阵元素之间可用空格或逗号分隔。例如:x=sym('[a+sin(d),b;1/c,d]');y=det(x)求得y=(d*c*a+d*c*sin(d)-b)/c3.2将数值矩阵转化为符号矩阵在Matlab中,数值矩阵不能直接参与符号运算,必须先转化为符号矩阵。例如:a=[2/3,sqrt(2);3,1]a=0.66671.41423.00001.0000b=sym(a)b=[2/3,sqrt(2)][3,1]3.3符号矩阵的索引和修改Matlab的符号矩阵索引和修改同数值矩阵的索引和修改完全相同。例如:对上例中的矩阵b进行修改b(2,2)='log(9)'3.4举例例6求一个正交变换Pyx=,把二次型434232413121222222xxxxxxxxxxxxf++−−+=化为标准形。解:二次型的矩阵为⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡−−−−=0111101111011110A由A=[0,1,1,-1;1,0,-1,1;1,-1,0,1;-1,1,1,0];[P,D]=eig(A)求得P=0.78870.21130.5000-0.28870.21130.7887-0.50000.28870.5774-0.5774-0.50000.2887000.50000.8660D=1.000000001.000000-313-00-3.000000001.0000P就是所求的正交矩阵,使得PTAP=D,令YXP=,其中[]TxxX41L=,[]TyyY41L=,化简后的二次型为242322213yyyyg+−+=。上面求得的正交矩阵P是数值解,下面我们求正交矩阵的精确解。由a=sym('[0,1,1,-1;1,0,-1,1;1,-1,0,1;-1,1,1,0]');[v,d]=eig(a)求得v=[1,-1,1,1]d=[1,0,0,0][1,0,0,-1][0,1,0,0][0,0,1,-1][0,0,1,0][0,1,0,1][0,0,0,-3]即求得矩阵A的特征值为1、1、1、3,对应的特征向量分别是矩阵v的第1、2、3、4列。再把对应于特征值1的3个特征向量正交化、单位化,我们就容易求出正交矩阵P。