2013-07-23 56 views
0

我在MATLAB中給出了這個63521x63521真實稀疏對稱矩陣,並且由於某些原因,它似乎對某些命令行爲怪異。MATLAB下稀疏矩陣的奇怪行爲

我不確定矩陣文件中是否存在'缺陷',或者我使用的是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

+0

你檢查過'isinf'嗎? – Shai

+0

您是否設法找到63521總線電源系統? –

回答

1

您是否檢查過您的輸入稀疏矩陣rYbus是否有任何NaNs?如果我沒有記錯,svds可以給你一個空矩陣而不是錯誤。

另一個可能的錯誤是rYbus的大小。它的大小是多少?

+0

是的,我已經驗證過它。請參閱編輯。 – smilingbuddha