14 Haziran 2015 Pazar

Gauss Jordan Elimination With C Program

Merhaba arkadaşlar. Yine NxN boyutunda herhangi bir denklem sistemini çözen hem de Gauss Jordan metodu ile hesap eden bir C programının kaynak kodu. Uygulamada
örneğin 2x2 bir sistem için a[0][0],a[0][1],a[1][0],a[1][1] elemanları denklemdeki katsayılar matrixi için sistemde sorulacak a[0][2] 1. denklemin sonucu , a[1][2] ise 2. denklemin sonucu olarak girilmesi gerekir. Uygulama yoksa istenilen sonuca ulaşamayacaktır. Kodları aşağıda mavi ile gösterilir :

#include<stdio.h>
#include<stdlib.h>
int main()
{ system("color f9");
 int i,j,r,m,flag;
  printf("\n SOLVING EQUATIONS WITH GAUSS JORDAN ELIMINATION :)   [ A*B = C ]\n");
printf("\n Kac Bilinmeyenli bir denklem :");
scanf("%d",&m);
  double a[m][m+1],k,b[m];
for(i=0;i<m;i++)      
    {
      for(j=0;j<=m;j++)
       {
         printf("\na[%d][%d]=",i,j);
         scanf("%lf",&a[i][j]);
       }
    }   
   
   for(r=0;r<=m-1;r++)
{  
      for(i=0;i<m;i++)
     {  if(i==r)flag=1;
        else flag=0;
        
         if(flag == 0)              
      {  
      k=a[i][r]/a[r][r];
        for(j=0+r;j<=m;j++)
       {
       
        a[i][j] = a[i][j] - a[r][j]*k;
       }
      
      }
    
   } 

      
       for(i=0;i<m;i++)      
    {
      b[i]=a[i][m]/a[i][i];
      printf("\n X%d = %lf ",i,b[i]);
    }  
    
   
system("\npause");
return 0;   
}