Eliminacja Gaussa w C

gawi
Użytkownik
Użytkownik
Posty: 96
Rejestracja: 10 mar 2007, o 14:12
Płeć: Mężczyzna
Lokalizacja: O-ka
Podziękował: 29 razy
Pomógł: 1 raz

Eliminacja Gaussa w C

Post autor: gawi »

Mam takiego gotowca:

Kod: Zaznacz cały

1   Algorytm eliminacji Gaussa; wektoryzacja macierzy
void transfMM(double *A , double *B, int dim) {
  int ii,i,j,k;
  double w;
  for (i=1; i<dim; i++)
  {
     for (ii=i; ii<dim; ii++)
     {
        w = A[ii*dim+i-1]/ A[(i-1)*dim+i-1];
        B[ii] -= w*B[i-1];
        for (j=i; j<dim; j++)
            A[ii*dim+j] -= w* A[(i-1)*dim+j];
        A[ii*dim+i-1] =0; /* <-- niepotrz. */
     }
  }
}
void revPass_A_X_B(double *A , double *X,
                   double *B, int dim)
{
  int i,j;
  for (i=dim-1; i>=0; i--)
  {
     X[i] = 0; j=i+1;
     while(j<dim)
         { X[i]+= A[i*dim+j]*X[j]; j++; }
     X[i] = (B[i] - X[i])/A[i*dim+i];
  }
}
Wiem co to jest eliminacja gaussa jednak za chiny jakoś nie mogę zrozumieć co te funkcje robią. Co musi być w tablicy A,B i X? Próbowałem jakieś losowe macierze wrzucać do tych funkcji jednak to wszystko wychodzi jakoś bez sensu, próbowałem analizować to w debuggerze i też sensu większego w tym nie widzę.

A co wy o tym sądzicie?
Aha no i nigdy nie spotkałem się z terminem "wektoryzacja macierzy" wiecie co to?
Fibik
Użytkownik
Użytkownik
Posty: 971
Rejestracja: 27 wrz 2005, o 22:56
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 11 razy
Pomógł: 75 razy

Eliminacja Gaussa w C

Post autor: Fibik »

Układ równań:
A * X = B;

double *A, *B, *X;

A = new double[dim*dim]; // i tu wpisujemy współczynniki,
B =new double[dim]; // tu wyrazy wolne
A = new double[dim];// a tu będzie rozwiązanie układu równań.

w C zamiast new używamy malloc, lub coś tam...

Np. mamy układ:
2x - 3y = 1
-x - 4y = -7

czyli: dim = 2,
trzeba wpisać w te tablice: A = {2,-3,-1,-4}, B = {1,-7};
a wpisujemy np. tak: A[0] = 2; A[1] = ...
gawi
Użytkownik
Użytkownik
Posty: 96
Rejestracja: 10 mar 2007, o 14:12
Płeć: Mężczyzna
Lokalizacja: O-ka
Podziękował: 29 razy
Pomógł: 1 raz

Eliminacja Gaussa w C

Post autor: gawi »

dzięki, już mi to działa
ODPOWIEDZ