Advertisement
Guest User

Untitled

a guest
Apr 25th, 2013
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.13 KB | None | 0 0
  1. void solve(double *a, double *b, int n)
  2. {
  3. int i, j, k, im, jm;
  4. double max;
  5. for (i=0; i<n; i++)
  6. {
  7. im=i;
  8.     jm=i;
  9.     max=a[i*n+i];
  10.     for (j=i; j<n; j++)
  11.     for (k=i; k<n; k++)
  12.         if (a[j*n+k]>max)
  13.         {
  14.             max=a[j*n+k];
  15.            
  16.             im=j;
  17.             jm=k;          
  18.         }
  19.        
  20.         for (j=i; j<n; j++)
  21.         {
  22.             max=a[i*n+j];
  23.             a[i*n+j]=a[im*n+j];
  24.             a[im*n+j]=max;
  25.     }
  26.  
  27.        
  28.            
  29.     for (j=0; j<n; j++)
  30.     {
  31.                     max=b[i*n+j];
  32.             b[i*n+j]=b[im*n+j];
  33.             b[im*n+j]=max;
  34.             }
  35.            
  36.     for (j=0; j<n; j++)
  37.     {
  38.         max=a[i+j*n];
  39.         a[i+j*n]=a[j*n+jm];
  40.         a[j*n+jm]=max;
  41.     }
  42.  
  43. for (j=0; j<n; j++)
  44.     {
  45.                     max=b[i+j*n];
  46.         b[i+j*n]=b[j*n+jm];
  47.         b[j*n+jm]=max;     
  48.     }  
  49.    
  50.     k=i*n;
  51.     max=a[k+i];
  52. for (j=n-1; j>=i; j--)  
  53. a[k+j]=a[k+j]/max;
  54.  
  55. for (j=n-1; j>=0; j--)
  56. b[k+j]=b[k+j]/max;
  57.  
  58. for (j=i+1; j<n; j++)
  59. {
  60.     max=a[j*n+i];
  61.     for (k=i; k<n; k++)
  62.     {
  63.         a[j*n+k]=a[j*n+k]-max*a[i*n+k];    
  64.     }
  65.     for (k=0; k<n; k++)
  66.     {
  67.         b[j*n+k]=b[j*n+k]-max*b[i*n+k];    
  68.     }
  69.    
  70. }
  71. }
  72. for (i=n-2; i>=0; i--)
  73. {
  74.     for (j=i; j>=0; j--)
  75.     {
  76.         for (k=0; k<n; k++)
  77.         {
  78.         b[j*n+k]=b[j*n+k]-a[j*n+i+1]*b[(i+1)*n+k];
  79.         a[j*n+k]=a[j*n+k]-a[j*n+i+1]*a[(i+1)*n+k];
  80.     }
  81.        
  82.     }
  83.  
  84.  
  85. }
  86.  
  87.  
  88.  
  89.  
  90.  
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement