Sunteți pe pagina 1din 2

METODA SUPRARELAXARII

clc;
%Introducerea datelor
A=[17 10 0 0 0;10 17 -6 0 0;0 -6 17 -9 0;0 0 -9 17 7;0 0 0 7 17]
b=[-12;-2;2;-2;2]
%Metoda suprarelaxarii
D=diag(diag(A));
n=5;
B=eye(n)-inv(D)*A;
ro=norm(eig(B),inf);
w=2/(1+sqrt(1-(ro^2)));
U=tril(A)+((1/w)-1)*D;
B=eye(n)-inv(U)*A;
c=inv(U)*b
x=zeros(n,1);
e=A*x-b;
disp('Precizia data este:');
eps=input('eps=');
p=0;
while norm(e,inf)>eps
x=B*x+c;
e=A*x-b;
p=p+1;
end
disp('Solutia sistemului este:');x
fprintf('\n A fost obtinuta dupa %d pasi',p);
METODA RELAXARII SIMPLE

clc;
%Introducerea datelor
A=[12 -1 -2 4;-1 11 1 5;-2 1 12 -1;4 5 -1 11]
b=[1;-9;8;-1]
n=4;
%Metoda relaxarii simple
v=zeros(n,1);
r=A*v-b;
disp('Precizia data este:');
eps=input('eps=');
%Numarul de pasi
i=0;
while norm(r,inf)>eps
[m,j]=max(abs(r));
p=zeros(n,1);
p(j)=1;
t=-r(j)/A(j,j);
v=v+t*p;
r=A*v-b;
i=i+1;
end
disp('Solutia sistemului este:');v
fprintf('\n A fost obtinuta dupa %d pasi',i);

S-ar putea să vă placă și