Lompat ke konten Lompat ke sidebar Lompat ke footer

Gaussian Elimination C++ Program

 berikut source code yang sudah aku jelaskan dalam listing code nya juga Gaussian Elimination C++ Program

Gaussian Elimination C++ Program


berikut source code yang sudah aku jelaskan dalam listing code nya juga

Library yang di butuhkan C++


 #include <iostream> #include <math.h> #include <cmath> 

Source Code nya

 /* * Gauss Method * NIM : 17615006 * Yogi Arif Widodo */  #define MAX 15  using namespace std;  void lineYogi() {   cout <>n;     system("cls");     lineYogi();     //==========================     cin.ignore();  //for clear of line by cin     ordoMatrik = atoi(n);  //because here line converting have linespace      hrLine();     cout <<"TIP :\tJika ordo matrix (n) = 2, maka masukan matrix 4x\n\tcontoh Input Untuk Matrik A = 1 2 3 4 (gunakan spasi)\n";     cout <<"     \tLalu masukan Vektor 2x \n";     cout <<"     \tContoh Input Untuk vector = 1 2 (gunakan spasi) ";      hrLine();     cout <<"ordo matrix yang dipakai : " <>elemen;         cin.ignore();//for clear of line by cin         A[i][j] = atof(elemen);//because here line converting have linespace       }      cout <<"\n\t\tInput untuk Vektor B = ";     for(i = 0; i < ordoMatrik; i++)     {        // printf("\nElemen baris ke-%d ", i+1);        // cout <<"\nElemen baris ke-" <>elemen;        cin.ignore();//for clear of line by cin        B[i] = atof(elemen);//because here line converting have linespace     }     //     // getch();     hrLine();      cout<<"\tAugmenting matrik A dan B: ";     hrLine();     for(s = 0; s < ordoMatrik; s++)     {         for(t=0; t <= ordoMatrik; t++)         {            if(t != ordoMatrik)              AugA[s][t] = A[s][t];            else              AugA[s][t] = B[s];         }     }      cout<<"\n\tMatrik Augmented A\n";     designFormView(); //designYogi     for(i = 0; i < ordoMatrik; i++)     {       for (j = 0; j < ordoMatrik+1; j++)       {         // printf("%f ",AugA[i][j]);         cout <<"\t"<>backOrExit;     if (backOrExit == 'y' || backOrExit =='Y')     {         system("cls");         goto HOMEYOGI;     }     else     {       system("EXIT");     } }  


Jika code di atas ada yang error alasannya yakni block code bertabrakan dengan format posting blogger , silahkan lihat versi github di bawah ini :

Github Code Version

https://github.com/yogithesymbian/c-/blob/master/linearSimultan/gaussYogiMethod.cpp 



Berikut Penjelasan format c language yang bila di c++ tinggal panggil saja dengan library iostream.

example :

di C language
 printf("X%d: %.2f\n", i+1, X[i]); 
di C++ language
   cout <<"\tX" <<i+1 <<":" <<X[i] <<endl; 



Kode Format Kegunaan
%c Membaca sebuah karakter
%d Membaca sebuah nilai integer decimal

Untuk Code Format Scanf Selengkpanya ada di : SCANF FORMAT WIKIPEDIA


C Language Code Version

Library yang di butuhkan C Lanugage


 #include <stdio.h> #include <conio.h> #include <stdlib.h> 


C Language Code

   int main(void) {     int ordoMatrik, i, j, s, t, nx, k;     float A[MAX][MAX], B[MAX], AugA[MAX][MAX], X[MAX], C, sum,                         temp;     char n[MAX], elemen[MAX];          printf("Masukkan ordo matrik (n): ");     gets(n);     ordoMatrik = atoi(n);          printf("\nInput untuk Matrik A\n");     for(i = 0; i < ordoMatrik; i++)       for (j = 0; j < ordoMatrik; j++)             {         printf("Elemen %d%d: ", i+1, j+1);         gets(elemen);         A[i][j] = atof(elemen);       }            printf("\nInput untuk Vektor B");     for(i = 0; i < ordoMatrik; i++)     {        printf("\nElemen baris ke-%d ", i+1);        gets(elemen);        B[i] = atof(elemen);     }          getch();     printf("Augmenting matrik A dan B: ");     for(s = 0; s < ordoMatrik; s++)     {         for(t=0; t <= ordoMatrik; t++)         {            if(t != ordoMatrik)              AugA[s][t] = A[s][t];            else              AugA[s][t] = B[s];         }           }            printf("\nMatrik Augmented A\n");     for(i = 0; i < ordoMatrik; i++)     {       for (j = 0; j < ordoMatrik+1; j++)               printf("%f ",AugA[i][j]);         printf("\n");     }         //Proses pertukaran baris, Jika nilai aii bernilai nol     for(i = 0;i < ordoMatrik; i++){           if (AugA[i][i] == 0)           {              for(j = 0; j < ordoMatrik; ++j){                  if(j == i) continue;                               if(AugA[j][i] != 0) {                    //tukar baris matrik                                for(s = 0; s <= ordoMatrik; s++){                       temp = AugA[i][s];                        AugA[i][s] = AugA[j][s];                        AugA[j][s] = temp;                    }break;                  }                  else                      continue;                              }break;           }           else              continue;       }           printf("\nMatrik A (Setelah Pertukaran) \n");     for(i = 0; i < ordoMatrik; i++)     {       for (j = 0; j < ordoMatrik+1; j++)               printf("%f ",AugA[i][j]);         printf("\n");     }             //Proses Operasi Baris Elementer       for(i=0; i < ordoMatrik; i++)       for(j = i+1; j < ordoMatrik; j++)       {             C = AugA[j][i] / AugA[i][i];             for(k = 0; k <= ordoMatrik; k++)                AugA[j][k] = AugA[j][k] - C*AugA[i][k];             //AugA[j][k]=0;       }            printf("\nMatrik A (Setelah OBE) \n");     for(i = 0; i < ordoMatrik; i++)     {       for (j = 0; j < ordoMatrik+1; j++)               printf("%f ",AugA[i][j]);         printf("\n");     }      //Mencari nilai variabel Xi     X[ordoMatrik-1]=AugA[ordoMatrik-1][ordoMatrik]/AugA[ordoMatrik-1][ordoMatrik-1];     for(nx=0; nx < ordoMatrik;nx++)     {         sum = 0;         i = ordoMatrik-1-nx;         for(j = i+1; j < ordoMatrik; j++)            sum = sum + AugA[i][j] * X[j];         X[i] = (AugA[i][ordoMatrik]-sum)/AugA[i][i];              }          //Menampilkan nilai variabel xi     printf("\n");     for(i = 0; i < ordoMatrik; i++)           printf("X%d: %.2f\n", i+1, X[i]);                getch(); }    


Sumber https://scodeid.blogspot.com/