2013-07-23 2 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에 NaN이 있는지 확인 했습니까? 내가 올바르게 기억하면, svds는 오류 대신 빈 행렬을 줄 수 있습니다.

또 다른 가능한 오류는 rYbus의 크기입니다. 그것의 크기는 얼마입니까?

+0

예 이미 확인했습니다. 편집을 참조하십시오. – smilingbuddha