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
Materiały z Metod Numerycznych udostępnione zostały na zasadach licencji GPL w wersji 2.