资源描述:
《matlab的线性代数计算》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第二章MATLAB的线性代数计算本章先介绍用MATLAB解线性方程组的方法,应用此方法,说明线性代数中有关线性组合,线性相依,线性独立的概念与判断.另外也讨论并估计线性方程组近似值解之正确度.最后说明LU-Factorization与Choleski-Decomposition及其应用.【当两个矩阵(A,B)同阶时,此时这两个矩阵可以进行点乘运算,点乘运算是把这两个矩阵位置对应的元素进行相乘,然后得到一个新的与A,B同阶的矩阵C (C(i,j)= A(i,j)*B(i,j) ). (矩阵的点除(./)与点乘(.*)类似.).矩阵的乘法(*),是按照通常的矩阵乘法进行运算,两个矩阵进行乘法(
2、如A*B)的前提:A的列数与B的行数相等. 两个矩阵相乘时不可以随便交换顺序.可以运行几个例子看下结果:>>A=[34 5;234]A= 3 4 5 2 3 4>>B=[345;543]B= 3 4 5 5 4 3>>C=A*B???Errorusing==>mtimesInnermatrixdimensionsmustagree.-----(不能进行运算,因为这是矩阵相乘,必须满足M×N与N×Y的矩阵才能相乘,这里A是2×3,B也是2×3的矩阵,所以不能进行矩阵相乘.)>>D=A.*BD= 9 16 2
3、5 10 12 12 ----(从结果中可以看出,.*就是将相同阶数的矩阵相应的元素相乘,除法与此类似.) 然后还有左除()和右除(/)的区别:第二章第36頁A*X=B的解为 X=AB(左除) X*B=A的解为 X=A/B(右除) 】(一)解线性方程组Ax=b(1)矩阵A是一个uppertriangularmatrix,主对角线上的元素不为零A=[4-13;025;008];b=[102]';n=3;X=zeros(n,1);%给初始值X=[000]'forj=n:-1:1%利用loop来执行BackwardSub
4、situtionX(j)=(b(j)-A(j,:)*X)/A(j,j);end,XX=-0.0938-0.62500.2500(2)矩阵A是一般矩阵,而且是nonsingularmatrix则利用GaussianEliminationAlgorithm采用maximumcolumnpivot将其化为triangularmatrix,以求解A=[22-3;31-2;680];b=[2230]';w=[Ab];%建一扩增矩阵(augmentedmatrix)p=[123]';%初始的pivotvectorpivot=w(3,1);%选定第一个pivotelementp=[321];%更新后的p
5、ivotvectorw(1,:)=(-w(1,1)/pivot)*w(3,:)+w(1,:)%使(1,1)entry为0w=0-0.6667-3.0000-8.00003.00001.0000-2.00002.00006.00008.0000030.0000w(2,:)=(-w(2,1)/pivot)*w(3,:)+w(2,:)%使(2,1)entry为0w=0-0.6667-3.0000-8.00000-3.0000-2.0000-13.00006.00008.0000030.0000pivot=w(2,2);%选定第二个pivotelementw(1,:)=(-w(1,2)/pivot
6、)*w(2,:)+w(1,:)%使(1,2)entry为0p=[321]';%更新后的pivotvector第二章第36頁w=00-2.5556-5.11110-3.0000-2.0000-13.00006.00008.0000030.0000C=w(:,1:3);B=w(:,4);%separatecoefficientmatrixand%right-handsidex=zeros(3,1);%给x的初始值x=[000]'forj=3:-1:1%利用loop来执行类似BackwardSubsitution%以求解x(j)=(B(p(j))-C(p(j),:)*x)/C(p(j),j);e
7、nd,xx=132xx=Ab%用MATLAB内部的除法""来解abs(x-xx)%估计用上述GaussianElimination和%Ab所求得的解之间的误差xx=1.00003.00002.0000ans=1.0e-015*000.4441(3)RowReducedEchelonForm(rref)A=[2-1023;-1-4312;51-357];b=[5110]';aug=[Ab];%建一个扩增矩阵(augm