第5章 线性代数 矩阵分析 矩阵分解 线性方程组的求解 符号矩阵
一、矩阵分析 1、矩阵运算一 (1) +,-,*,/,\,^ 注意: (2) .*,./,.\,.^ (1) +,-,*,/,\,^ 注意: (2) .*,./,.\,.^ 注意:这四类运算表示对矩阵元素作对应运算。例如: A=[1,2;3,4],则:
(3) sqrtm—矩阵开方 expm—矩阵指数 logm—矩阵对数 2、矩阵运算二 (1)矩阵的行列式:det(A) (2)矩阵的秩:rank(A) (3)矩阵的初等行变换:rref(A) >> A=[1,2,3;4,5,6;7,8,9]; >> rref(A) ans = 1 0 -1 0 1 2 0 0 0
(4)矩阵的逆:inv(A)和pinv(A) (5)矩阵的迹:trace(A) (6)矩阵的范数:norm(A,1),norm(A,2), norm(A,inf),norm(A, 'fro') 注:
(7)矩阵的条件数:cond(A),condest(A) rcond(A)
3、矩阵的翻转与重塑 (1)矩阵的翻转 fliplr—左右翻转 flipud—上下翻转 flipdim(A,1)=flipud(A) flipdim(A,2)=fliplr(A) rot90(A)—逆时针旋转90度 (2)矩阵的重塑:reshape(A,m,n) 注意:新矩阵与A的元素数必须相同。
4、矩阵的逻辑运算 &--and(A,B),|--or(A,B),~--not(A),xor(A,B) 注意:结果矩阵元素取值范围为:{0,1}。 5、矩阵的特征值和特征向量 eig(A)只返回特征值 [a,b]=eig(A):a保存特征向量,b保存特征值 例如:A[1,2,3;4,5,6;7,8,9],则:
二、矩阵的分解 1、矩阵的LU分解:[L,U]=lu(X)满足X=L*U [L,U,P]=lu(X)满足 L*U=P*X 2、矩阵的特征值分解 [V,D]=eig(X)满足X*V=V*D 3、矩阵的Schur分解 [V,D]=schur(X)满足X=V*D*V'且V*V'=I
三、方程组的求解 注意:用A\B求解线性方程组AX=B,若A是奇异矩阵,可以用pinv(A)*b求解。 例:有下列数据,试进行曲线拟合,模型为: t 0.00 0.30 0.80 1.10 1.60 2.30 y 0.82 0.72 0.63 0.60 0.55 0.50
>> t=[0 .3 .8 1.1 1.6 2.3]'; >> y=[.82 .72 .63 .60 .55 .50]'; >> E=[ones(size(t)) exp(-t)]; >> c=E\y c = 0.4760 0.3413 >> T=(0:0.1:2.5)'; >> Y=[ones(size(T)) exp(-T)]*c; >> plot(T,Y,'-',t,y,'o')
四、符号矩阵 1、符号矩阵的四则运算 符号矩阵的四则运算与幂运算可直接用:+、-、*、.*、/、./、\、.\、^、.^实现。 >> B=sym('[a,b;c,d]'); >> C=sym('[x,y;z,w]'); >> B*C ans = [ a*x+b*z, a*y+b*w] [ c*x+d*z, c*y+d*w]
2、符号矩阵的其他运算 (1)转置运算:transpose >> B=sym('[a,b;c,d]'); >> B' [ conj(a), conj(c)] [ conj(b), conj(d)] >> transpose(B) [ a, c] [ b, d]
(2)行列式运算:det (3)求逆运算:inv(A)或A^(-1) (4)求秩运算:rank(A) (5)求秩运算:[V,D]=eig(A) >> A=sym('[1,2;3,4]') >> eig(A) ans = [ 5/2+1/2*33^(1/2)] [ 5/2-1/2*33^(1/2)]
(6)奇异值运算:svd(A) >> A=[1,2;3,4]; >> svd(A) ans = 5.4650 0.3660 >> sqrt(eig(A'*A)) (7)约当标准型运算:[B,C]=jordan(A)
3、符号代数线性方程(组)的求解 >> f='a*x^2+b*x+c'; >> solve(f) ans = [ 1/2/a*(-b+(b^2-4*a*c)^(1/2))] [ 1/2/a*(-b-(b^2-4*a*c)^(1/2))]
注意上例解方程默认变量为x,若要指定变量,须用以下格式: solve(f , 'b' ) —— 对指定变量b求解 >> f='a*x^2+b*x+c'; >> solve(f,'a') ans = -(b*x+c)/x^2
>> g1='x+y+z-1';g2='x-y+z-2';g3='2*x-y-z-1'; >> [x,y,z]=solve(g1,g2,g3) x = 2/3 y = -1/2 z = 5/6
练习 1、试构造矩阵,练习四则运算与幂运算,练习函数:det,inv,pinv,trace,rref,rank,norm,fliplr,flipud, flipdim,transpose,reshape,以及矩阵的逻辑运算: &,|,~和xor。 2、试构造符号矩阵,练习四则运算与幂运算,练习常用函数。练习符号方程(组)的求解。 3、设有向量a=[1,2,3],b=[4,5,6],c=[7,8,9],…,试利用rref找出它们的最大无关组。