作者candy88257 (阿泰斯)
看板MATLAB
標題Re: [討論] 奇異矩陣A,求AX=0的X (A為方陣)
時間Thu Apr 18 19:13:33 2013
※ 引述《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
1F:→ candy88257:剛剛測試了一下,不知您說的將特徵值裡的最接近0的值改 04/18 20:22
2F:→ candy88257:成0是怎麼改? 04/18 20:22
3F:→ candy88257:我是這樣: 04/18 20:23
4F:→ candy88257:asd=eig(Mx1);[val,ind]=min(abs(real(asd)));asd(ind) 04/18 20:23
5F:→ candy88257:=0 04/18 20:23
6F:→ candy88257:檢查了一下真的都有把最接近0的那個特徵值改為0了 04/18 20:24
7F:→ candy88257:但用null還是一樣一直跑出"Empty sym", 04/18 20:26
8F:→ candy88257:把矩陣先改成double後,null是有比較多值跑出來了 04/18 20:27
9F:→ candy88257:但是還是會有很多出現"Empty matrix",很困擾 04/18 20:27
10F:→ candy88257:請問這要怎麼弄? 04/18 20:27
11F:→ candy88257:我發現好像[U,S,V]=SVD(A),取V最後一行好像可以 04/18 21:02