Upload
james-montolalu
View
166
Download
0
Embed Size (px)
Citation preview
MODUL 5
METODE ITERASI JACOBI
Nama Asisten : Mohammad Reza Nurkamiden
NRI : 120216005
Nama Praktikan : James Philip Montolalu
NRI : 13021106048
Kelompok 3 Rekan Kerja :
1. Tania Yunita Soriton (13021106021)
2. Andy A. Setiawan (13021106091)
Praktikum Metode Numerik
Laboratorium Teknologi Informasi & Komunikasi
James Philip Montolalu | 13021106048
BAB I
PENDAHULUAN
I.1. Tujuan
1. Menguasai iterasi Jacobi yang digunakan dalam komputasi numerik.
2. Memahami algoritma pemrograman untuk merancang program iterasi Jacobi yang
ada dalam komputasi numerik.
3. Menerapkan algoritma untuk perancangan dan pembuatan program iterasi Jacobi.
I.2. Dasar Teori
Metode iterasi Jacobi merupakan salah satu bidang analisis numerik yang
digunakan untuk menyelesaikan permasalahan persamaan linear dan sering dijumpai
dalam berbagai disiplin ilmu. Metode iterasi Jacobi merupakan salah satu metode tak
langsung, yaitu bermula dari suatu hampiran penyelesaian awal dan kemudian
berusaha memperbaiki hampiran dalam tak berhingga dengan langkah konvergen.
Metode iterasi Jacobi ini digunakan untuk menyelesaikan persamaan linear
berukuran besar dan proporsi koefisien nolnya besar. Metode ini ditemukan oleh
matematikawan yang berasal dari Jerman, Carl Gustav Jakob Jacobi. Penemuan ini
diperkirakan pada tahun 1800-an.
Jika merubah Sistem Persamaan Linear, maka dapat ditulis sebagai berikut:
Kemudian, diketahui bahwa A = D + (L + U), dimana D merupakan matriks
diagonal, L merupakan matriks segitiga bawah, dan U merupakan matriks segitiga
atas. Setelah itu, persamaan diatas dapat diubah menjadi:
Kemudian
Jika ditulis dalam aturan iteratif, maka metode Jacobi dapat ditulis sebagai :
Ax = B
Dx | (L | U)x = b
x = D -1 [b – ( L | U ) x]
Praktikum Metode Numerik
Laboratorium Teknologi Informasi & Komunikasi
James Philip Montolalu | 13021106048
Dimana k merupakan banyaknya iterasi. Jika x(k) menyatakan hampiran ke-k
penyelesaian Sistem Persamaan Linear, maka x(0) adalah hampiran awal.
w
Metode ini merupakan suatu teknik penyelesaian SPL berukuran n x n, AX = b,
secara iteratif. Proses penyelesaian dimulai dengan suatu hampiran awal terhadap
penyelesaian, X0, kemudian membentuk suatu serangkaian vector X1, X2, … yang
konvergen ke X.
Teknik iteratif jarang digunakan untuk menyelesaikan SPL berukuran kecil karena
metode-metode langsung seperti metode eliminasi Gauss lebih efisien dari pada
metode iteratif. Akan tetapi, untuk SPL berukuran besar dengan persentase elemen
nol pada matriks koefisien besar, teknik iteratif lebih efisien daripada metode
langsung dalam hal penggunaan memori komputer maupun waktu komputasi.
Metode iterasi Jacobi, prinsipnya: merupakan metode iteratif yang melakuakn
perbaharuan nilai x yang diperoleh tiap iterasi (mirip metode substitusi berurutan,
successive substitution).
x(k+1) = D -1 [b – ( L | U ) x(k)]
Praktikum Metode Numerik
Laboratorium Teknologi Informasi & Komunikasi
James Philip Montolalu | 13021106048
Algoritma Iterasi Jacobi
Untuk menyelesaikan system persamaan linier AX = b dengan A adalah matriks
koefisien n x n, b vector konstan n x 1, dan X vektor n x 1 yang perlu dicari.
INPUT : n, A, b, dan Himpunan awal Y = (y1 y2 y3…yn)T, batas toleransi T, dan
maksimum iterasi N.
OUTPUT: X = (x1 x2 x3 ..xn)T, atau pesan “ gagal “.
LANGKAH – LANGKAH :
1. set penghitung iterasi ke =1
2. WHILE k ≤ n DO
(a) FOR i = 1, 2, 3, ..., n, hitung ii
ij jiji
ia
yabx
(b) Set X = (x1 x2 x3 ..xn)T
(c) IF YX < T THEN STOP
(d) Tambahan penghitung iterasi, k = k + 1
(e) FOR i = 1, 2, 3, ..., n, Set yi = xi
(f) set Y = (y1 y2 y3 ..yn)T
3. STOP
Praktikum Metode Numerik
Laboratorium Teknologi Informasi & Komunikasi
James Philip Montolalu | 13021106048
Contoh Soal
Selesaikan sistem persamaan berikut dengan metode iterasi Jacobi.
3x+ y- z =5
4x+7y-3z=20
2x-2y+5z=10
Sistem persamaan dapat ditulis dalam bentuk:
Langkah 1. dimasukkan nilai x=0, y=0, z=0,
Maka: X(1)=(5-0+0)/3=1.66667, Y(1)=(20-0+0)/7=2.857714, Z(1)=(10-
0+0)/5=2
Langkah 2. dimasukkan nilai x=1.66667, y= 2.857714, z= 2,
Maka:
X(2)=(5-2.857714+2)/3=1.38095,
Y(2)=(20-+3x2)/7=2.76190,
Z(2)=(10-2x1.66667+2x2.857714)/5=2.47619,
Dalam bentuk tabel.
Iterasi X Y Z X' Y' Z' Pros(x) Pros(y) Pros(z)
1 0.000000 0.000000 0.000000 1.666667 2.857143 2.000000
2 1.666667 2.857143 2.000000 1.380952 2.761905 2.476190 20.69% 3.45%
19.23%
3 1.380952 2.761905 2.476190 1.571429 3.129252 2.552381 12.12% 11.74%
2.99%
4 1.571429 3.129252 2.552381 1.474376 3.053061 2.623129 6.58% 2.50%
2.70%
5 1.474376 3.053061 2.623129 1.523356 3.138840 2.631474 3.22% 2.73%
0.32%
6 1.523356 3.138840 2.631474 1.497545 3.114428 2.646194 1.72% 0.78%
0.56%
7 1.497545 3.114428 2.646194 1.510588 3.135486 2.646753 0.86% 0.67%
0.02%
8 1.510588 3.135486 2.646753 1.503756 3.128272 2.649959 0.45% 0.23%
0.12%
9 1.503756 3.128272 2.649959 1.507229 3.133551 2.649807 0.23% 0.17%
0.01%
10 1.507229 3.133551 2.649807 1.505419 3.131501 2.650529 0.12% 0.07%
0.03%
Maka X= 1.505419, Y= 3.131501, Z= 2.650529
Praktikum Metode Numerik
Laboratorium Teknologi Informasi & Komunikasi
James Philip Montolalu | 13021106048
BAB II
ALAT & BAHAN
II.1 Alat dan Bahan
1) Buku Teks
2) Unit Pemroses
3) Aplikasi Pembuatan Program :
a. Notepad / Notepad++
b. Aplikasi IDE C++ (Bloodsheed Dev C++)
c. Mathematica
Praktikum Metode Numerik
Laboratorium Teknologi Informasi & Komunikasi
James Philip Montolalu | 13021106048
d. Matlab
e. IDE Visual Studio 2010
f. Netbeans atau Eclipse
Praktikum Metode Numerik
Laboratorium Teknologi Informasi & Komunikasi
James Philip Montolalu | 13021106048
BAB III
PROSEDUR PERCOBAAN
III.1 Prosedur Umum
1) Memahami formulasi matematis Metode iterasi Jacobi
2) Menulis Algoritma penyelesaian masalah (dengan menggunakan teks
dan/atau flow chart)
3) Menulis pseudocode algoritma
4) Menguji pseducode algoritma penyelesaian masalah (misalnya dengan
menggunakan prosedur Desk Check)
5) Melakukan kodifikasi
6) Menguji Program
7) Membuat dokumentasi Praktikum
Praktikum Metode Numerik
Laboratorium Teknologi Informasi & Komunikasi
James Philip Montolalu | 13021106048
III.2 Prosedur Khusus
III.2.1 Contoh Menulis Program menggunakan IDE C++
1) Untuk menulis program baru caranya tekan tombol CTR+N atau pilih NEW
lalu klik Source File terlebih dahulu sebelum Anda mengetik program Anda.
2) Ketikkan program Anda.
3) Simpan program Anda dengan cara tekan tombol CTR+F12 pilih Save
kemudian ketikkan nama program Anda, misalnya Contoh1.cpp <enter>.
4) Jalankan program dengan menekan tombol CTR+F10 atau pilih RUN dalam
menu bar.
5) Bila ada kesalahan perbaiki kesalahan tersebut kemudian Anda ulangi
langkah 3 dan 4.
6) Untuk membuat program baru ulangi langkah 1.
7) Bila Anda ingin mencek apakah program Anda sudah tersimpan atau ingin
menampilkan program Anda kembali ke layar, maka tekan tombol CTR+O
lalu pilih program yang ingin ditampilkan kemudian enter.
III.2.2 Percobaan
Perhatikan penggalan program di Gambar dibawah
Lakukan langkah-langkah berikut:
1. Pahami algoritma penyelesaian masalah pada program diatas!
2. Tuliskan program berdasarkan langkah-langkah algoritma penyelesaian
masalah!
3. Jalankan program
4. Temukan kesalahan program
5. Membuat dokumentasi
6. Lakukan kembali langkah 4 hingga langkah 6
7. Tuliskan program yang sudah benar
8. Membuat dokumentasi laporan lengkap
Praktikum Metode Numerik
Laboratorium Teknologi Informasi & Komunikasi
James Philip Montolalu | 13021106048
#include <iostream>
#include <math.h>
using namespace std;
//Iterasi Jacobi
int main(){
int a, b, c, d, e, f, g, h, i, j, k, l, xb, yb, zb;
float x, xk, y, yk,z, zk, selisih_x, selisih_y, selisih_z;
char pil;
do {
cout<<”Format: 4x – y + z = 7”<<endl;
cout<<” 4x – 8y + z = 21”<<endl;
cout<<” -2x + y + 5z = 15”<<endl;
cout<<”Harga awal:(1,2,2)”;
int n=1;
do {
xk=(7-(-4*y)-(1*z))/4;
yk=(-21-(4*x)-(1*z))/-8;
zk=(15-(-2*x)-(1*y))/5;
cout<<”x”<<n<<”: ”<<xk<<endl;
cout<<”y”<<n<<”: “<<yk<<endl;
cout<<”z”<<n<<”: “<<zk<<endl;
y=yk;
z=zk;
n++;
xb=x;
selisih_x=x-xb;
yb=y;
selisih_y=y-yb;
zb=z;
selisih_z=z-zb;
}
while((selisih_x>0.00001||selisih_x<-0.00001) \
||(selisih_y>0.00001||selisih_y<-0.00001) \
||(selisih_z>0.00001||selisih_z<-0.00001));
cout<<”\nApakah ingin diulang lagi?”;
cin>>pil;
cout<<endl;
}
while (pil==’Y’||pil=’y’);
return 0;
}
Praktikum Metode Numerik
Laboratorium Teknologi Informasi & Komunikasi
James Philip Montolalu | 13021106048
III.2.3 Saran 1. Pelajari buku teks dan sumber lainnya
2. Mintalah petunjuk dari dosen pengasuh, asisten laboratorium dan lainnya.
3. Lakukan dokumentasi dengan baik.
4. Belajarlah bekerja dalam kelompok.
5. Ikuti setiap langkah dari prosedur yang ada
Praktikum Metode Numerik
Laboratorium Teknologi Informasi & Komunikasi
James Philip Montolalu | 13021106048
BAB IV
ANALISA PERCOBAAN
IV.1 Flowchart
START
Int xb, yb, zb, n
Float xk, yk, zk, selisih_x, selisih_y, selisih_z
Char pil
Float x=1, y=2, z=2
output Metode Iterasi Jacobi
output Format
output 4x - y + z = 7
output 4x – 8y + z = 21
output -2x + y + 5z = 15
output Harga awal: (1,2,2)
xk=((7+y-z)/4);
yk=((21+(4*x)+z)/8);
zk=((15+(2*x))-y)/5;
Cetak Iterasi
Cetak x, y, z
A
Y
X
Praktikum Metode Numerik
Laboratorium Teknologi Informasi & Komunikasi
James Philip Montolalu | 13021106048
A
x=xk
y=yk
z=zk
n++
xb=x
selisih_x=x-xb
yb=y
selisih_y=y-yb
zb=z
selisih_z=z-zb
While ((selisih_x>0.00001||selisih_x<-
0.00001) || (selisih_y>0.00001||selisih_y<-
0.00001) || (selisih_z>0.00001||selisih_z<-
0.00001))
Cetak Apakah ingin diulang lagi?
Masukkan pil
END
Y while (pil=='Y'||pil=='y')
X
T
Y
T
Y
Praktikum Metode Numerik
Laboratorium Teknologi Informasi & Komunikasi
James Philip Montolalu | 13021106048
IV.2 Program dengan bahas C++
Source code:
Baris 5-8 proses inisialisasi. Baris 10-13 proses output. Baris 14-15
inisialisasi nilai dari x, y, z dan n. baris 17-19 untuk menghitung
xk,yk,dan zk. Baris 20-23 proses output. Baris 25-35 proses untuk
menghitung selisih nilai dari nilai n dan n+1. Baris 36-38 menentukan
toleransi dari hasil nilai tersebut.
Praktikum Metode Numerik
Laboratorium Teknologi Informasi & Komunikasi
James Philip Montolalu | 13021106048
Keluaran:
Praktikum Metode Numerik
Laboratorium Teknologi Informasi & Komunikasi
James Philip Montolalu | 13021106048
Praktikum Metode Numerik
Laboratorium Teknologi Informasi & Komunikasi
James Philip Montolalu | 13021106048
IV. 3 Program dengan menggunakan bahasa C
Source code:
Baris 5-7 proses inisialisasi. Baris 9-12 proses output. Baris 13-14
inisialisasi nilai dari x, y, z dan n. baris 16-18 untuk menghitung
xk,yk,dan zk(nilai yang akan dipakai pada iterasi berikutnya). Baris 19-
22 proses output. Baris 24-34 proses untuk menghitung selisih nilai dari
nilai n dan n+1. Baris 35-37 menentukan toleransi dari hasil nilai
tersebut.
Praktikum Metode Numerik
Laboratorium Teknologi Informasi & Komunikasi
James Philip Montolalu | 13021106048
Keluaran:
Praktikum Metode Numerik
Laboratorium Teknologi Informasi & Komunikasi
James Philip Montolalu | 13021106048
Praktikum Metode Numerik
Laboratorium Teknologi Informasi & Komunikasi
James Philip Montolalu | 13021106048
IV.4 Program menggunakan bahasa java
source code
Praktikum Metode Numerik
Laboratorium Teknologi Informasi & Komunikasi
James Philip Montolalu | 13021106048
Baris 5 menciptakan variabel untuk mengiput data (yaitu scan). Baris 7-9 proses
inisialisasi variabel , tipe data. Baris 12-17 proses output. Baris 18-24 proses input
nilai awal dari x, y, ,z. baris 27 menginisialisasi nilai dari n. baris 32-34 untuk
menghitung nilai xk, yk,. Baris 35-38 proses untuk menampilkan xk, yk, zk. Baris
42-54 untuk menghitung selisih nilai. Baris 59-62 untuk menentukan toleransi nilai
selisih x, y,z.
Praktikum Metode Numerik
Laboratorium Teknologi Informasi & Komunikasi
James Philip Montolalu | 13021106048
Keluaran
Praktikum Metode Numerik
Laboratorium Teknologi Informasi & Komunikasi
James Philip Montolalu | 13021106048
Praktikum Metode Numerik
Laboratorium Teknologi Informasi & Komunikasi
James Philip Montolalu | 13021106048
Praktikum Metode Numerik
Laboratorium Teknologi Informasi & Komunikasi
James Philip Montolalu | 13021106048
Analisa Program
Setelah dilihat dari hasil keluaran program C++ , program C dan program java,
terdapat perbedaan pada iterasi ke – 12. Pada program C++ hasil perhitungannya
telah dibulatkan menjadi nilai x=2, y=3, z=4. Sedangkan pada program C dan java
hasilnya nilai x=1.999998, y=3.999996, z=2.999998. Pada program C++ dan C
menampilkan sampai 15 iterasi, sedangkan pada program java hanya menampilkan
sampai iterasi 12, di mana hasil yang ditampilkan sama seperti hasil pada program C.
IV.5 Desk check
Praktikum Metode Numerik
Laboratorium Teknologi Informasi & Komunikasi
James Philip Montolalu | 13021106048
Praktikum Metode Numerik
Laboratorium Teknologi Informasi & Komunikasi
James Philip Montolalu | 13021106048
Praktikum Metode Numerik
Laboratorium Teknologi Informasi & Komunikasi
James Philip Montolalu | 13021106048
BAB V
PENUTUP
V.1 Kesimpulan
Metode iterasi Jacobi merupakan salah satu bidang analisis numerik yang
digunakan untuk menyelesaikan permasalahan persamaan linear dan sering dijumpai
dalam berbagai disiplin ilmu. Metode iterasi Jacobi merupakan salah satu metode tak
langsung, yaitu bermula dari suatu hampiran penyelesaian awal dan kemudian
berusaha memperbaiki hampiran dalam tak berhingga dengan langkah konvergen.
Metode iterasi Jacobi ini digunakan untuk menyelesaikan persamaan linear
berukuran besar dan proporsi koefisien nolnya besar.
V.2 Saran
1. Untuk Labpratorium agar tetap menjaga kebersihan.
2. Untuk teman kelompok agar tepat waktu dalam asistensi dan tetap semangat
dalam menyelesaikan laporan ini.
3. Untuk kakak asisten semoga dapat membimbing kami dengan semangat dan
terimaksih atas waktu yang telah diberikan untuk asistensi.
Praktikum Metode Numerik
Laboratorium Teknologi Informasi & Komunikasi
James Philip Montolalu | 13021106048
DAFTAR PUSTAKA
[1] Kaunang, Ir. STG, MT. Stanley Karouw, ST., MTI dan Kartika Tanudjaja, ST.,
MTI. “Modul 5 Praktikum Metode Numerik”. Iterasi Jacobi.Manado:
Laboratorium Teknologi Informasi dan Komunikasi, 2015.
[2] Widyanto, Ahlis (2007, November). Iterasi Jacobi [Online]. Available :
https://ahliswiwite.files.wordpress.com/2007/11/iterasi-
sjacobi.doc+&cd=1&hl=en&ct=clnk&gl=id 3