[問題] 關於一則運算式問題~已回收

看板MATLAB作者 (^^)時間15年前 (2010/08/22 15:39), 編輯推噓6(6024)
留言30則, 6人參與, 最新討論串1/2 (看更多)
不好意思各位前輩,請問一個問題 假設所有V、V1、...、V50 都是一個1400*1的向量, 然後公式如下,求出所有C1、...C50!!! 請問一下,matlab有指令可以處理此運算嗎!?還是該如何寫!? [ ] [ ] [ ] [ ] [ V ] = C1[ V1 ] + C2[ V2 ] + . . . +C50[ V50 ] [ ] [ ] [ ] [ ] 不好意思,因為剛接觸matlab,所以很多指令都不太熟析! 因為這是關於特徵向量和特徵值的問題, V是一張人臉的向量,V1~V50是利用eig求出來的前50個特徵值最大的向量。 然後我要求C1~C50就卡關,再麻煩各位解答~~ 感恩+謝謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.40.159.155

08/22 19:15, , 1F
matlab 都可以打成 matlba
08/22 19:15, 1F

08/22 19:16, , 2F
最近有一個跟 你 有相同的問題
08/22 19:16, 2F

08/22 19:20, , 3F
50個未知數 1400個方程式..矛盾方程式.
08/22 19:20, 3F

08/22 19:50, , 4F
overdetermined system==> curve fitting problem
08/22 19:50, 4F
※ 編輯: holyqoo 來自: 114.40.159.155 (08/22 21:15)

08/22 21:15, , 5F
不好意思,打錯字^^"
08/22 21:15, 5F

08/22 21:49, , 6F
所以這個算是屬於無解矛盾的方程式!?
08/22 21:49, 6F

08/22 21:58, , 7F
可以利用 eigenvectors 之間的正交性:
08/22 21:58, 7F

08/22 21:59, , 8F
<V,V_i> = C_i*<V_i,V_i> , 直接算出 C_i
08/22 21:59, 8F

08/22 22:01, , 9F
如果 v 不在 span(v1,v2,...,v50)的column space 會沒有解
08/22 22:01, 9F

08/22 22:02, , 10F
不過可以求得 v 在 span(v1,...,v50)的投影
08/22 22:02, 10F

08/22 22:03, , 11F
7樓你是在說 singular value decomposition之類的東西嗎 ?
08/22 22:03, 11F

08/22 22:06, , 12F
就 m大你說的投影。 原po的做法是把前50個最重要的成分
08/22 22:06, 12F

08/22 22:07, , 13F
擷取出來,然後丟掉不重要的資訊,所以算出來無解是很
08/22 22:07, 13F

08/22 22:07, , 14F
正常的。
08/22 22:07, 14F

08/22 22:36, , 15F
感謝d大和m大的解說,我可能要在吸收一下...
08/22 22:36, 15F

08/22 22:36, , 16F
因為數學觀念這部份真的不熟~><
08/22 22:36, 16F

08/22 22:38, , 17F
所以d大的意思是我各別求C? C_i = <V,V_i>/<V_i,V_i>!?
08/22 22:38, 17F

08/22 22:52, , 18F
是的 :)
08/22 22:52, 18F

08/23 04:17, , 19F
我記得MATLAB有相關的數值方法函數..很快就算出來了
08/23 04:17, 19F

08/23 04:18, , 20F
PINV?
08/23 04:18, 20F

08/23 04:19, , 21F
這只有數值解而已..
08/23 04:19, 21F

08/23 13:19, , 22F
感謝a大,我在去研究一下pinv的指令~^^~
08/23 13:19, 22F

08/23 13:38, , 23F
可以把 pinv 打成 A\B 來表示這個 function
08/23 13:38, 23F

08/23 13:39, , 24F
不是很確定 斜線 是 \ 還是 /
08/23 13:39, 24F

08/23 21:46, , 25F
不好意思,請問一下m大,這邊A和B分別指示什麼!?
08/23 21:46, 25F

08/24 21:51, , 26F
一般是AX=B X=inv(A)*B A不是方陣時X=pinv(A)*B
08/24 21:51, 26F

08/24 21:52, , 27F
沒有詳細研究過~~有錯趕緊指證@@
08/24 21:52, 27F

08/24 22:10, , 28F
上數值的課說盡量不要用 inverse
08/24 22:10, 28F

08/24 22:57, , 29F
09之後的matlab 用inv都會跳建議出來要你不要用 XD
08/24 22:57, 29F

08/24 23:03, , 30F
inv(A)出現錯誤是因為det(A)太小的關西嗎?
08/24 23:03, 30F
文章代碼(AID): #1CSDHEMC (MATLAB)
文章代碼(AID): #1CSDHEMC (MATLAB)