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 = y(:,k)/norm(y(:,k));
y(:,k) = p1;
end對矩陣a的列向量,按照順序逐步正交化,採用施密特方法。
疑問1.施密特正交化首選第1列,再選2列,這樣正交,如果選擇的順序不一樣,得到的結果是不是也不一樣?
回答:是的,可以選擇0向量較多的向量作為第1個向量,再選擇0向量第2多的向量作為第2個向量,這樣計算量小。
2.用乙個矩陣,採用不同的順序正交化,最後的結果之間有什麼關係,只是列向量產生的空間相同嗎?
回答:應該只是列向量產生的列空間相同,還可以使用matlab函式orth,得到列空間相同的正交矩陣。
a =1 1 -1
1 0 0
0 1 0
0 0 1
結果yy =
參考文獻 蔡改香:關於施密特正交化的一點注釋與應用
施密特正交化
對於一組向量,有時候我們需要對其進行正交化處理,也就是說,該組向量中任意兩個向量都是互相垂直的。那麼,要怎麼做呢?假設只有兩個向量,vec v 0 和 vec v 1 正交化的幾何示意圖如下所示。假設正交化之後的向量為 vec w 0 和 vec w 1 那麼由圖可知,可得 vec w 0 vec ...
向量的施密特正交化
先看乙個例子 設三個向量分別為 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 是求歐氏空間正交基的一種方法。從歐氏空間任意線性無關的...