正統的正交投影公式是 proj = (<v,u1>/<u1,u1>)*u1 + (<v,u2>/<u2,u2>)*u2,我在這邊稱為公式A
但隨後書本上又教了一個proj = A(A^T*A)^-1*A^T b ,我在這邊稱為公式B
接下來問題來了,公式A所取的向量必須要正交,也就是 <u1,u2> = 0,
若沒正交則必須作GS,然後才能帶入A公式 ,則B公式應該是沒規定u1,u2要正交, 可以直接令這兩個向量為矩陣A, 就可以直接代入作運算, 可是我一直不知道使用哪一個公式的時機,
除非題意有說要算least square我才明確知道用B公式,所以這也代表著說算least square problem的時候不能用A公式嗎????
今天把這類題目都拿來試一下,解答用A公式解的我就用B公式解,反之.
然後我發現答案都不會跟正解一樣(崩潰...明明都叫proj阿...)而且還發現用B公式算(A^T*A)^-1的時候,
發現det(A) = 0... ,所以整個答案proj = 0...., 可是最終答案不是0(= ="),可是把A矩陣行列互換後就會算出正常的數值(還是跟正解不一樣),依這樣看的話是我算出det(A)=0的時候擺的是正確的嗎????所以這裡我又遇到了困難,若題目給向量我應該怎麼擺???
拜託助教跟各位高手解答了,先謝謝大家~感恩
4 則留言:
翻了翻筆記發現老師上課有說過公式B只能用在
1.歐式空間
2.標準內積
3.投影平面w為R(A)
不知道有沒有解答到您的問題
如同學所說, 若是在歐式空間標準基底, 要算投影向量, 那兩種方法都可以用, 但若不是歐式空間標準基底, 矩陣版就不能用了, 還有算的時候要注意一下:
1. 在代正交投影公式時(p7-60), 記得要取orthogonal basis, 這個感覺你比較沒問題
2. 利用矩陣版正交投影公式時, 不能行列隨便擺, 這樣出來的結果很可怕的, 只能擺在行, 並且如果你要直接算 A(A^T*A)^-1*A^T b, 那這裡的 A 不用行orthogonal, 可是一定要行獨立, 否則(A^T*A)^-1就不會存在, 如果不為行獨立, 則必須要用normal equation先解出 x (p7-73), 再來算出 Ax
細節還可以參考書上p7-70還有p7-73的注意事項
非常感謝助教和HOG的解答
那假如是行獨立的話,也可以先解x再算出Ax吧???
是滴
張貼留言