第八讲---线性代数的计算机求解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
特征值和特征向量
eig V=eig(A): %求矩阵A的全部特征值,构成向量R。 [V,D]=eig(A): %求矩阵A的全部特征值,构成对角 阵D,并求A的特征向量构成V的列向量。 [V,D]=eig(A,‘nobalance’): %第2种格式中先对 A作相似变换后求矩阵A的特征值和特征向量,而格式3 直接求矩阵A的特征值和特征向量。 eigs:用法和eig一样,只是返回的是矩阵的六个最大 特征向值的信息
齐次线性方程组的基础解系
null R=null(A): %由奇异值分解得到的矩阵A的零空间 标准正交基。 R=null(A,’r’) %由化简的行阶梯矩阵得到零空间的 有理数基, ‘r’表示求出的是一组最小正整数解
齐次线性方程组的基础解系
x1 2 x2 2 x3 x4 0 例:求解方程组的通解: 2 x1 x2 2 x3 2 x4 0 x x 4 x 3x 0 3 4 1 2
矩阵的最简形或者极大无关组变换
1 2 3 的最简形和极大无关组. 例:求矩阵 A 3 6 8 1 4 2
>> >> >> >>
clear A=[1 2 3;3 6 8;1 4 2]; rref(A) [R,jb]=rref(A)
极大无关组变换
例: 求向量组 a1=(1,-2,2,3), a2=(-2,4,-1,3), a3=(-1,2,0,3),a4=(0,6,2,3), a5=(2,-6,3,4)的一个极大无关组 >> >> >> >> >> >> >> >> a1=[1 -2 2 3]' a2=[-2 4 -1 3]' a3=[-1 2 0 3]' a4=[0 6 2 3]' a5=[2 -6 3 4]' A=[a1 a2 a3 a4 a5]; [R,jb]=rref(A) %求极大无关组所在列 A(:,jb) %向量组的极大无关组
矩阵的最简形或者极大无关组变换
rref R = rref(A):
行最简行矩阵R
%用高斯—约当消元法和行主元法求A的
[R,jb]=rref(A) %jb是一向量,含义为r=length(jb)
为A的秩;A(:,jb)为A的列向量基;jb中元素表示基向量 所在的列。
[R,jb]=rref(A,tol) %tol为指定的精度
的逆矩阵.
>> >> >> >> >>
clear A=[1 -1 2;0 1 -1;2 1 0]; C=inv(A) norm(A*C-eye(size(A)))%检验 inv(sym(A))
矩阵的逆
16 2 3 13 5 11 10 8 的逆矩阵. 例:求矩阵 A 9 7 6 12 4 14 15 1
>> clear >> A=[1 2 2 1;2 1 -2 -2;1 -1 -4 -3]; >> format rat %指定有理格式输出 >> B=null(A,'r') %求解空间的有理基 >> C=rref(A) >> syms k1 k2 >> X=k1*C(1,:)’+k2*C(2,:)’ %写出方程组的 通解 >> pretty(X)
矩阵的迹
矩阵A的对角线上的元素的和称为迹 trace trace(X):X为方阵
1 2 3 例:求矩阵 A 的迹. 4 5 6
>> clear >> A=[1:3; 4:6]; >> C=trace(A)
矩阵的秩
rank rank(A): 默认精度下求矩阵的秩 rank(A,tol):给定精度下求矩阵的秩 注意: A可以是数值矩阵 也可以是符号矩阵 例:分别用数值方法和解析方法求20阶Hilbert 矩阵的秩 >> clear >> rank(hilb(20)) >> rank(sym(hilb(20)))
矩阵的广义逆与逆
例:求矩阵 >> >> >> >> >> >> >>
1 2 1 A 0 2 5 1 0 4
的逆矩阵.
clear A=[1 2 1;0 2 -5;1 0 4]; det(A) %矩阵可逆 format long B=pinv(A) C=inv(A) norm(B-C) %范数检验
1 2 3 4 例:分解矩阵 A 5 6 7 8 9 10 11 12
>> A=[1 2 3 4;5 6 7 8;9 10 11 12]; >> [Q,R]=qr(A) >> [Q,R,E]=qr(A)
Cholesky三角分解
• chol R = chol(A) %如果A为n阶对称正定矩阵,则存 在一个实的非奇异上三角阵R,满足R‘*R = A;若A 非正定,则产生错误信息。 [R,p]=chol(A) %不产生任何错误信息,若A为 正定阵,则p=0,R与上述格式得到的结果相同;若A 非正定,则p为正整数,R是有序的上三角阵;如果A为 满秩矩阵,则R为一个阶数为q=p-1的上三角阵,且满 足R'R=A(1:q,1:q)
范数
norm 当A为向量时,求范数所采用的规则稍有差别: norm(A,p) 可得到sum(abs(A).^p)^(1/p) (对任意的p,即1≤p≤∞)。 norm(A) 可得到norm(A,2)。 norm(A,inf) 可得到max(abs(A))。 norm(A,-inf)可得到min(abs(A))。
>> clear >> A=[16 2 3 13;5 11 10 8;9 7 6 12; 4 14 15 1]; >>format long >>B=inv(A) >>norm(A*B-eye(size(A))) %范数检验
矩阵的广义逆
pinv pinv(A): 默认精度下求矩阵的广义逆 pinv(A,tol):给定精度下求矩阵的广义逆 注意: A可以不是方阵
矩阵M为矩阵的A的广义逆条件:
(1)AMA=A (2)MAM=M (3)AM,MA均为Hermite对称矩阵(第i 行第j 列
的元素都与第j 行第i 列的元素的共轭相等 )
记:M=A+
矩阵的广义逆
16 2 3 13 5 11 10 8 的逆矩阵. 例:求矩阵 A 9 7 6 12 4 14 15 1
正交矩阵
•orth B=orth(A) %返回矩阵A的正交基,B的列与A的列有相同
的空间,B的列向量是正交向量,满足B’*B= eye(rank(A)), B的列数是A的秩。
Hale Waihona Puke Baidu
A=[4 0 0;0 3 1;0 1 3]; B=orth(A) Q=B'*B norm(Q-eye(rank(A))) %检验 norm(Q'-eye(rank(A))) %检验
矩阵的逆
如果矩阵 A 是方阵且是非奇异的(可逆), 可以用命令 inv(A) 求得A的逆矩阵. inv inv(X):X为方阵 注意: X可以是数值矩阵 也可以是符号矩阵 若X为奇异阵或近似奇异阵,将给出警告信息。
1 1 2 0 1 1 例:求矩阵 A 2 1 0
特征值和特征向量
1 1 0 4 3 0 A 例:求矩阵的特征值和特征向量 1 0 2
>> >> >> >> >> >>
clear A=[-1 1 0;-4 3 0;1 0 2]; eig(A) [V,D]=eig(A) [V,D]=eig(A,'nobalance') [V,D]=eigs(A)
T
mn
定理 设A R mn,秩( A) r , 则存在m阶正交阵U 和n阶正交阵V,使得 r 0 T U AV 0 0 其中 r diag ( 1 , 2 ,..., r ), 且 1 2 ... r 0 r 0 T T 称A U V U V 为矩阵A的奇异值分解, 0 0 r 0 为矩阵A的奇异值矩阵。 0 0
>> A=[-1 1 0;-4 3 0;1 0 2]; >> [L,U]=lu(A) >> [L,U,P]=lu(A)
矩阵的三角分解
正交分解法(qr分解) [Q,R]=qr(A) %产生一个正交矩阵Q和一个上三角矩 阵R,使之满足X=QR。 [Q,R,E]=qr(A) %产生一个正交矩阵Q、一个上三角 矩阵R以及一个置换矩阵E,使之满足XE=QR。实现QR 分解后,线性方程组Ax=b的解R\(Q\b)x=E(R\(Q\b))
>> clear >> A=[16 2 3 13;5 4 14 15 1]; >> format long >> B=pinv(A) >> A*B >> norm(A*B*A-A) >> norm(B*A*B-B) >> pinv(B)
11 10 8;9 7 6 12;
%检验 %范数检验 %范数检验 %检验
数学实验
线性代数的计算机求解
利用MATLAB求行列式
在MATLAB中我们只需借助函数det就可以 求出行列式的值,其格式为 det det(X):X为方阵
2 0 1 1 3 0 0 2 的行列式的值. 1 1 1 3 例1:求矩阵A 0 1 1 2
>> clear >> A=[2 0 -1 0;1 3 1 -2; 0 1 3 -1;-1 2 0 1]; >> det(A)
矩阵的三角分解
高斯消去法(LU矩阵分解法) [L,U] = lu(A)
%U为上三角阵,L为下三角阵或其变换 形式(行交换),满足LU=A。这里的矩阵A必须是方阵。
[L,U,P] = lu(A) %U为上三角阵,L为下三角阵,P 为单位矩阵的行变换矩阵,满足LU=PA。
1 1 0 例:分解矩阵 A 4 3 0 1 0 2
a
1 b 0
0 1 c
0 0 1
例2:计算行列式 >> >> >> d]; >>
1 0
0 1
1 d
clear 声明变量 syms a b c d A=[a 1 0 0;-1 b 1 0;0 -1 c 1;0 0 -1 DA=det(A) 生成符号矩阵
程序说明:函数det也可以用于计算含有变量的行列 式.
矩阵A的奇异值个数等于矩阵A的列数,A的非零 奇异值个数等于rank(A)
[U,S,V]=svd(x) %返回3个矩阵,使得X=U*S*V’ S为与X相同维数的矩阵,且其对角元素为非负递减. S = svd(A) %返回奇异值组成的向量。 >> >> >> >> A=[8 5;7 3;4 6] [U,S,V]=svd(A) A1=U*S*V norm(A1-A) %检验
范数
norm n=norm(A) %返回矩阵A的最大的奇异值,max(svd(A)) n=norm(A,p) %根据p的不同,返回不同的值 p=1时,是1范数,即矩阵A按列求和的最大值, max(sum(abs(A)))。 p=2时,是最常用的2范数,是矩阵A的最大奇异 值,即max(svd(A)),等同于norm(A)。 p=inf时,是无穷(∞)范数,为矩阵A按行求和的 最大值,max(sum(abs(A')))。 p='fro'时,得到矩阵A的Frobenius范数,即 sqrt(sum(diag(A'*A)))。
矩阵的奇异值分解
矩阵的奇异值分解在最优化问题、特征值问题、 最小二乘问题、广义逆矩阵问题及统计学等方面都有重
要应用
定义 设A R ,若A A的特征值为 1 2 ... r r 1 ... n 0 称 i i ( i 1, 2,..., r )为矩阵A的奇异值.
Cholesky三角分解
• chol >> X=pascal(4) >> [R,p]=chol(X) %产生4阶pascal矩阵
>> A=[7 5 5 8; 5 6 9 7;5 9 9 0;8 7 0 1] >> [R,p]=chol(X) >> norm(A*A'-A'*A) %判定是否为正定阵