Sabtu, 16 April 2011

/* MENGHITUNG INVERS MATRIKS DENGAN METODE GAUSS-JORDAN */



#include "stdio.h"
#include "conio.h"
void main()
{ float p[20], a[20][20], t;
int m, i, j, k, x;
clrscr();
printf("\nMasukkan ukuran matriks : \n");
scanf("%d", &m);
printf("\nMasukkan nilai elemen matriks yang akan diinvers”);
printf("\ nsecara baris per baris\n");
/* Membaca matriks asli */
for(i=1; i<=m; i++)
{ printf("\n");
for(j=1; j<=m; j++)
{ printf("A(%d,%d)= ",i, j);
scanf("%f", &a[i][j]);
}
}
/* Mencetak Matriks asli */
printf("\nMatriks asli : ");
for(i=1; i<=m; i++)
{ printf("\n");
for(j=1; j<=m; j++)
printf(" %.2f", a[i][j]);
}
/* Proses inversi */
for(i=1; i<=m; i++)
{ p[i] = a[i][j];
a[i][j] = 1;
for(j=1; j<=m; j++)
{ a[i][j] = a[i][j]/p[i];
}
for(k=1; k<=m; k++)
{ if(k != i)
{ t = a[k][i];
a[k][i] = 0;
for(x=1; x<=m; x++)
a[k][x] = a[k][x] - a[i][x] * t;
}
}
}
/* Mencetak matriks hasil inversi*/
printf("\n\nMatriks inversi : \n");
for(i =1; i <=m; i++)
{ for(j=1; j<=m; j++)
printf(" %.1f", a[i][j]);
printf(" \n");
}
getch();
}

2 komentar:

  1. programnya hampir sama, tapi maaf mas,, dalam program diatas ada yang salah dikit,,,
    silahkan di cek lagi...

    pada baris ke-28 dan ke-29 di catatan blog anda...
    p[i] nya adalah a[i][j]
    a[i][j] = 1

    bukan a[i][j], namun a[i][i]
    karena metode gauss jordan akan menjadi kan matriks 11 22 33 dst bernilai 1

    terimakasih,,,salam kenal aja,,
    b_d

    BalasHapus
  2. q jg bisa buat kya gtu doang....

    BalasHapus