Penulis
I. Judul
” METODE ITERASI JACOBI DAN GAUSS SEIDEL DENGAN MATLAB”
III. Tujuan
a) Untuk memenuhi tugas perkuliahan Komputasi Numerik
b) Sebagai latihan dalam menggunakan MATLAB dan mengimplementasikan soal
Komputasi Numik ke bentuk program.
IV. Penjelasan
1. Carilah harga jawab untuk sistem berikut ini dengan iterasi Jacobi sampai 5 desimal di
belakang koma.
64𝑥1 − 3 𝑥2 − 𝑥3 = 14
𝑥1 + 𝑥2 + 40𝑥3 = 20
2𝑥1 − 90𝑥2 + 𝑥3 = −5
Solusi:
𝑎11 = 64 𝑎12 = -3 𝑎13 = -1 𝑏1 = 14
𝑎21 = 1 𝑎22 = 1 𝑎21 = 40 𝑏1 = 20
𝑎31 = 2 𝑎32 = -90 𝑎31 = 1 𝑏1 = -5
Iterasi 3:
(3) 1 (2) (2)
𝑥1 = − (𝑎12 𝑥1 + 𝑎13 𝑥3 − 𝑏1 )
𝑎11
(3) 1 (2) (2)
𝑥2 = − (𝑎21 𝑥1 + 𝑎23 𝑥3 − 𝑏2 )
𝑎22
2. Carilah harga jawab untuk sistem soal 1 di atas dengan iterasi Gauss-Seidel.
Solusi:
𝑎11 = 64 𝑎12 = -3 𝑎13 = -1 𝑏1 = 14
𝑎21 = 1 𝑎22 = 1 𝑎21 = 40 𝑏1 = 20
𝑎31 = 2 𝑎32 = -90 𝑎31 = 1 𝑏1 = -5
start
Jacobi
a = [64 -3 -1;
1 1 40;2 -90 1];
b = [14;20;-5];
x1_awal = 0;
x2_awal = 0;
x3_awal = 0;
x1 = 0;
x2 = 0;
x3 = 0;
iterasi = 5;
kmlkm
Nexti
i=1:iterasi
x1 = -1/64*(-3*x2_awal-x3_awal -14);
x2 = 1/90*(2*x1_awal +x3_awal + 5);
x3 = -1/40*(x1_awal +x2_awal -20);
x1_awal = x1;
x2_awal = x2;
x3_awal = x3;
xn(i,1:3)=[x1_awal,x2_awal,x3_awal];
Nexti End
xn
start Gauss-Seidel
a = [64 -3 -1;
1 1 40;2 -90 1];
b = [14;20;-5];
x1_awal = 0;
x2_awal = 0;
x3_awal = 0;
x1 = 0;
x2 = 0;
x3 = 0;
iterasi = 5;
kmlkm
Nexti
i=1:iterasi
x1 = -1/64*(-3*x2_awal-x3_awal -14);
x2 = 1/90*(2*x1 +x3_awal + 5);
x3 = -1/40*(x1 +x2 -20);
x1_awal = x1;
x2_awal = x2;
x3_awal = x3;
xn(i,1:3)=[x1_awal,x2_awal,x3_awal];
Nexti End
xn
VI. List Program / Source Code
Jacobi
a = [64 -3 -1 ; 1 1 40 ; 2 -90 1];
b = [14;20;-5];
for i = 1:iterasi
x1 = -1/64*(-3*x2_awal-x3_awal -14); %mencari x1
x2 = 1/90*(2*x1_awal +x3_awal + 5); %mencari x2
x3 = -1/40*(x1_awal +x2_awal -20); %mencari x3
x1_awal = x1; %mengamankan nilai x1
x2_awal = x2; %mengamankan nilai x2
x3_awal = x3; %mengamankan nilai x3
Gauss-Seidel
a = [64 -3 -1 ; 1 1 40 ; 2 -90 1];
b = [14;20;-5];
for i = 1:iterasi
x1 = -1/64*(-3*x1_awal+x3_awal-14); %mencari x1
x2 = 1/90*(2*x1 +x3_awal + 5); %mencari x2
x3 = -1/40*(x1 +x2 -20); %mencari x3
x1_awal = x1; %mengamankan nilai x1
x2_awal = x2; %mengamankan nilai x2
x3_awal = x3; %mengamankan nilai x3
xn(i,1:3) = [x1_awal,x2_awal, x3_awal]; %simpan nilai yg mau
ditampilkan
fprintf('x(%d) = %10.6f %10.6f %10.6f\n',i,xn(i,1:3)); %tampil
end