MATLAB下稀疏矩阵的奇怪行为

时间:2013-07-23 00:40:32

标签: matlab matrix sparse-matrix

我在MATLAB中得到了这个63521x63521实数稀疏对称矩阵,由于某种原因,它似乎对某些命令表现得很奇怪。

我不确定矩阵文件中是否存在“缺陷”或我使用的方式 MATLAB的命令。

考虑以下脚本。我已经指出了每个步骤的输出。

  % Gives sparsity shown as expected, so this works fine
  spy(rYbus) 

  % I want the top 3 singular values of rYbus. But this line Returns empty matrix! Why/
  S = svds(rYbus,3);

     % Set exact answer and rhs and solve the linear system with iterative and direct method
     b_exact       = ones(size(Ybus,1),1); 
     rhs           = rYbus*b_exact      ;  


    % Following line gives Warning: Matrix is singular, close to singular or badly scaled.
    % Results may be inaccurate. RCOND = NaN. 
    % > In Ybustest at 14. 
     b_numerical_1 = rYbus\rhs;  

    % Even for a single GMRES iteration b_numerical_2 is a vector of Nans.  Why?                          
    b_numerical_2 = gmres(rYbus,rhs,[],[],1);  

有人能指出可能出错的地方吗?

我已经使用“isnan”函数来验证矩阵rYbus 没有任何nans。矩阵的大小为63521 x 63521

1 个答案:

答案 0 :(得分:1)

您是否检查过您的输入稀疏矩阵rYbus是否有任何NaN?如果我没记错的话,svds会给你一个空矩阵而不是错误。

另一个可能的错误是rYbus的大小。它的大小是多少?