2013-07-23 4 views
0

Мне была дана эта 63521x63521 реальная разреженная симметричная матрица в MATLAB и по какой-то причине она, по-видимому, ведет себя странно для некоторых команд.Странное поведение разреженной матрицы под 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 нет никаких натов. Размер матрицы составляет 63521 x 63521

+0

Вы проверили для 'isinf' также? – Shai

+0

Удалось ли вам найти систему питания 63521? –

ответ

1

Вы проверили, есть ли у вашей входной разреженной матрицы rYbus какие-либо NaN? Если я правильно помню, svds может дать вам пустую матрицу вместо ошибки.

Другой возможной ошибкой является размер rYbus. Каков его размер?

+0

Да, я уже проверил его. См. Править. – smilingbuddha

Смежные вопросы