Senin, 07 Mei 2012

Iterasi Jacobi

MODUL 6 Iterasi Jacobi
BAB I
TUJUAN DAN DASAR TEORI

I.1 Tujuan
1) Menguasai iterasi Jacobi yang digunakan dalam komputasi numerik.
2) Memahami algoritma pemrograman untuk merancang program iterasi Jacobi.
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
Ax = B
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:
 
Dx | (L | U)x = b

Kemudian
x = D -1 [b – ( L | U ) x]

Jika ditulis dalam aturan iteratif, maka metode Jacobi dapat ditulis sebagai

x(k+1) = D -1 [b – ( L | U ) x(k)]
 
Dimana k merupakan banyaknya iterasi. Jika x(k) menyatakan hampiran ke-k penyelesaian Sistem Persamaan Linear, maka x(0) adalah hampiran awal.


BAB II
ALAT DAN BAHAN

II.1 Alat dan Bahan yang perlu dipersiapkan:
1) Buku Teks
2) Unit Pemroses
3) Aplikasi Pembuatan Program
            a. Notepad / Notepad++
            b. Aplikasi IDE C++ (Bloodsheed Dev C++)
            c. Mathematica
            d. Matlab
            e. IDE Visual Studio 2010
            f. Netbeans atau Eclipse


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 (misalnya dengan menggunakan prosedur Joel Test dan/atau tools seperti NUnit, NCover, NCoverExplorer dan TestDriven.NET, atau menggunakan prosedur pengujian langsung)
7) Membuat dokumentasi Praktikum (misalnya dengan menggunakan Version Control Subversion, Mercurial, Gita tau Veracity)

III.2 Prosedur Khusus
III.2.1 Contoh menulis program menggunakan IDE Bloodshed Dev C++
1)      Untuk menulis program baru caranya tekan CTRL+N atau pilih NEW lalu klik Source File terlebih dahulu sebelum mengetik program.
2)      Ketikkan program anda.
3)      Simpan program dengan menekan tombol CTRL+F12, pilih Save kemudian pada kotak dialog yang muncul ketikkan nama program pada tempat yang tersedia misalnya Contoh1.cpp, kemudian klik Save atau tekan <ENTER>
4)      Jalankan program dengan terlebih dahulu melakukan kompilasi. Hal ini dapat dilakukan sekaligus dengan mengklik Compile & Run (F9) pada menu bar ataulangsung menekan F9 pada keyboard.
5)      Bila kompilasi tidak berhasil dan memunculkan pesan error, periksa kembali kode program yang ada kemudian perbaiki kesalahan dan lakukan kembali langkah 3 dan 4.  
6)      Untuk membuka arsip yang ada, gunakan OPEN atau tekan CTRL+O pada keyboard.

III.2.2 Prosedur Uji Coba
Perhatikan penggalan program berikut
Lakukan langkah-langkah berikut:
1. Terdapat sebuah program dibawah
2. Pahami algoritma penyelesaian masalah pada program diatas!
3. Tuliskan program berdasarkan langkah-langkah algoritma penyelesaian masalah!
4. Jalankan program
5. Temukan kesalahan program
6. Membuat dokumentasi
7. Lakukan kembali langkah 4 hingga langkah 6
8. Tuliskan program yang sudah benar
9. Membuat dokumentasi laporan lengkap

Contoh Program:
#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;
}

3.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

Tidak ada komentar:

Posting Komentar