You are on page 1of 5

Sistemet Lineare

I. Metoda e Jakobit:

(𝑘+1) 1 (𝑘) (𝑘)


𝑥𝑖 = 𝑎 [𝑏𝑖 − ∑𝑖−1
𝑗=1 𝑎𝑖𝑗 𝑥𝑗 − ∑𝑛𝑗=𝑖+1 𝑎𝑖𝑗 𝑥𝑗 ] , 𝑖 = ̅̅̅̅̅
1: 𝑛
𝑖𝑖

Inputet: 𝐴-matrice 𝑛 × 𝑛 përmasa, 𝑏-është vektor me 𝑛 × 1 përmasa, x0-vektor me 𝑛 × 1


përmasa & përafrimi fillestar i zgjidhjes, tol- toleranca në gabim dhe nmax-numri max i
iteracioneve
Outputet: x-zgjidhja e përafërt, eps- gabimi i përafrimit dhe it-numri i hapit të fundit
function [x,eps,it] = Metoda_Jakobit(A,b,x0,tol,nmax)
n=length(b);
x=zeros(n,1);
it=0;
eps=tol+1;
while (eps>=tol && it<=nmax)
for i=1:n
s=0;
for j=1:n
if i~=j
s=s+A(i,j)*x0(j);
end
end
x(i)=(b(i)-s)/A(i,i);
end
eps=norm(x-x0,inf)/norm(x,inf);
it=it+1;
x0=x;
end
end

Le të zgjidhim sistemin linear të ekuacioneve në trajtën 𝐴𝑥 = 𝑏 për 𝐴 dhe 𝑏 si më poshtë:

2 1 0 1 0
𝐴 = [−1 4 2]; 𝑏 = [ 0 ] dhe 𝑥 (0) = [0]
1 −1 3 −1 0

1
>> A=[2 1 0;-1 4 2;1 -1 3]
A=
2 1 0
-1 4 2
1 -1 3

>> b=[1;0;-1]
b=
1
0
-1
>> x0=zeros(3,1)
x0 =
0
0
0
>> [x_p,eps,it]=Metoda_Jakobit(A,b,x0,10^-4,100)
x_p =
0.3636
0.2727
-0.3636
eps =
8.6469e-05
it =
19
4
11
3
Të krahasojmë përafrimin e marrë me Jakob me zgjidhjen e saktë të sistemit 11
:
4
[− 11 ]
>> x_real=A\b
x_real =
0.3636
0.2727
-0.3636

2
Për të parë sa ndryshojnë vlerat reale nga ato të përafruara:
>> abs(x_p-x_real)
ans =
1.0e-04 *
0.0001
0.2193
0.1049

II. Metoda Gauss-Seidel:

(𝑘+1) 1 (𝑘+1) (𝑘)


𝑥𝑖 = 𝑎 [𝑏𝑖 − ∑𝑖−1
𝑗=1 𝑎𝑖𝑗 𝑥𝑗 − ∑𝑛𝑗=𝑖+1 𝑎𝑖𝑗 𝑥𝑗 ] , 𝑖 = ̅̅̅̅̅
1: 𝑛
𝑖𝑖

Inputet: A-matrice n × n përmasa, b-është vektor me n × 1 përmasa, x0-vektor me n × 1 përmasa


& përafrimi fillestar i zgjidhjes, tol- toleranca në gabim dhe nmax-numri max i iteracioneve
Outputet: x-zgjidhja e përafërt, eps- gabimi i përafrimit dhe it-numri i hapit të fundit
function [x,eps,it]=Metoda_G_Seidel(A,b,x0,tol,nmax)
n=length(b);
x=zeros(n,1);
it=0;
eps=tol+1;
while(eps>=tol)&&(it<=nmax)
for i=1:n
s=0;
for j=1:n
if (j<i)
s=s+A(i,j)*x(j);
else
if (j>i)
s=s+A(i,j)*x0(j);
end
end
x(i)=(b(i)-s)/A(i,i);
end

3
eps=norm(x-x0,inf)/norm(x,inf);
it=it+1;
x0=x;
end
end
end

Le të zgjidhim sistemin linear të ekuacioneve në trajtën 𝐴𝑥 = 𝑏 për 𝐴 dhe 𝑏 si më poshtë:

2 1 0 1 0
𝐴 = [−1 4 2]; 𝑏 = [ 0 ] dhe 𝑥 (0) = [0]
1 −1 3 −1 0

>> A=[2 1 0;-1 4 2;1 -1 3]


A=
2 1 0
-1 4 2
1 -1 3

>> b=[1;0;-1]
b=
1
0
-1
>> x0=zeros(3,1)
x0 =
0
0
0
>> [x_p,eps,it]=Metoda_G_Seidel(A,b,x0,10^-4,100)
x_p =
0.3636
0.2727
-0.3636

4
eps =
1.5921e-05
it =
27
Shohim që gabimi i përafrimit të zgjidhjes është 1.5921e-05 krahasuar me atë të meodës së
Jakobit që ishte 8.6469e-05 por në anën tjetër metodës Gauss-Seidel i duhen 27 hapa për të
arritur këtë saktësi ndërsa Jakobit vetëm 19 hapa për saktësi pak më të ulët.
4
11
3
Të krahasojmë përafrimin e marrë me Gauss-Seidel me zgjidhjen e saktë të sistemit 11
:
4
[− 11 ]
>> x_real=A\b
x_real =
0.3636
0.2727
-0.3636
Për të parë sa ndryshojnë vlerat reale nga ato të përafruara:
>> abs(x_p-x_real)
ans =
1.0e-04 *
0.1914
0.0436
0.0493

You might also like