View
135
Download
22
Category
Preview:
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
Recommended