40 lines
696 B
Matlab
40 lines
696 B
Matlab
%Ax=b
|
|
%A = X + Y
|
|
|
|
%x = inv(X) *b - (inv(X) * Y *x)
|
|
|
|
% se C = inv(X) * b e B = -(inv(X) * Y )
|
|
% allora x = Bx + C
|
|
|
|
%metodo iterativo converge se e solo se il raggio spettrale di B < 1
|
|
% raggio spettrale = max (abs(eig(B)))
|
|
|
|
|
|
%in jacobi X = diag(diag(A)) e Y = A - X
|
|
%in gauss-seidel X = tril(A) e Y = A - X
|
|
|
|
|
|
|
|
%quindi
|
|
|
|
%jacobi B = -(inv(diag(diag(A))) * (A - (diag(diag(A)))) )
|
|
%jacobi C = inv(diag(diag(A))) * b
|
|
|
|
%gauss B = -(inv(tril(A)) * (A - (tril(A))) )
|
|
%gauss C = inv(tril(A)) * b
|
|
|
|
|
|
%formula definitiva
|
|
%jacobi converge se
|
|
% max(abs(eig((-(inv(diag(diag(A))) * (A - (diag(diag(A)))) )))))
|
|
% <1
|
|
|
|
%gauss converge se
|
|
% max(abs(eig(-(inv(tril(A)) * (A - (tril(A))) ))))
|
|
% <1
|
|
|
|
|
|
|
|
|
|
|