lukasz.proszek.info

Powrót do listy plików

eliminacja.c

#include "pivotgauss.h"


void eliminacja(typ **tablica, typ **wynik, int n_wiers, int n_kolu, int ktora_kolumna )
{
        typ *wiersz_temp = NULL;
  typ b_temp;
        int i, j, k, wiersz;
        typ dzielnik;
  
        //allokacja wiersza potrzebnego do zamiany
        if( (wiersz_temp = (typ *) calloc (n_kolu,sizeof(typ))) == NULL) {
                printf("\nNieudane przydzielenie pamieci\n");
                abort();
        }
        else   {
                printf("\nPoprawnie przydzielilem pamiec na wiersz_temp\n");
        }


  /* dzielimy przez wyraz diagonalny */
  dzielnik=tablica[ktora_kolumna][ktora_kolumna];
    
  for(i=0;i<n_kolu; i++){
    tablica[ktora_kolumna][i] /= dzielnik;   
  }
  wynik[ktora_kolumna][0] /= dzielnik;
  //podzielono...

  for(i=0;i<n_kolu; i++){
    if(i!=ktora_kolumna){
       dzielnik= tablica[i][ktora_kolumna];
       wynik[i][0] -= dzielnik*wynik[ktora_kolumna][0];
       for(j=0;j<n_kolu; j++){
          tablica[i][j] -=dzielnik*tablica[ktora_kolumna][j]; 
//          printf ("i = %i ",i);
       }
    }
  }
  
  for(i=0;i<n_wiers;i++){
     for(j=0;j<n_kolu;j++){
        printf("%f\t",tablica[i][j]);
     }
     printf("\t%f\n",wynik[i][0] );
  }
  
        //dealokacja wiersza
        free(wiersz_temp);  
//  free(b_temp);
}




syntax highlighted by Code2HTML, v. 0.9.1
kod przerobiony z HTML na XHTML za pomocą HTML Tidy for Linux/x86