Senin, 27 Januari 2014

Program eliminasi gauss C++

program eliminasi gauss
















#include<iostream.h>
#include<stdlib.h>
#include<coni0.h>
#include<stdi0.h>

#define Data 10

main()
{
    FILE *eliminasi_gauss;
 double  A[Data][Data],        /* Matriks A */
      H[Data],    /* Matriks H */
             x[Data],             /* Matriks x */
      m,     /* Faktor Pengali */
             temp;
    int i, j, k, n, p, q, r;
    char lagi;

    do
    {
     clrscr();
       eliminasi_gauss = fopen("eliminasi_gauss.txt", "w+");

       cout << "\n\nMetode Eliminasi Gauss Matriks untuk PLS\n";
     cout << "========================================\n\n";

     /*********************************************************/
     /* Pengisian Matriks A (3 x 3) dan H (3 x 1)             */
     /*********************************************************/

     /* Pengisian Data Matriks A  (umumnya (3 x 3) */
     cout << "\nMasukkan Nilai Matriks A (umumnya (3 x 3))\n";
     cout << "------------------------------------------\n";
     cout << "\nMasukkan Jumlah Baris ? ";
     cin >> p;
     cout << "\nMasukkan Jumlah Kolom ? ";
     cin >> q;
       printf("\n");

     /* Matriks A */
     for (i = 0; i < p; i++)
     {
      for (j = 0; j < q; j++)
        {
            printf("A[%d][%d] = ", i+1, j+1);
           cin >> A[i][j];
        }
        printf("\n");
     }

     /* Pengisian Data Matriks H (umumnya (3 x 1) */
     cout << "\nMasukkan Nilai Matriks H (umumnya (3 x 1))\n";
     cout << "------------------------------------------\n";
     cout << "\nMasukkan Jumlah Baris ? ";
       cin >> r;
       printf("\n");



     /* Matriks H */
     for (n = 0; n < r; n++)
     {
           printf("H[%d] = ", n+1);
          cin >> H[n];
     } 

     /*********************************************************/ 
     /* Mencetak Data Matriks A (3 x 3) dan H (3 x 1)         */
     /*********************************************************/ 
     /* Cetak Matriks A */
     cout << "\n\n\nMatriks A dan H sebelum proses Eliminasi Gauss\n"; 
     cout << "----------------------------------------------";
     printf("\n\nA = "); 
       fprintf(eliminasi_gauss,"\n\nA = ");
     for (i = 0; i < p; i++) 
     {
      printf("\n"); 
           fprintf(eliminasi_gauss,"\n");
      for (j = 0; j < q; j++) 
        {
            printf("\t%.3f", A[i][j]); 
              fprintf(eliminasi_gauss,"\t%.3f", A[i][j]);
        } 
     }
     /* Cetak Matriks H */ 
     printf("\n\nH = \n");
       fprintf(eliminasi_gauss,"\n\nH = \n"); 
     for (n = 0; n < r; n++)
     { 
        printf("\t%.3f\n", H[n]);
           fprintf(eliminasi_gauss,"\t%.3f\n", H[n]); 
     }
 
     /*********************************************************/
     /* Eliminasi Gauss Matriks A (3 x 3) dan H (3 x 1)       */ 
     /*********************************************************/
     /* Proses Eliminasi Gauss */ 
     for (k = 0; k < p-1; k++)
     { 
        for (i = k+1; i < q; i++)
        { 
         m = A[i][k]/A[k][k];
         for (j = k; j < q; j++) 
            {
             A[i][j] = A[i][j] - m * A[k][j]; 
            }
            H[i] = H[i] - m * H[k]; 
        }
     } 

     /*********************************************************/ 
     /* Cetak Matriks A (3 x 3) dan H (3 x 1) Hasil Eliminasi */
     /*********************************************************/ 
     /* Cetak Matriks A hasil Eliminasi Gauss */
     cout << "\n\nMatriks A dan H setelah proses Eliminasi Gauss\n"; 
     cout << "----------------------------------------------";
 
     printf("\n\nA = ");
       fprintf(eliminasi_gauss,"\n\nA = "); 
     for (i = 0; i < p; i++)
     { 
      printf("\n");
           fprintf(eliminasi_gauss,"\n");

            

      for (j = 0; j < q; j++) 
        {
            printf("\t%.3f", A[i][j]); 
              fprintf(eliminasi_gauss,"\t%.3f", A[i][j]);
        } 
     }
 
     /* Cetak Matriks H hasil Eliminasi Gauss */
     printf("\n\nH = \n"); 
       fprintf(eliminasi_gauss,"\n\nH = \n");
     for (n = 0; n < r; n++) 
     {
        printf("\t%.3f\n", H[n]); 
           fprintf(eliminasi_gauss,"\t%.3f\n", H[n]);
     } 

     /*********************************************************/ 
     /* Matriks x (3 x 1) Hasil Penghitungan                  */
     /*********************************************************/ 
     /* Solusi x[i] */
     for(k = p-1; k >= 0; k--) 
     {
      temp = 0.0; 
        for(j = k+1; j < q; j++)
        { 
         temp = temp + A[k][j] * x[j];
        } 
        x[k] = (H[k] - temp)/A[k][k];
     } 

     /* Cetak Matriks x hasil Perhitungan */ 
     cout << "\n\nSolusi x\n";
     cout << "--------"; 
     printf("\n\nx = \n");
       fprintf(eliminasi_gauss,"\n\nSolusi x\n"); 
     for (n = r-1; n >= 0; n--)
     { 
        printf("\tx[%d] = %.3f\n", n+1, x[n]);
           fprintf(eliminasi_gauss,"\tx[%d] = %.3f\n", n+1, x[n]); 
     }
 
       fclose(eliminasi_gauss);
 
       cout << "\n\n\nCoba lagi dengan data yang berbeda (y/t) ? ";
       cin >> lagi; 

    }while(lagi != 't'); 

    return 0; 
}

  
download


silahkan edit dan rubah sesuai keinginan...


0 komentar:

Posting Komentar