10
TUGAS METODE NUMERIK DISUSUN OLEH : 1. JASON KURNIAWAN (13/347220/PA/15176) 2. KURNIA RAMADANI (13/347256/PA/15184) 3. ILHAM SULAKSONO (13/347352/PA/15198) 4. DHAYU ANGGI SETYOKO (13/348707/PA/15470) UNIVERSITAS GADJAH MADA YOGYAKARTA TAHUN AJARAN 2014/2015

Tugas Metode Numerik - Eliminasi Gaus

Embed Size (px)

DESCRIPTION

gauss elimination partial pivot metode numerik

Citation preview

  • TUGAS METODE NUMERIK

    DISUSUN OLEH :

    1. JASON KURNIAWAN (13/347220/PA/15176)

    2. KURNIA RAMADANI (13/347256/PA/15184)

    3. ILHAM SULAKSONO (13/347352/PA/15198)

    4. DHAYU ANGGI SETYOKO (13/348707/PA/15470)

    UNIVERSITAS GADJAH MADA YOGYAKARTA

    TAHUN AJARAN 2014/2015

  • I. DASAR TEORI

    Eliminasi Gauss adalah suatu metode untuk mengoperasikan nilai-nilai di dalam matriks

    sehingga menjadi matriks yang lebih sederhana lagi. Dengan melakukan operasi baris sehingga

    matriks tersebut menjadi matriks yang baris. Ini dapat digunakan sebagai salah satu metode

    penyelesaian persamaan linear dengan menggunakan matriks. Caranya dengan mengubah persamaan

    linear tersebut ke dalam matriks teraugmentasi dan mengoperasikannya. Setelah menjadi matriks

    baris, lakukan substitusi balik untuk mendapatkan nilai dari variabel-variabel tersebut.

    1) Kelebihan dan Kekurangan

    Metode ini digunakan dalam analisis numerik untuk meminimalkan mengisi selama eliminasi,

    dengan beberapa tahap

    Keuntungan :

    a. menentukan apakah sistem konsisten.

    b. menghilangkan kebutuhan untuk menulis ulang variabel setiap langka.

    c. lebih mudah untuk memecahkan

    Kelemahan :

    a. memiliki masalah akurasi saat pembulatan desimal

    Melakukan pertukaran baris untuk menghindari pivot yang bernilai nol adalah cara pivoting

    yang sederhana (simple pivoting). Masalah ini dapat juga timbul bila elemen pivot sangat dekat ke

    nol, karena jika elemen pivot sangat kecil dibandingkan terhadap elemen lainnya, maka galat

    pembulatan dapat muncul.

    Ada dua macam tata-ancang pivoting, yaitu:

    a. Pivoting sebagian (partial pivoting)

    Pada tata-ancang pivoting sebagian, pivot dipilih dari semua elemen pada kolom p yang

    mempunyai nilai mutlak terbesar, Lalu pertukarkan baris k dengan baris ke p. Untuk operasi baris

    kedua, carilah elemen x pada baris kedua, dimulai dari baris ke-2 sam pai baris ke-4, yang nilai

    mutlaknya terbesar, lalu pertukarkan barisnya dengan baris ke-2

    perhatikanlah bahwa teknik pivoting sebagian juga sekaligus menghindari pemilihan pivot = 0

    (sebagaimana dalam simple pivoting) karena 0 tidak akan pernah menjadi elemen dengan nilai

    mutlak terbesar, kecuali jika seluruh elemen di kolom yang diacu adalah 0. Apabila setelah

    melakukan pivoting sebagian ternyata elemen pivot = 0, itu berarti system persamaan linier tidak

    dapat diselesaikan (singular system).

    a. Pivoting Lengkap (complete pivoting)

    Jika disamping baris, kolom juga dikutkan dalam pencarian elemen terbesar dan kemudian

    dipertukarkan, maka tata-ancang ini disebut pivoting lengkap. Pivoting lengkap jarang dipakai dalam

    program sederhana karena pertukaran kolom mengubah urutan suku x dan akibatnya menambah

    kerumitan program secara berarti

  • II. PENGIMPLEMENTASIAN PADA PROGRAM DAN PEMBAHASAN

    Untuk menerapkan metode Eliminasi Gaus , kali ini kami mengimplementasikannya

    dalam bahasa C++ .

    Dalam source code C++ di bawah ini , kami menggunakan dua program, yaitu

    program sebagai file input masukkan dan program untuk mengimplementasikan Metode

    Eliminasi Gaus dan di program ini kami menggunakan metode Pivoting Sebagian .

    Program untuk File Inputan

    #include

    #include

    #include

    #include

    using namespace std;

    int main () {

    ofstream myfile;

    int n;

    char *filename;

    srand(time(NULL));

    coutn;

    myfile.open ("example.txt");

    myfile

  • Program di atas akan membuat sebuah file yang bernama example.txt yang berisi data

    yang nilainya random dan jumlahnya sesuai dengan input yang kita masukkan (n) . Berikut

    ini adalah tampilan program yang telah di-compile dan isi dari file example.txt :

    for(int i=0;i

  • Kemudian berikut ini adalah program implementasi metode Eliminasi Gaus dengan Pivoting

    Sebagian , kami menyimpan data ke dalam array , berikut adalah source codenya :

    #include

    #include

    #include

    #include

    using namespace std;

    double abs(double n){

    if(n>n;

    double arrayb[n],*array[n];

    for(int i=0;iarrayb[i];

    }

  • int row,coloumn; double data;

    for(int i=0; irow>>coloumn>>data;

    array[row][coloumn]=data;

    }

    }

    file.close();

    cout

  • temp=arrayb[m];

    arrayb[m]=arrayb[maxrow];

    arrayb[maxrow]=temp;

    }

    for(int j=i+1;j

  • Program di atas akan membuat sebuah file yang bernama solution.txt yang berisi solusi

    dari matriks yang telah dibuat pada file example.txt . Berikut ini adalah tampilan program

    yang telah di-compile dan isi dari file solusi.txt :

    for(int i=0;i

  • Pada syntax :

    for(int i=0;i

  • Berikut ini adalah syntax yang digunakan untuk Backward Elimination :

    double arrayx[n];

    for(int x=0; x=0; i--){

    int j=n-1;

    while(j>=1){

    arrayb[i]=arrayb[i]-(array[i][j]*arrayx[j]);

    j--;

    }

    arrayx[i]=arrayb[i]/array[i][i];

    }

    Setelah langkah Backward Elimination selesai , solusi akan disimpan pada file yang akan

    dibuat dan bernama Solution.txt :

    ofstream fileout;

    fileout.open("solution.txt");

    fileout