因式分解
行列式、逆、秩
- det(A) 行列式
- rank(A) 矩阵A的秩
- inv(A) 矩阵A的逆矩阵,非方针和奇异矩阵(不是满秩的矩阵)会报错
- pinv(A) 求A的伪逆矩阵,是逆矩阵的广义化。
- trance(A) 求矩阵A的迹,就是对角线元素之和
伴随矩阵求法:
A* = compan(B)
A* = inv(A) * det(A)
Cholesky 因式分解
正定矩阵定义:A是n阶方阵,如果对任何非零向量x,都有xTAx>0,其中xT 表示x的转置,就称A正定矩阵。
Cholesky 因式分解是将A分解为一个上三角矩阵R和其转置矩阵的乘积。对应表达式:
A = R’R
条件:正定矩阵
>> a = pascal(6)%初始化
>> R = chol(a)
R =
1 1 1 1 1 1
0 1 2 3 4 5
0 0 1 3 6 10
0 0 0 1 4 10
0 0 0 0 1 5
0 0 0 0 0 1
>> R'* R == a%证明其等价关系
ans =
6×6 logical 数组
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
LU因式分解
LU分解用于简化大矩阵行列式的计算过程、矩阵求逆和连立方程组的求解
注意:结果不唯一
调用:
[L,U] = lu(A)
对于Ax = b的求解
x = U(L\b)
‘\’是左除符号,左除左边的矩阵
验证:
>> a = pascal(3)
a =
1 1 1
1 2 3
1 3 6
>> [L U] = lu(a)
L =
1.0000 0 0
1.0000 0.5000 1.0000
1.0000 1.0000 0
U =
1.0000 1.0000 1.0000
0 2.0000 5.0000
0 0 -0.5000
>> L * U
ans =
1 1 1
1 2 3
1 3 6
QR因式分解
若A为正交矩阵,则A’A = 1
QR分解即为正交分解,将A分为一个单位正交矩阵和上三角矩阵
A = QR
验证
>> a = magic(3)
a =
8 1 6
3 5 7
4 9 2
>> [Q R] = qr(a)
Q =
-0.8480 0.5223 0.0901
-0.3180 -0.3655 -0.8748
-0.4240 -0.7705 0.4760
R =
-9.4340 -6.2540 -8.1620
0 -8.2394 -0.9655
0 0 -4.6314
>> Q * R
ans =
8.0000 1.0000 6.0000
3.0000 5.0000 7.0000
4.0000 9.0000 2.0000
>>
范数
范数是一个标量,用来衡量向量的长度。
范数 != 向量的元素个数
函数 | 含义 | 数学含义 |
---|---|---|
norm(X) | 欧几里得范数 | 根号下xk绝对值的平方和 |
norm(X,inf) | 求♾范数 | x绝对值最大值 |
norm(X,1) | 求1范数 | xk绝对值的和 |
norm(x,p) | p范数 | p可以是任意值 |
>> x = [2 4 5]
x =
2 4 5
>> norm1 = norm(x)
norm1 =
6.7082
>> norm2 = norm(x,1)
norm2 =
11
>> norm3 = norm(x,inf)
norm3 =
5
>> norm4 = norm(x,4)
norm4 =
5.4727
矩阵的特征值和奇异值
E = eig(A) 求出A的全部特征值,构成向量E
[V,D] = eig(A)求出A的全部特征值,构成D,特征向量,构成V
>> A = [1,-3;2,2/3]
A =
1.0000 -3.0000
2.0000 0.6667
>> [V,D] = eig(A)
V =
0.7746 + 0.0000i 0.7746 + 0.0000i
0.0430 - 0.6310i 0.0430 + 0.6310i
D =
0.8333 + 2.4438i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.8333 - 2.4438i
求解x4 -2x3 +3x2 +4x-5 = 0 的根
思路:伴随矩阵的特征根即为方程的根。
>> B = [1,-2,3,4,-5]
B =
1 -2 3 4 -5
>> A = compan(B)
A =
2 -3 -4 5
1 0 0 0
0 1 0 0
0 0 1 0
>> C = eig(A)
C =
1.1641 + 1.8573i
1.1641 - 1.8573i
-1.1973 + 0.0000i
0.8691 + 0.0000i
奇异值
如果存在两个矢量 u , v u,v u,v以及一个常数 s s s使得矩阵A满足
A v = s u Av = su Av=su
A ′ u = s v A'u = sv A′u=sv
则称 s s s为奇异值, u , v u,v u,v为奇异矢量.
奇异值分解是一种正交矩阵分解法
调用
[U,S,V] = svd(A)
A = U * S * V’
概率与数理统计
sum函数,和
用于求矩阵列向量的和
B = sum(A) 若A为向量,返回元素和,若A为矩阵,返回列向量和(存放在一个行向量中)
B = sum(A,dim) 对dim维度求和
comsum函数,累计和
B = comsum(A) 同上,返回的是一个加和,
B = comcum(A,dim)同上
prod函数,积
B = prod(A) 如果A是向量,返回所有元素的积,如果A是矩阵,返回各列元素的积
B = prod(A,dim) 同上。
comprod 函数,累积
同上
sort函数
B = sort(A)对A进行默认升序排序。输入A可以是向量、矩阵和字符串
B = sort(A,dim) 对第dim维度进行升序排列
B = sort(…,mode) mode是升序降序’ascend’ ‘descend’
[B,IX] = sort(A,2) 排序并且返回下标
sortrows函数
B = sortrows(A) 对A进行升序排列
B = sortrows(A,column) 基于column列进行升序排列
[B,index] = sortrows(A…) 同时返回索引表
max和min函数
max(A) 如果是向量 返回最大的元素,如果是矩阵,返回列向量最大
max(A,B) 返回每个元素为止A,B的大的那个
[C,I] = max() 同时返回下标
max(A,[],dim)返回A中dim维度的最大值,1 是列2 是行
mean 函数
M = mean(A) 求平均值
M = mean(A,dim)
median函数
求中值
median(A)
median(A,dim)
std函数
标准差
(1) s = ⟮ 1 n − 1 ∑ i = 1