Metode Gauss Seidel Ditulis oleh Administrator Minggu, 31 Januari 2010 17:50 - Pemutakhiran Terakhir Minggu, 31 Januari 2010 18:00
Asslamu’alaikum wr wb..,
Hmmm…. Hela nafas dulu ya… Huft..=)
Ok, kali ini adalah postingan mengenai metode lain dalam menyelesaikan beberapa persamaan linear. Yakni Metode Gauss Seidel. Sebenarnya metode ini mirip dengan Metode Jacobi, metode ini merupakan perbaikan dari metode Jacobi, sehingga ketika nanti kita amati pada proses hitungannya, metode gauss seidel memerlukan iterasi lebih sedikit dibandingkan dengan metode Jacobi untuk mencapai hasilnya. Apa bedanya..???? Namanya jelas beda ya.. hihihi…=p
Nah, perbedaan dengan metode Jacobi yang saya postingkan diartikel sebelumnya ya, kalau metode Jacobi untuk menghitung nilai variabel pada suatu iterasi, maka digunakan nilai yang diperoleh iterasi sebelumnya. Misal untuk menghitung nilai X1, X2, X3 dan X4 pada iterasi kedua, maka nilai variabel yang dimasukkan menggunakan hasil daripada iterasi pertama. Nah, kalau pada metode gauss seidel, penggunaan nilai itu langsung dipakai menggunakan nilai terakhir. Misal pada iterasi kedua, begitu X1 diperoleh, maka nilai itu turut langsung digunakan untuk menghitung nilai X2, setelahnya untuk menghitung X3 pada iterasi kedua tersebut, hasil dari X1 dan X2 juga langsung dipakai. Sekali lagi, kalau pada metode Jacobi tidak langsung digunakan. Jadi ketika menghitung nilai X3 pada iterasi kedua, nilai X1, X2, X4 yang digunakan adalah hasil iterasi sebelumnya(pertama), meskipun nilai X1 dan X2 sudah ada hasil baru pada iterasi kedua.. Jadi begitu kawan.. Gimana..????? Mantaff kan..???? Hoho… Coba dianalisa lagi ya..!!!!!!!
Dengan soal yang sama pada artikel postingan sebelumnbya yakni metode Jacobi, berikut table hasilnya :
Soal :
1 / 11
Metode Gauss Seidel Ditulis oleh Administrator Minggu, 31 Januari 2010 17:50 - Pemutakhiran Terakhir Minggu, 31 Januari 2010 18:00
20x 1 + x 2 - x 3 = 17
x 1 - 10x 2 + x 3 =13
-x 1 + x 2 + 10x 3 =18
Menjadi :
x 1 = 17/20 – 1/20 x 2 + 1/20 x 3
x 2 = -13/10 + 1/10 x 1 + 1/10 x 3
x 3 = 18/10 + 1/10 x 1 – 1/10 x 2
Dengan memilih taksiran nilai awal adalah 0 untuk semua variabelnya, maka berikut table hasilnya :
Var
Aproksimasi Awal
Aproksimasi Pertama
Aproksimasi Kedua
2 / 11
Metode Gauss Seidel Ditulis oleh Administrator Minggu, 31 Januari 2010 17:50 - Pemutakhiran Terakhir Minggu, 31 Januari 2010 18:00
Aproksimasi Ketiga
Aproksimasi Keempat
X
1
0
0.850
1.0111
0.99995
1.0000
X
2
0
-1.215
3 / 11
Metode Gauss Seidel Ditulis oleh Administrator Minggu, 31 Januari 2010 17:50 - Pemutakhiran Terakhir Minggu, 31 Januari 2010 18:00
-0.99824
-0.99992
-1.0000
X
3
0
2.0065
2.0009
2.0000
2.0000
Nah, terbukti kan… Disini hanya dengan 4 iterasi sudah didapat nilainya. Dengan metode Jacobi pada postingan sebelumnya dengan soal yang sama baru dapat nilainya setelah iterasi ke 6.. Berikut listing programnya (Source Code Metode Gauss Seidel) dalam bahasa C / C++.
4 / 11
Metode Gauss Seidel Ditulis oleh Administrator Minggu, 31 Januari 2010 17:50 - Pemutakhiran Terakhir Minggu, 31 Januari 2010 18:00
======================================================================== ================
#include
using namespace std;
int main()
{
float a[100][100], nilai_persamaan[100], jumlah_kurang, delta, toleransi, taksiran[100], x[100], y[100];
char variabel;
int baris, kolom, n, jumlah_persamaan, ulang, banyak_iterasi, b_i=0;
cout<<"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%n";
5 / 11
Metode Gauss Seidel Ditulis oleh Administrator Minggu, 31 Januari 2010 17:50 - Pemutakhiran Terakhir Minggu, 31 Januari 2010 18:00
cout<<"Selamat datang di program JACOBI ITERATIONn";
cout<<"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%nn ";
cout<<"Masukkan jumlah persamaan : ";
cin>>jumlah_persamaan;
n=jumlah_persamaan;
for(baris=0, ulang=1; baris<=jumlah_persamaan, ulang<=jumlah_persamaan; baris++, ulang++)
{
cout<<"------------------------------------------n";
cout<<"Masukkan koefisien pada persamaan ke-"<
cout<<"------------------------------------------n";
for(variabel='A', kolom=0 ; variabel<=n, kolom<=n-1 ;variabel++, kolom++)//Masukan indeks persamaan
6 / 11
Metode Gauss Seidel Ditulis oleh Administrator Minggu, 31 Januari 2010 17:50 - Pemutakhiran Terakhir Minggu, 31 Januari 2010 18:00
{
cout<<"Masukkan koefisien variabel "<
cin>>a[baris][kolom];
}
cout<<"Masukkan nilai persamaan : ";
cin>>nilai_persamaan[baris];
cout<<" Persamaan ke-" <> "; //Menampilkan persamaan
for(variabel='A', kolom=0 ; variabel<=n, kolom<=n-1 ;variabel++, kolom++)
{
cout<
}
cout<<"b";
7 / 11
Metode Gauss Seidel Ditulis oleh Administrator Minggu, 31 Januari 2010 17:50 - Pemutakhiran Terakhir Minggu, 31 Januari 2010 18:00
cout<<"="<
}
cout<<"------------------------------------------n";
for(variabel='A', baris=0 ; variabel<=n, baris<=n-1 ;variabel++, baris++)
{
cout<<"Masukkan taksiran untuk nilai "<
cin>>taksiran[baris];
}
cout<<"Masukkan banyak iterasi : ";
cin>>banyak_iterasi;
while(b_i<=banyak_iterasi-1)
8 / 11
Metode Gauss Seidel Ditulis oleh Administrator Minggu, 31 Januari 2010 17:50 - Pemutakhiran Terakhir Minggu, 31 Januari 2010 18:00
{
cout<<"------------------------------------------n";
cout<<"Iterasi ke-"<
for(variabel='A', baris=0 ; variabel<=n, baris<=jumlah_persamaan-1; variabel++, baris++)
{ jumlah_kurang=0;
for(kolom=0; kolom<=n-1; kolom++)
{
if(baris!=kolom)
{
jumlah_kurang=jumlah_kurang+a[baris][kolom]*taksiran[kolom];
}
}
9 / 11
Metode Gauss Seidel Ditulis oleh Administrator Minggu, 31 Januari 2010 17:50 - Pemutakhiran Terakhir Minggu, 31 Januari 2010 18:00
taksiran[baris]=(nilai_persamaan[baris]-jumlah_kurang)/a[baris][baris];
cout<<"nIni nilai variabel "<
}
b_i++;
}
cout<<"nn";
system("pause");
}
======================================================================== =================
Begitu ya, selamat menganalisa…!!!!!!
10 / 11
Metode Gauss Seidel Ditulis oleh Administrator Minggu, 31 Januari 2010 17:50 - Pemutakhiran Terakhir Minggu, 31 Januari 2010 18:00
Ini kalau mau download file cpp dan exe nya program diatas. Klik disini download
Wassalamu’alaikum wr wb
11 / 11