# 线性代数的常用操作
# 1.向量的内积
- 定义
向量的内积即点乘,其定义如下:
向量
向量
和 的内积公式表示为:
- 几何意义
两个向量之间的夹角,向量 在向量 上的投影。
# 2.向量的外积
- 定义
式中
即:
- 几何意义
外积的结果是一个向量,该向量的模等于向量
# 3.正交向量
向量的内积等于两个向量长度乘上向量之间的夹角,当两个向量之间夹角的余弦值等于0时,在二维空间,我们称之为垂直,在高维空间中我们称之为正交。
因此正交向量是内积为零的向量。
# 4.正交向量组
正交向量组是指一组两两正交且非零的向量。
如果0
系数
证明很简单,只需要左右同时乘以一个
# 5.向量空间的基与维数
向量空间的定义,向量空间n
维向量
设
线性无关; 中任一向量都可由 线性表示,也就是可由它们生成整个空间。
那么,向量组
对于给定向量空间,虽然会有很多组基,但空间中的任一组基都有相同的向量的数量。
基向量可能不同,但基向量的个数一定相同。
把正交向量组的概念和基的概念融合,设向量组
对于一个向量
即对于向量
若已知向量空间
可以使用施密特算法对基进行规范正交化,该算法公式可写成:
上式中
将
# 6.正交矩阵
正交矩阵矩阵是转置等于逆的方阵,即满足
三个性质,
,且都是正交矩阵,A
和B
都是正交矩阵,并且它们阶数一样,那么AB
也是正交矩阵A
是正交矩阵,向量y
经过A
变换之后行列式保持不变
# 7.反对称矩阵
反对称矩阵是一个方阵,其转置矩阵和自身的加法逆元相等,即
# 8.齐次坐标与齐次变换矩阵
简而言之,齐次坐标就是用N+1维来代表N维坐标。最后新增的一维值为1
或0
(无穷远处的点)。
齐次(homogeneous)从字面上解释是“次数相等”的意思。使用齐次坐标的方便之处在于,对笛卡尔点齐次坐标的任何标量的乘积仍然表示同一个笛卡尔点。齐次坐标有规模不变性。因此被称为齐次坐标。如齐次坐标
# 9.相似矩阵
A和B都是n×n的方阵,若存在可逆矩阵M,使得
如果A有n个线性无关的特征向量,则A可以对角化为
对于
(1)反身性:A~A
(2)对称性:若A~B,则B~A
(3)传递性:若A~B,B~C,则A~C
(4)若A~B,则二者的特征值相同、行列式相同、秩相同、迹相同。
(5)若A~B,且A可逆,则B也可逆,
# 10.相似对角化
如果一个方阵
矩阵
的相似对角化为
使用numpy
计算
from numpy import linalg as LA
import numpy as np
mat = np.array([[1, -2],[-2, 1]])
W, V = LA.eig(mat)
print(W,V)
"""output
[ 3. -1.]
[[ 0.70710678 0.70710678]
[-0.70710678 0.70710678]]
"""
对角矩阵中的元素是
相似对角化的好处:
- 1)相似对角化使得同一个线性变换表达方式变的简单
图片引用自https://zhuanlan.zhihu.com/p/138285148(opens new window)
- 2)通过相似对角化(实际为坐标轴旋转)可以消去二次型中的交叉项
图片引用自https://zhuanlan.zhihu.com/p/138285148(opens new window)
# 11.方阵的特征分解
对于
当矩阵
# 12.矩阵的奇异值分解SVD
当给定一个大小为
P的列向量称为矩阵A的左奇异向量,Q中的列向量称为矩阵A的右奇异向量,矩阵
U\V
分别有什么几何意义呢?后面再补充。
奇异值分解的几何含义为:对于任何的一个矩阵,我们要找到一组两两正交单位向量序列,使得矩阵作用在此向量序列上后得到新的向量序列保持两两正交。
考虑方阵可以进行特征值分解,常规矩阵就无法进行特征分解,就是奇异值分解,称为主特征值分解更好理解。
在奇异值分解中,较大的奇异值会决定原矩阵的“主要特征”,可以使用奇异值分解的低秩逼近来截取原矩阵中的主要成分(opens new window) 。numpy.linalg
中提供了
from numpy import linalg as LA
import numpy as np
mat = np.array([[4, 4],[-3, 3]])
u,s,v = LA.svd(mat)
print(u)
print(s)
print(v)
"""output
[[-1.00000000e+00 0.00000000e+00]
[ 3.70074342e-18 1.00000000e+00]]
[5.65685425 4.24264069]
[[-0.70710678 -0.70710678]
[-0.70710678 0.70710678]]
"""
# 12.1 SVD求齐次矩阵方程的最小二乘解
这里用到了几个性质,
一个是向量的二范数的定义,以
\vec{v}=\begin{bmatrix}x_1\\x_2\end{bmatrix}为例,
因此乘以
求解超定方程,相当于在
更进一步,根据SVD
定义的伪逆的概念可以直接求解最小二乘解。
# 13.满秩分解
取自《矩阵论》(opens new window) p179
设A为
设
例如求矩阵A的满秩分解:
A进行初等行变换化为行标准形为:
取A的前三列组成矩阵
再取A的行标准形的前三个非零行,组成矩阵
可以求得
# 14.Pseudo-Inverse Matrix
1920年摩尔提出广义逆的概念,1955年以4个方程的形式给出了广义逆矩阵的定义。
定义:设
则称G为A的加号逆,或伪逆,或摩尔彭斯逆(Moore–Penrose pseudoinverse
),通常记为
对于任意
伪逆的求法:
- (1)如果A为满秩方阵,则
- (2)如果
, ,则
- (3)如果A为行满秩矩阵,
- (4)如果A为列满秩矩阵,
- (5)如果A为降秩的
矩阵,可用满秩分解求 ,即将A满秩分解为 ,其中B列满秩,C行满秩,且
则有:
这里:
from numpy import linalg as LA
import numpy as np
A = np.array([[1,1,0,1,0],[0,1,1,1,1],[1,0,1,1,0]])
LA.pinv(A)
"""output
array([[ 0.33333333, -0.33333333, 0.33333333],
[ 0.5 , 0.25 , -0.5 ],
[-0.5 , 0.25 , 0.5 ],
[ 0.16666667, 0.08333333, 0.16666667],
[-0.16666667, 0.41666667, -0.16666667]])
"""