Anda di halaman 1dari 8

KATA PENGANTAR

Perkembangan teknologi dibidang komputer semakin maju dan universal seperti


MATLAB yang menjadi hal yang harus dikuasai bagi para mahasiswa teknik elektro khususnya,
disini dapat dilihat contoh salah satu program dari MATLAB yang penulis buat untuk
memenuhi materi kuliah dan sebagai bahan pembelajaran bagi penulis.
Tentunya program yang dibuat ini masih bersifat dasar dan dan dapat dikembangkan
menjadi lebih baik dan lebih bermanfaat Apabila ada kesalahan dalam program ini, penulis siap
menerima kritik dan saran dari pembaca.

Medan, 30 Juni 2012

Penulis
I. Judul
” METODE ITERASI JACOBI DAN GAUSS SEIDEL DENGAN MATLAB”

II. Latar Belakang


Program ini dibuat sebagai bentuk latihan yang diberikan oleh Dosen pengajar yang
bertujuan agar mahasiswa belajar, sehingga mahasiswa mampu mengaplikasikan
berbagai bentuk soal Komputasi Numerik ke dalam program 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

(0) (0) (0)


Beri nilai awal atau initial value 𝑥1 = 0 , 𝑥2 =0, 𝑥3 = 0 atau 𝐱 (0) = (0 , 0, 0)𝑇
Iterasi 1:
(1) 1 (0) (0)
𝑥1 = − (𝑎 𝑥 + 𝑎13 𝑥3 − 𝑏1 )
𝑎11 12 2
(1) 1 (0) (0)
𝑥2 = − (𝑎 𝑥 + 𝑎23 𝑥3 − 𝑏2 )
𝑎22 21 1

(1) 1 (0) (0)


𝑥3 = − (𝑎31 𝑥1 + 𝑎32 𝑥2 − 𝑏3 )
𝑎33

(1) (1) (1)


𝑿𝟏 = (𝑥1 , 𝑥2 , 𝑥3 )T x(1) ini akan digunakan pada iterasi-2
untuk mencari x(2) .
Iterasi 2:
(2) 1 (1) (1)
𝑥1 = − 𝑎 (𝑎12 𝑥2 + 𝑎13 𝑥3 − 𝑏1 )
11

(2) 1 (1) (1)


𝑥2 = − (𝑎 𝑥 + 𝑎23 𝑥3 − 𝑏2 )
𝑎22 21 1

(2) 1 (1) (1)


𝑥3 = − (𝑎31 𝑥1 + 𝑎32 𝑥2 − 𝑏3 )
𝑎33

(2) (2) (3)


𝑿𝟐 = (𝑥1 𝑥2 𝑥3 ) T x(2) ini akan digunakan pada iterasi-3
untuk mencari x(3) .

Iterasi 3:
(3) 1 (2) (2)
𝑥1 = − (𝑎12 𝑥1 + 𝑎13 𝑥3 − 𝑏1 )
𝑎11
(3) 1 (2) (2)
𝑥2 = − (𝑎21 𝑥1 + 𝑎23 𝑥3 − 𝑏2 )
𝑎22

(3) 1 (2) (2)


𝑥3 = − (𝑎31 𝑥1 + 𝑎32 𝑥2 − 𝑏3 )
𝑎33

(3) (3) (3)


𝑿𝟑 = ( 𝑥1 , 𝑥2 , 𝑥3 ) T selanjutnya proses sama seperti yang
diatas sampai Iterasi-5
Sehingga jika nilai yang ada dimasukan ke variable-variabel diatas maka akan
ditemukan:
Iterasi 1: 𝑿𝟏 = (0.21875, 0.05556, 0.50000)𝑇
Iterasi 2: 𝑿𝟐 = (0.22917, 0.06597, 0.49592)𝑇
Iterasi 3: 𝑿𝟑 = (0.22955, 0.06613, 0.49262)𝑇
Iterasi 4: 𝑿𝟒 = (0.22955, 0.06613, 0.49262)𝑇
Iterasi 5: 𝑿𝟓 = (0.22955, 0.06613, 0.49262)𝑇

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

(0) (0) (0)


Beri nilai awal atau initial value 𝑥1 = 0 , 𝑥2 =0, 𝑥3 = 0 atau 𝐱 (0) = (0 , 0, 0)𝑇
Iterasi 1:
(1) 1 (0) (0) (1)
𝑥1 = − 𝑎 (𝑎12 𝑥1 + 𝑎13 𝑥3 − 𝑏1 ) mencari 𝑥1 baru
11

(1) 1 (0) (0) (1)


𝑥2 = − 𝑎 (𝑎21 𝑥1 + 𝑎23 𝑥3 − 𝑏2 ) 𝑥1 yang didapat digunakan untuk
22
(1)
mencari 𝑥2
(1) 1 (0) (0) (1) (1)
𝑥3 = − 𝑎 (𝑎31 𝑥1 + 𝑎32 𝑥2 − 𝑏3 ) 𝑥2 digunakan untuk mencari 𝑥3
33

(1) (1) (1)


𝑿𝟏 = (𝑥1 , 𝑥2 , 𝑥3 )T x(1) ini akan digunakan pada iterasi-2
untuk mencari x(2) .
Iterasi 2:
(2) 1 (1) (1)
𝑥1 = − (𝑎12 𝑥1 + 𝑎13 𝑥3 − 𝑏1 )
𝑎11
(2) 1 (1) (1)
𝑥2 = − (𝑎 𝑥 + 𝑎23 𝑥3 − 𝑏2 )
𝑎22 21 1

(2) 1 (1) (1)


𝑥3 = − (𝑎31 𝑥1 + 𝑎32 𝑥2 − 𝑏3 )
𝑎33

(2) (2) (3)


𝑿𝟐 = (𝑥1 𝑥2 𝑥3 ) T selanjutnya proses sama seperti yang
diatas sampai Iterasi-5
Iterasi 3:
(3) 1 (2) (2)
𝑥1 = − (𝑎12 𝑥1 + 𝑎13 𝑥3 − 𝑏1 )
𝑎11
(3) 1 (2) (2)
𝑥2 = − (𝑎 𝑥 + 𝑎23 𝑥3 − 𝑏2 )
𝑎22 21 1

(3) 1 (2) (2)


𝑥3 = − 𝑎 (𝑎31 𝑥1 + 𝑎32 𝑥2 − 𝑏3 )
33

(3) (3) (3)


𝑿𝟑 = ( 𝑥1 , 𝑥2 , 𝑥3 ) T
Sehingga jika nilai yang ada dimasukan ke variable-variabel diatas maka akan
ditemukan:
Iterasi 1: 𝑿𝟏 = (0.22929, 0.06613, 0.49262)𝑇
Iterasi 2: 𝑿𝟐 = (0.22955, 0.06613, 0.49261)𝑇
Iterasi 3: 𝑿𝟑 = (0.22955, 0.06613, 0.49261)𝑇
V. Flowchart

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];

x1_awal = 0; %memastikan nilai x1_awal = 0


x2_awal = 0; %memastikan nilai x2_awal = 0 Nilai x sebelum
x3_awal = 0; %memastikan nilai x3_awal = 0
x1 = 0; %memastikan nilai x1 = 0
x2 = 0; %memastikan nilai x2 = 0 Nilai x sesudah
x3 = 0; %memastikan nilai x3 = 0
%seluruh variable diatas diberi nilai awal nol sebagai
initial value, untuk nantinya diisi dengan nilai
tertentu
iterasi = 5; %banyak perulangan yang kita inginkan

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

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

Gauss-Seidel
a = [64 -3 -1 ; 1 1 40 ; 2 -90 1];
b = [14;20;-5];

x1_awal = 0; %memastikan nilai x1_awal = 0


x2_awal = 0; %memastikan nilai x2_awal = 0
x3_awal = 0; %memastikan nilai x3_awal = 0
x1 = 0; %memastikan nilai x1 = 0
x2 = 0; %memastikan nilai x2 = 0
x3 = 0; %memastikan nilai x3 = 0
iterasi = 3;

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

Anda mungkin juga menyukai