Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <math.h>
- #include <stdlib.h>
- #define maks 100
- float A[maks][maks];
- float ep;
- int n;
- void tukar_baris(int i, int besar)
- {
- float temp[100];
- int j;
- for(j=0;j<=n;j++) {
- temp[j] = A[i][j];
- A[i][j] = A[besar][j];
- A[besar][j] = temp[j];
- }
- }
- void tampil()
- {
- int i,j;
- for(i=0;i<n;i++) {
- for(j=0;j<n+1;j++) {
- printf("%5g",A[i][j]);
- }
- printf("\n");
- }
- printf("\n");
- }
- void masukkan()
- {
- int i,j;
- float v[100],temp,tempa[100][100];
- printf(" Masukkan toleransi error : "); scanf("%d", &ep);
- fflush(stdin);
- printf(" Masukkan ukuran matriks : "); scanf("%d",&n);
- puts("----------------------------------------");
- for(i=0;i<n;i++) {
- for(j=0;j<n;j++) {
- printf(" Matrik A[%d][%d] = ",i+1,j+1);
- scanf("%f",&A[i][j]);
- A[i][j] = A[i][j];
- }
- }
- puts("----------------------------------------");
- printf(" Masukkan vektor matriks : \n");
- puts("----------------------------------------");
- for(i=0;i<j;i++) {
- printf(" vektor [%d] = ",i+1);
- scanf("%f",&v[i]);
- A[i][j] = v[i];
- }
- /* pengecekan tukar baris */
- for(i=0;i<n;i++) {
- temp = i;
- if(A[0][0] == 0) {
- for(j=0;j<=n;j++){
- tempa[i][j] = A[0][j];
- }
- for(j=0;j<=n;j++){
- A[0][j] = A[i+1][j];
- }
- for(j=0;j<=n;j++){
- A[i+1][j] = tempa[i][j];
- }
- }
- i = temp;
- }
- /* pengecekan tukar baris */
- printf("\n Matriks awal:\n");
- puts("----------------------------------------");
- tampil();
- }
- void main()
- {
- int j, i, p, k, besar;
- float x[maks],temp, c, pivot;
- puts("========================================");
- puts(" METODE ELIMINASI GAUSS JORDAN");
- puts("========================================");
- masukkan();
- for(i=0;i<n;i++) {
- pivot = A[i][i];
- besar = i;
- if(fabs(pivot) < ep) {
- for(p=i+1;p<n;p++) {
- if(fabs(pivot) < fabs(A[p][i])) {
- pivot = A[p][i];
- besar = p;
- }
- }
- tukar_baris(i,besar);
- }
- }
- printf(" Matriks A setelah pertukaran baris : \n");
- puts("----------------------------------------");
- tampil();
- for(i=0;i < n-1;i++) {
- printf(" Matriks A setelah OBE pada kolom ke-%d : \n",i+1);
- puts("----------------------------------------");
- for(j=i+1;j < n;j++) {
- c = A[j][i] / A[i][i];
- for(k=0;k < n+1;k++) {
- temp = c * A[i][k];
- A[j][k] = A[j][k] - temp;
- }
- }
- tampil();
- }
- printf(" Ubah elemen jadi 1 \n");
- puts("----------------------------------------");
- for(j=0;j<n;j++) {
- pivot = A[j][j];
- for(k=0;k <= n;k++) {
- A[j][k] = A[j][k] / pivot;
- }
- }
- tampil();
- for(i=0;i < n;i++) {
- for(j=i-1;j >= 0 ;j--) {
- c = A[j][i];
- for(k=0;k <= n+1;k++) {
- temp = c * A[i][k];
- A[j][k] = A[j][k] - temp;
- }
- }
- }
- tampil();
- for(i=0;i < n;i++) {
- x[i]=A[i][n];
- printf(" x[%d] = %g\n",i+1,x[i]);
- }
- }
- /**** lpuarmy.blogspot.com *****/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement