正交基 和 标准正交基
2个向量相互垂直,即两个向量正交
正交向量组: 一组向量,如果两两正交,则成为正交向量组。
正交非零向量组一定线性无关。
image.png
N 维空间中,任意N个线性无关的向量,一定是这个N维空间的基
那么这N个非零正交向量一定是这N维空间的基。
所以这就是正交基。
image.png
一维投影
image.png
image.png
高维投影
image.png
格拉姆-施密特
image.png
实现格拉姆-施密特
from .Vector import Vector
from .Matrix import Matrix
from .LinearSystem import rank
def gram_schm_process(basis):
matrix = Matrix(basis)
assert rank(matrix) == len(basis)
res = [basis[0]]
for i in range(1, len(basis)):
p = basis[i]
for r in res:
p = p - basis[i].dot(r) / r.dot(r) * r
res.append(p)
return res
标准正交矩阵
image.png
image.png
image.png
矩阵的QR分解
image.png
image.png
image.png
实现矩阵的QR分解
def qr(A):
assert A.row_num() == A.col_num(), "A must be square"
basis = [A.col_vector(i) for i in range(A.col_num())]
P = gram_schm_process(basis)
Q = Matrix([v / v.norm() for v in P]).T()
R = Q.T().dot(A)
return Q,R
总结
正交基和标准正交基
正交非零向量组一定线性无关,并且也是空间的一组基
给定空间的一组基,找到这个空间的一组正交基
标准正交矩阵,Q的逆 = Q的转置
矩阵的QR分解
最小二乘法
image.png