《矩阵的应用-线性代数的MATLAB求解.ppt》由会员分享,可在线阅读,更多相关《矩阵的应用-线性代数的MATLAB求解.ppt(21页珍藏版)》请在三一办公上搜索。
1、第三章 线性代数问题的MATLAB求解,主要内容,3.1.矩阵及其运算,3.2.矩阵的初等变换与线性方程组,3.3.矩阵的对角化,3.1.矩阵及其运算,矩阵的算术运算,MATLAB中矩阵的基本运算有+,-,*,/(右除),(左除),(乘方),1、矩阵的线性运算,两个矩阵A,B,A+B和A-B的运算规则是:若两个矩阵的维数相同,则可以执行加减运算,相应的元素相加减,如果尾数不相同则出错。,2、矩阵的乘法,设两个矩阵A,B分别为m*n和n*p的矩阵,则C=A*B为m*p的矩阵,3、矩阵的除法(mldivide 和mrdivide/),如果两个矩阵A,B是非奇异的,则AB和A/B运算都可以实现。AB
2、等价于inv(A)*B,A/B等价于A*inv(B)对含有标量的运算,两种除法运算的结果相同3/4和4/3都是0.75,4、矩阵的乘方,一个矩阵的乘方运算可以表示成Ax,其中A为方阵,x为标量。,5、点运算,两个矩阵进行点运算是指他们的对应元素进行相关运算,要求两矩阵的维参数相同,6、矩阵的转置 使用单引号 即可,方阵的行列式,方阵A的行列式对应的求值函数为det(A),矩阵的逆矩阵,对于一个可逆的方阵A,求解函数为inv(A)对于普通矩阵A,求伪逆的函数为pinv(A),应用实例-投入产出模型,问题描述:国民经济各部门之间存在相互依存的关系,每个部门在运转中将其他部门的半成品(称为投入)经过
3、加工变为自己的产品(产出),如果根据各部门间的投入产出关系,确定各部门的产出水平以满足社会需求。,设国民经济由农业、制造业、服务业三个部门构成,关系如下表(3-1):单位(亿元),三个部门的投入产出表如下(表3-2):单位(亿元),如第一行第二列的数字0.10表示生产1个单位产值的制造业产品需要投入0.10个单位产值的农产品,由表3-1中20亿元农产品投入制造业可以产出200亿元制造业总产值,20/200=0.1。该表中的数字称为投入系数或消耗系数。,需要解决的问题:,1、如果今年对农业制造业和服务业的外部需求分别为50亿元、150亿元、100亿元,问这个三个部门的总产出分别是多少?2、如果三
4、个部门的外部需求分别增加1个单位,问他们的总产出应分别增加多少?3、投入产出分析称为可行的,如果对于任意给定的、非负的外部需求,都能得到非负的总产品。为了可行,投入系数应该满足什么条件?,模型建立:设有n个部门,记一定时期内第i个部门的总产出为xi,其中对第j个部门的投入是xij,外部需求为di,则:,(1),表3-1的每一行都满足(1)式,投入系数记为aij,即为第j个部门的单位产出所需要的第i个部门的投入:,(2),由(1)和(2)式得到,(3),记投入系数矩阵,产出向量,需求向量,(3)式可写为:,(4),或,(5),当投入系数A和外部需求d给定后,求线性方程组(5)即可得到各部门的总产
5、出x。,问题(1)的解答:,编写MATLAB程序:a=0.15 0.1 0.2;0.3 0.05 0.3;0.2 0.3 0;d=50 150 100;b=eye(3)-a;x=bd,问题(2)的解答:由方程(5)可得到:,(6),表明总产出x对外部需求是线性的,所以当d增加1个单位时(d),x的增量是,若农业的外部需求增加1个单位,即d=(1,0,0)T,x为(I-A)-1,的第1列。制造业和服务业同样处理。则可以直接使用求逆命令得到dx=inv(b),求得到的数字称为部门关联系数。,问题(3)的解答:,要使对任意的需求d0,(6)式总能得到总产出x0,显然只需要(I-A)-10,由:,且A
6、0,所以只要:,就有:,由矩阵范数的性质可知,与,等价,且,故只要,即:,(7),投入产出就是可行的。,由(2)式可知(7)式等价于:,(8),只要初始投入非负,(8)式自然成立。,3.2.矩阵的初等变换与线性方程组,3.2.1 行最简形,将矩阵初等变换成行最简形的函数为rref(A),其中单位向量对应的列向量为最大线性无关组所含向量,其它列向量的坐标为其对应向量用最大线性无关组线性表示的系数。,3.2.2 矩阵的秩与迹,矩阵中行(列)向量组的最大线性无关的向量的个数称为矩阵的秩,rank(A)矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的特征值之和,trace(A),解 编写Matlab程序
7、如下 format rat%数据是有理分数表示a=1,-2,-1,0,2;-2,4,2,6,-6;2,-1,0,2,3;3,3,3,3,4;b=rref(a)format%恢复到短小数的显示格式,线性方程组的解,对于线性方程组Ax=b,当b=0时为齐次线性方程组,否则为非齐次线性方程组,1、齐次线性方程组的求解,齐次线性方程组Ax=0的解得判定定理:(1)当rank(A)=n时,方程有唯一解,且x=0;(2)当rank(A)n时,方程有无穷多组解,即存在非零解,基础解系的个数为n-rank(A),求基础解系的语句为null(A,r)(有理基),例题1:,解 编写程序如下 format rat
8、a=1,2,2,1;2,1,-2,-2;1,-1,-4,-3 b=null(a,r)%求有理基 syms k1 k2 x=k1*b(:,1)+k2*b(:,2)%写出方程组的通解 format%恢复到短小数的显示格式,2、非齐次线性方程组的求解,非齐次线性方程组Ax=b的解得判定定理:(1)当m=n,且rank(A)=rank(A|b)=n时,方程组Ax=b有唯一解,x=inv(A)*b(2)当rank(A)=rank(A|b)n时,方程组有无穷多解,此时可用null(A,r)求出对应方程的基础解系,再用pinv(A)*b求出一个特解,则可以获得最后的通解;(3)当rank(A)不等于rank
9、(A|b)时,方程组无解。,例题1:,例题2:,例题3:,3.3.矩阵的对角化,3.3.1 求矩阵的特征值和特征向量,计算矩阵A的特征值和特征向量的命令eig有三种调用格式:,(1)E=eig(A)求矩阵A的全部特征值,构成向量E(2)V,D=eig(A)求矩阵A的全部特征值,构成对角阵D,求出A的特征向量构成V的列向量。先对A做相似变换后再求A的特征值和特征向量。(3)V,D=eig(A,nobalance)相对第二种格式,直接求矩阵A的特征值和特征向量。,例题1:,注:A=compan(p)返回相应的第一行为-p(2:n)/p(1)的伴随矩阵,p是多项式系数向量,compan(p)的特征值
10、是多项式p的根。例如:,例题2:,特征值,3.3.2 实对称阵的对角化,对于某方阵A,如果存在一个可逆阵P,使得P-1AP=B,称B为A的相似变换矩阵。相似变换后A的秩,迹,行列式和特征值都不发生变化。当A为实对称矩阵时,总存在一个正交矩阵P,使得P-1AP=B,其中B是由A的特征值置于主对角线上构成的方阵。MATLAB中求解正交矩阵的函数为Q=orth(A),例题1:设A=0 1 1;1 0 1;1 1 0,求一个正交矩阵P使P-1AP为对角阵。,3.3.3 二次型及其标准型,n元二次齐次函数:,为二次型,且f=xAx,其中,称:,为二次型的标准型。二次型的标准化实质上是对应的实对称矩阵的对角化。,例题1:求一个正交变换x=py,将如下二次型化成标准型:,解:首先写出对应的实对称阵A=1 0-1;0 2 0;-1 0 1,需要对p补充一个列向量0.7071;0;0.7071使之成为正交矩阵。或者利用v,d=eig(A)得到v。,