Anda di halaman 1dari 11

LABORATURIUM ALGORITMA DAN PEMROGRAMAN DASAR

PROGRAM STUDI INFORMATIKA


FAKULTAS TEKNIK UNIVERSITAS
MUHAMMADIYAH SEMARANG
Jl. Kedungmundu No.18, Kedungmundu, Kec. Tembalang, Kota Semarang,
Jawa Tengah 50273
Website: https://informatika.unimus.ac.id/ Email:
informatika@unimus.ac.id
Nama Mahasiswa : Dimas Yoga Eka P. Topik Praktikum : Jacobi dan Gauss seidel

Nomor Induk Mahasiswa : C2C021022 Dosen Pengampu : Muhammad


Sam’an, M.Si,
Semester/Angkatan : 3/2021 Nilai :
Program Studi : Informatika Kelas : Reg - A
LEMBAR KERJA
1. Soal

NOMOR 1

NOMOR 2
2. Algoritma

ITERASI JACOBI

1. Masukkan matriks AA, dan vektor BB beserta ukurannya nn.


2. Hitung invers matriks DD, dimana nilai invernya merupakan matriks diagonal dari satu
per diagonal utama matriks AA.
3. Hitung matriks RR, dimana RR merupakan selisih matriks AA dikurangi dengan matriks
diagonal dengan entri dari diagonal utama matriks AA.
4. Tetapkan vektor xx estimasi.
5. Tetapkan nilai toleransi maksimum yang dapat diterima.
6. Lakukan iterasi menggunakan Persamaan
7. Hitung akar jumlah kuadrat dari vektor xn+1xn+1 dan vektor xnxn.
8. Jadikan nilai xn+1xn+1 sebagai nilai taksiran xx untuk iterasi berikutnya.
9. Hentikan proses iterasi jika telah memenuhi syarat yang ditampilkan pada Persamaan.

ITERASI GAUSS-SEIDEL

1. Masukkan matriks AA, dan vektor BB beserta ukurannya nn.


2. Lakukan dekomposisi LU, dimana matriks LL merupakan matriks segitiga bawah
dengan nilai entri diagonal utama matriks AA dan bagian bawah diagonalnya dan
matriks UU merupakan matriks segitiga atas dengan entri berasal dari elemen atas
diagonal utama matriks AA. Isi elemen lain yang tidak disebut pada kedua matriks
tersebut dengan nol.
3. Tetapkan vektor xx estimasi.
4. Tetapkan nilai toleransi maksimum yang dapat diterima.
5. Lakukan iterasi menggunakan Persamaan (6.39).
6. Hitung akar jumlah kuadrat dari vektor xn+1xn+1 dan vektor xnxn.
7. Jadikan nilai xn+1xn+1 sebagai nilai taksiran xx untuk iterasi berikutnya.
8. Hentikan proses iterasi jika telah memenuhi syarat yang ditampilkan pada Persamaan
3. Listing Program
PENGERJAAN NOMOR 1

Jacobi :

%% pengerjaan Jacobi
%%

fprintf('======================================================\n');
fprintf('Nama : Dimas Yoga Eka Prasetiya\n');
fprintf('NIM : C2C021022\n');
fprintf('Matkul : Metode Numerik\n');
fprintf('======================================================\n');

A=[194 187 8 108;0 382 11 7;0 363 70 45; 236 77 21 264]


b=[5152 1612 2008 6000]'
x=[0 0 0 0]'
n=size(x,1);
normVal=Inf;
%%
% * _*menentukan toleransi *_
tol=1e-5; itr=0;
%% Algorithm: Jacobi Method
%%
while normVal>tol
xold=x;

for i=1:n
sigma=0;

for j=1:n

if j~=i
sigma=sigma+A(i,j)*x(j);
end

end

x(i)=(1/A(i,i))*(b(i)-sigma);
end

itr=itr+1;
normVal=abs(xold-x);
end
%%
fprintf('Solution of the system is : \n%f\n%f\n%f\n%f in %d iterations',x,itr);
HASIL :
Gauss-Seidel :

%% Gauss Seidel metode


%% Solution of x in Ax=b using Gauss Seidel Method
% * _*Initailize 'A' 'b' & intial guess 'x'*_
%%
fprintf('======================================================\n');
fprintf('Nama : Dimas Yoga Eka Prasetiya\n');
fprintf('NIM : C2C021022\n');
fprintf('Matkul : Metode Numerik\n');
fprintf('-------------------------------------------------------\n');
fprintf('Metode GAUSS- S E I D E L\n');
fprintf('======================================================\n');
A=[194 187 8 108;0 382 11 7;0 363 70 45; 236 77 21 264]
b=[5152 1612 2008 6000]'
x=[0 0 0 0]'
n=size(x,1);
normVal=Inf;
%%
% * _*Tolerence for method*_
tol=1e-5; itr=0;
%% Algorithm: Gauss Seidel Method
%%
while normVal>tol
x_old=x;

for i=1:n

sigma=0;

for j=1:i-1
sigma=sigma+A(i,j)*x(j);
end

for j=i+1:n
sigma=sigma+A(i,j)*x_old(j);
end

x(i)=(1/A(i,i))*(b(i)-sigma);
end

itr=itr+1;
normVal=norm(x_old-x);
end
%%
fprintf('Solution of the system is : \n%f\n%f\n%f\n%f in %d
iterations',x,itr);
HASIL :
PENGERJAAN NOMOR 2
GAUSS-SEIDEL :
%% METODE Gauss Seidel
%%
fprintf('======================================================\n');
fprintf('Nama : Dimas Yoga Eka Prasetiya\n');
fprintf('NIM : C2C021022\n');
fprintf('Matkul : Metode Numerik\n');
fprintf('-------------------------------------------------------\n');
fprintf('Metode GAUSS- S E I D E L\n');
fprintf('======================================================\n');
A=[250 180 11 17;0 475 21 5;0 160 179 13;180 195 9 389]
b=[6000 2008 1612 5152]'
x=[0 0 0 0]'
n=size(x,1);
normVal=Inf;
%%
tol=1e-5; itr=0;
while normVal>tol
x_old=x;

for i=1:n

sigma=0;

for j=1:i-1
sigma=sigma+A(i,j)*x(j);
end

for j=i+1:n
sigma=sigma+A(i,j)*x_old(j);
end

x(i)=(1/A(i,i))*(b(i)-sigma);
end

itr=itr+1;
normVal=norm(x_old-x);
end
%%
fprintf(solusinya : \n%f\n%f\n%f\n%f in %d iterations',x,itr);
HASIL :
JACOBI :
%% pengerjaan Jacobi
%%

fprintf('======================================================\n');
fprintf('Nama : Dimas Yoga Eka Prasetiya\n');
fprintf('NIM : C2C021022\n');
fprintf('Matkul : Metode Numerik\n');
fprintf('-------------------------------------------------------\n');
fprintf('Metode J A C O B I \n');
fprintf('======================================================\n');
A=[250 180 11 17;0 475 21 5;0 160 179 13;180 195 9 389]
b=[6000 2008 1612 5152]'
x=[0 0 0 0]'
n=size(x,1);
normVal=Inf;
%%
% * _*menentukan toleransi *_
tol=1e-5; itr=0;
%% Algorithm: Jacobi Method
%%
while normVal>tol
xold=x;

for i=1:n
sigma=0;

for j=1:n

if j~=i
sigma=sigma+A(i,j)*x(j);
end

end

x(i)=(1/A(i,i))*(b(i)-sigma);
end

itr=itr+1;
normVal=abs(xold-x);
end
%%
fprintf('Solution of the system is : \n%f\n%f\n%f\n%f in %d iterations',x,itr);
HASIL :
4. Pembahasan

Pada metode Jacobi

Dari percobaan di atas bisa dilihat bahwa nilai toleransi error tidak mempengaruhi hasil dari
soal diatas walaupun nilai toleransi errornya berbeda tapi hasilnya sama.
Dengan demikian yang mempengaruhi jacobi bukan nilai toleransi error melainkan
x0 atau titik awal.

Pada metode Gauss-Seidel

Dari percobaan di atas bisa dilihat bahwa saat dimasukkan nilai toleransi error
10-3,10-4 hasilnya sama dan bila dilanjutkan ke nilai toleransi error 10 -5
hasilnya berbeda. Dengan demikian yang mempengaruhi metode seidel yaitu
nilai toleransi error, iterasi maksimum dan x0, x1.

5. Daftar Pustaka
https://rpubs.com/shafirahalma/835476
https://www.mathworks.com/matlabcentral/fileexchange/63167-gauss-seidel-
method-jacobi-method

Anda mungkin juga menyukai