施密特正交化

2022-06-10 03:00:10 字數 1020 閱讀 6138

對於一組向量,有時候我們需要對其進行正交化處理,也就是說,該組向量中任意兩個向量都是互相垂直的。那麼,要怎麼做呢?

假設只有兩個向量,\(\vec v_0\)和\(\vec v_1\),正交化的幾何示意圖如下所示。

假設正交化之後的向量為\(\vec w_0\)和\(\vec w_1\),那麼由圖可知,可得\(\vec w_0 = \vec v_0\),且有:

\(\vec w_1 = \vec v_1 - \dfrac\)

這裡減去的部分是向量\(\vec v_1\)在向量\(\vec w_0\)上的投影。然後將\(\vec w_0\)和\(\vec w_1\)進行歸一化,就得到了最終的結果。

那麼,如果有三個向量,\(\vec v_0\),\(\vec v_1\),\(\vec v_2\),這種情況要如何處理呢?同樣地,正交化的幾何示意圖如下所示。

假設正交化之後的向量為\(\vec w_0\),\(\vec w_1\),\(\vec w_2\),由圖可知,可得\(\vec w_0 = \vec v_0\),且有:

\(\vec w_1 = \vec v_1 - \dfrac\)

\(\vec w_2 = \vec v_2 - \dfrac - \dfrac\)

從圖中可以看出向量\(\vec w_2\)即為向量\(\vec v_2\)減去在\(\vec w_0\)和\(\vec w_1\)上的投影。將這三個向量進行歸一化即可得到最終的結果。

那麼,假如我們有一組向量\(\\),要想求得它們正交化後的向量組\(\\),步驟如下:

令\(\vec w_0 = \vec v_0\);

計算\(\vec w_i = \vec v_i - \sum_^ \dfrac;1 \leq i \leq n\);

將得到的\(\\)進行正交化。

列正交化 施密特正交化方法

a1 1 1 0 0 a2 1 0 1 0 a3 1 0 0 1 a a1 a2 a3 u a m,n size u y u y 1 y 1 norm y 1 for k 2 n y k u k endfor k 2 n for j k n y j y j y k 1 y j y k 1 endp1...

向量的施密特正交化

先看乙個例子 設三個向量分別為 1 2 3 1,1,0 t 1,0,1 t 1,1,1 t 那麼對 1 2 正交化 1 2 1 1 1,0 t 2 2,1 1,1 1 1,0 1 t 1 1 0 1 1 01 1 1 1 0 0 1,1,0 t 1 0,1 t 12 1 1,0 t 12 1 1,2...

徹底理解施密特正交化

在遊戲程式設計中我們經常會用到施密特正交化,比如求解法線的切空間,我們需要把一組非正交的座標系 轉換為正交的座標系 n b t 施密特正交化如何理解呢?我們先來看看官方給出的解釋。施密特正交化 schmidt orthogonalization 是求歐氏空間正交基的一種方法。從歐氏空間任意線性無關的...