Metode Eliminasi Gauss adalah salah satu metode numerik yang menerapkan eliminasi untuk mencari nilai variabel dari beberapa persamaan. Metode ini mengubah beberapa persamaan menjadi bentuk matrik. Kemudian dari bentuk matrik ini dilakukan eliminasi sehingga diperoleh satu variabel bebas. Berikut adalah algoritma dan source code metode eliminasi gauss :
Algoritma :
#include <stdio.h>
#include <math.h>
#define maks 20
main (){
float x[maks][maks], tempx[maks][maks], temp2[maks], temp;
int i,j,or=3, k=0;
char a='`';
puts("\t\tMETODE GAUSS ");
puts("\t ax1 + bx2 + cx3 + .... =y");
do{
printf("Masukan jumlah ordo matrik : ");
scanf("%d", &or);
}while(or<2);
for(i=0;i<or;i++){
printf("persamaan ke-%d\n", i+1);
for(j=0;j<or;j++){
printf("nilai %c : ",a+j+1);
scanf("%f", &x[i][j]);
if(j==or-1){
printf("nilai y : ");
scanf("%f", &x[i][j+1]);
break;
}
}
}
printf("Dalam bentuk augmented matriks\n");
for(i=0;i<or;i++){
printf("|");
for(j=0;j<or+1;j++){
printf("%5.1f", x[i][j]);
}
printf(" |\n");
}
//tukar
for(i=0;i<3;i++){
if(x[0][0]==0){
for(j=0;j<or+1;j++){
tempx[i][j]=x[0][j];
}
for(j=0;j<or+1;j++){
x[0][j]=x[i+1][j];
}
for(j=0;j<or+1;j++){
x[i+1][j]=tempx[i][j];
}
}
}
//hitung
for(i=0;i<or;i++){
temp=x[i][i];
for(k=i;k<=or;k++){
x[i][k] /= temp;
}
for(j=i+1;j<=or;j++){
temp2[i] = x[j][i];
for(k=i;k<=or;k++){
x[j][k] -= temp2[i] * x[i][k];
}
}
}
puts("");
//cetak
printf("Setelah eliminasi : \n");
for(i=0;i<or;i++){
printf("|");
for(j=0;j<or+1;j++){
printf("%5.1f", x[i][j]);
}
printf(" |\n");
}
puts("");
}
untuk contoh mari kita cari akar dari persamaan di bawah ini :
x1 + x2 + x3 = 6
x1 + 2x2 -x3 = 2
2x1 + x2 + 2x3 = 10
Maka outputnya akan seperti berikut :
Sekian untuk ilmu hari ini. Bagikan ke orang-orang yang Anda kenal karena berbagi itu menyenangkan.
"Penghargaan merupakan satu pendorong utama yang membuat manusia tetap bergerak"~Andrew Fuller
Algoritma :
- Masukan jumlah ordo matriks;
- Masukan semua elemen matriks;3.
- Jika matrik baris 1 kolom 1 == 0:tukar dengan baris lain;
- i=1;
- Bagi semua elemen matrik baris satu dengan elemen baris i kolom i;
- Simpan nilai baris selanjutnya kolom selanjutnya; (baris[i+1]kolom[i+1])
- Setiap elemen dari baris selanjutnya sampai baris sama dengan ordo dikurangi dengan nilai pada baris [i+1]kolom[i+1] dikali baris[i+1][i];
- Naikan nilai i +1;
- Kembali ke langkah 5 sampai i sma dengan ordo
- Cetak semua elemen matriks.
#include <stdio.h>
#include <math.h>
#define maks 20
main (){
float x[maks][maks], tempx[maks][maks], temp2[maks], temp;
int i,j,or=3, k=0;
char a='`';
puts("\t\tMETODE GAUSS ");
puts("\t ax1 + bx2 + cx3 + .... =y");
do{
printf("Masukan jumlah ordo matrik : ");
scanf("%d", &or);
}while(or<2);
for(i=0;i<or;i++){
printf("persamaan ke-%d\n", i+1);
for(j=0;j<or;j++){
printf("nilai %c : ",a+j+1);
scanf("%f", &x[i][j]);
if(j==or-1){
printf("nilai y : ");
scanf("%f", &x[i][j+1]);
break;
}
}
}
printf("Dalam bentuk augmented matriks\n");
for(i=0;i<or;i++){
printf("|");
for(j=0;j<or+1;j++){
printf("%5.1f", x[i][j]);
}
printf(" |\n");
}
//tukar
for(i=0;i<3;i++){
if(x[0][0]==0){
for(j=0;j<or+1;j++){
tempx[i][j]=x[0][j];
}
for(j=0;j<or+1;j++){
x[0][j]=x[i+1][j];
}
for(j=0;j<or+1;j++){
x[i+1][j]=tempx[i][j];
}
}
}
//hitung
for(i=0;i<or;i++){
temp=x[i][i];
for(k=i;k<=or;k++){
x[i][k] /= temp;
}
for(j=i+1;j<=or;j++){
temp2[i] = x[j][i];
for(k=i;k<=or;k++){
x[j][k] -= temp2[i] * x[i][k];
}
}
}
puts("");
//cetak
printf("Setelah eliminasi : \n");
for(i=0;i<or;i++){
printf("|");
for(j=0;j<or+1;j++){
printf("%5.1f", x[i][j]);
}
printf(" |\n");
}
puts("");
}
untuk contoh mari kita cari akar dari persamaan di bawah ini :
x1 + x2 + x3 = 6
x1 + 2x2 -x3 = 2
2x1 + x2 + 2x3 = 10
Maka outputnya akan seperti berikut :
Sekian untuk ilmu hari ini. Bagikan ke orang-orang yang Anda kenal karena berbagi itu menyenangkan.
"Penghargaan merupakan satu pendorong utama yang membuat manusia tetap bergerak"~Andrew Fuller
nyimak aja dulu gan.
ReplyDeleteini pakai matlab gan?
ReplyDeletepermisi, scriptnya menggunakan matlab ya?
ReplyDeletebukan, tapi menggunakan bahasa C
Deletepake visual basic
ReplyDeleteItu bahasa pemrograman nya pake apa??
ReplyDeletebahasa C
Delete