Реализация метода Matlab SOR - PullRequest
       5

Реализация метода Matlab SOR

0 голосов
/ 30 октября 2018

Используя начальное приближение нулевого вектора и не учитывая допуск, я сократил код до 4 аргументов. Так что x1 всегда равно c и т. Д. По уравнению x (k + 1) = x (k) T + c.

Однако код, похоже, не дает правильных приближений, которые вы ожидаете. Кто-нибудь замечает, где я запутался? Предполагая, что DLU_decomposition (A) возвращает правильные матрицы.

function x = sor2(A,b,omega,kmax)
[D,L,U] = DLU_decomposition(A);
T=inv(D-omega*L)*(((1-omega)*D)+(omega*U));
c= (omega*inv(D-omega*L))*b;

for k=1:kmax,

    if(k==1),
        x=c;
    end
    x=T*x+c;

end
norm(A*x-b)
end

1 Ответ

0 голосов
/ 30 октября 2018

Ну, я могу предположить, что вся путаница может быть связана с умножением. Вам нужно вычислить матрицы поэлементно -> использовать .* вместо нормального *. Это даст правильные приближения?

...