看板 MATLAB 關於我們 聯絡資訊
※ 引述《YoursEver (銀英傳出webgame!?)》之銘言: : ※ 引述《candy88257 (阿泰斯)》之銘言: : : 今有一n*n的方陣A : : 有另一矩陣為X,其為n*1的矩陣 : : 當AX=0時 : : X有解的話,det(A)一定要等於0 : : 而假設矩陣裡面有一個變數y : : 故det(A)=0為一個以y為變數的方程式 : : 求出y之後代回矩陣 : : 然後想求X : : 請問要怎麼做? : 如果這樣想: : (0) 若 X 有零向量以外的解, 代表X落在A的null space裡面. : (1) 對n*n的方陣A而言, 若 det(A) 為零, : 則代表至少有1個eigenvalue為0,最多n-1個. : 因此,不管你的y是多少, : 假設你已經知道A,那麼 : (a) 對A做 eigen-decomposition : (b) 若A有為0的eigenvalue,從null-space中得到X. 終於有空來研究程式了 按照您的說法我測試了一下 發現我矩陣找出來的特徵值有虛數 且有一個明顯很接近0的: - 0.0000000000000019656806783182646671391844522288 + 0.000000000000026441276486350376028818747012783*i 其實部是負的,按照您的說法,就是要把這個跟令為0嗎? 能否不令它為0,然後求出對應於它的 X ? 再次感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.130.17.157
candy88257:剛剛測試了一下,不知您說的將特徵值裡的最接近0的值改 04/18 20:22
candy88257:成0是怎麼改? 04/18 20:22
candy88257:我是這樣: 04/18 20:23
candy88257:asd=eig(Mx1);[val,ind]=min(abs(real(asd)));asd(ind) 04/18 20:23
candy88257:=0 04/18 20:23
candy88257:檢查了一下真的都有把最接近0的那個特徵值改為0了 04/18 20:24
candy88257:但用null還是一樣一直跑出"Empty sym", 04/18 20:26
candy88257:把矩陣先改成double後,null是有比較多值跑出來了 04/18 20:27
candy88257:但是還是會有很多出現"Empty matrix",很困擾 04/18 20:27
candy88257:請問這要怎麼弄? 04/18 20:27
candy88257:我發現好像[U,S,V]=SVD(A),取V最後一行好像可以 04/18 21:02