作者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