Advertisement
Kushtrim

Algoritmi6.1 - Gauss

Jan 19th, 2014
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.60 KB | None | 0 0
  1. package Kapitulli6;
  2.  
  3. /**
  4.  * @author Kushtrim
  5.  * @version 1.01
  6.  */
  7. public class Gaus
  8. {
  9.     public static void main (String[] args)
  10.     {    
  11.         double A[][] = {{0},
  12.                 {0, 1,-1,2,-1,-8},
  13.                 {0, 2,-2,3,-3,-20},
  14.                 {0,1,1,1,0,-2},
  15.                 {0,1,-1,4,3,4}};
  16.  
  17.         //   A = nderroVendet(A,2,3);
  18.  
  19.         // gaussi
  20.         int n = 4;
  21.         for ( int i = 1 ; i<=n-1;i++)
  22.         {
  23.  
  24.             if (A[i][i] ==0 )
  25.             {
  26.                 int  p=-1;
  27.                 label:
  28.                 for ( int k = i ; k<=n ; k++)
  29.                 {
  30.                     if ( A[k][i] != 0)
  31.                     {
  32.                         p=k;
  33.                         break label;
  34.                     }
  35.                 }
  36.  
  37.                 if( p == -1)
  38.                 {
  39.                     System.out.println("No unique solution exists 1");
  40.                     System.exit(0);
  41.                 }
  42.                 else
  43.                 {
  44.  
  45.                     System.out.println("Nderrojne vendet " + p + " me " +i);
  46.                     A  = nderroVendet(A,p,i);
  47.                 }
  48.             }
  49.  
  50.             double[][] m = new double[A.length][A[1].length];
  51.             for(int j = i+1 ; j<=n ; j++)
  52.             {
  53.                 m[j][i]=A[j][i]/A[i][i];                //step 6
  54.                 for ( int r = i ; r <= n+1;r++)
  55.                 {
  56.                     A[j][r]=A[j][r] - m[j][i]*A[i][r];
  57.                 }
  58.  
  59.             }
  60.  
  61.         }
  62.  
  63.         for ( int i=1; i<= 4;  i++)
  64.         {
  65.             for ( int j = 1 ; j<=5; j++)
  66.             {
  67.                 System.out.print(A[i][j] + "\t");
  68.             }
  69.  
  70.             System.out.println();
  71.         }
  72.         //step7
  73.         if (A[n][n] ==0)
  74.         {
  75.             System.out.println("No unique solution exists 2");
  76.             System.exit(0);
  77.         }
  78.  
  79.         //step8
  80.         double[] x = new double[n+1];
  81.         x[n] = A[n][n+1]/A[n][n];
  82.  
  83.         for ( int q = n-1 ; q>=1;q--)
  84.         {
  85.             double aa = A[q][n+1];
  86.             for ( int j=q+1; j<=n ; j++)
  87.             {
  88.                 aa = aa - A[q][j]*x[j];
  89.             }
  90.             x[q] = aa/A[q][q];
  91.  
  92.         }
  93.  
  94.         for ( int w = 0 ; w <n ; w++)
  95.         {
  96.             System.out.println("x" + (w+1) + " = " + x[w+1]);
  97.         }
  98.  
  99.     }
  100.  
  101.     public static double[][] nderroVendet( double [][] A , int p, int i)
  102.     {
  103.         for ( int j =0; j<A[1].length; j++)
  104.         {
  105.             double temp = A[p][j];
  106.             A[p][j] = A[i][j];
  107.             A[i][j] = temp;
  108.         }
  109.         return A;
  110.     }
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement