7. 正交

正交基 和 标准正交基

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

你可能感兴趣的:(7. 正交)