0

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 に nan がないことを確認しました。マトリックスのサイズは 63521 x 63521 です

4

1 に答える 1

1

入力疎行列 rYbus に NaN があるかどうかを確認しましたか? 私の記憶が正しければ、svds はエラーではなく空の行列を返すことがあります。

もう 1 つの考えられるエラーは、rYbus のサイズです。大きさは?

于 2013-07-23T00:44:53.443 に答える