Re: [討論] 奇異矩陣A,求AX=0的X (A為方陣)

看板MATLAB作者 (阿泰斯)時間13年前 (2013/04/18 19:13), 編輯推噓0(0011)
留言11則, 1人參與, 最新討論串3/3 (看更多)
※ 引述《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

04/18 20:22, , 1F
剛剛測試了一下,不知您說的將特徵值裡的最接近0的值改
04/18 20:22, 1F

04/18 20:22, , 2F
成0是怎麼改?
04/18 20:22, 2F

04/18 20:23, , 3F
我是這樣:
04/18 20:23, 3F

04/18 20:23, , 4F
asd=eig(Mx1);[val,ind]=min(abs(real(asd)));asd(ind)
04/18 20:23, 4F

04/18 20:23, , 5F
=0
04/18 20:23, 5F

04/18 20:24, , 6F
檢查了一下真的都有把最接近0的那個特徵值改為0了
04/18 20:24, 6F

04/18 20:26, , 7F
但用null還是一樣一直跑出"Empty sym",
04/18 20:26, 7F

04/18 20:27, , 8F
把矩陣先改成double後,null是有比較多值跑出來了
04/18 20:27, 8F

04/18 20:27, , 9F
但是還是會有很多出現"Empty matrix",很困擾
04/18 20:27, 9F

04/18 20:27, , 10F
請問這要怎麼弄?
04/18 20:27, 10F

04/18 21:02, , 11F
我發現好像[U,S,V]=SVD(A),取V最後一行好像可以
04/18 21:02, 11F
文章代碼(AID): #1HRzLWmV (MATLAB)
文章代碼(AID): #1HRzLWmV (MATLAB)