主题:MATLAB解线性方程时,结果出现nan,求问怎么回事?
A*x=B, A是一个奇异矩阵而且是方阵对称的(32*32),B是32*1, 我用 [L,U] = lu(A); y = L\B; x = U\y; X最后出来好多NAN. 系统给出WARNING: Warning: Matrix is singular to working precision 然后我直接用x = A\B; 结果系统仍然给出WARNING: Warning: Matrix is singular to working precision, 结果仍然有NAN,请教各位有经验的高手,会是个什么样的错误? 我的A矩阵里的数字是复数,而且数量级差别很大,跨度从10e5到10e40。还有正有负。有没有可能是matlab精度的问题,比如我要是用fortran可能这个方阵的det就不是0了?比如很小的数在matlab看就把它当做0了。比如0/0,也许不是0/0,只是一个很小的数字,matlab当做0,有什么办法让matlab对数字更加敏感精确? |