Obliczanie wyznacznika metodą Gaussa język C kto pomoże?


(Monika10011001) #1

hey,

mógłby ktoś pomóc w opracowaniu w języku "C" niewielkiego programu który ma na celu wyliczać wyznacznik metodą eliminacji Gaussa:)


(somekind) #2

Pewno tak, tylko musisz wkleić swój kod i powiedzieć co Ci nie działa.


(Monika10011001) #3

może i by to w ten sposób zadzialało gdybym wiedziala jak to zrobic ogolnie


(Sawyer47) #4

Są źródła wiedzy. Np.

http://pl.wikipedia.org/wiki/Eliminacja ... _liniowych

Problem superprosty nie jest, trzeba nad tym usiąść, ale też nic z czym nie można by sobie poradzić.


(Monika10011001) #5

[

include

int main(int argc, char *argv[]) {

FILE *macierz;

//Wymiary macierzy.

int m, n;

//Liczniki potrzebne w pętli.

int i, j, k, l;

double macierz1[100][100];

double c;

if((macierz = fopen(argv[1], "r")) != NULL ) {

fscanf(macierz, "%d", &m);

fscanf(macierz, "%d", &n);

for(i = 0; i < m; i++) {

for(j = 0; j < n; j++) {

fscanf(macierz, "%lf", &macierz1_[j]);_

}

}

fclose(macierz);

}

l = m;

for(i = 0; i < n; i++) {

for(j = m - 1; j > m - l; j--) {

if(macierz1[j] == 0.0) {

continue;

} else {

c = macierz1[j] / macierz1[j - 1]__;

for(k = 0; k < n; k++) {

macierz1[j][k] = macierz1[j][k] - c * macierz1[j - 1][k];

}

}

}

l--;

}

c = 1.0;

for(i = 0; i < n; i++) {

c *= macierz1__;

}

if((macierz = fopen(argv[2], "w")) != NULL ) {

for(i = 0; i < m; i++) {

for(j = 0; j < n; j++) {

fprintf(macierz, "%lf ", macierz1__[j]);

}

fprintf(macierz, "\n");

}

//fprintf(macierz, "Wyznacznik tej macierzy wynosi: %lf", c);

fclose(macierz);

}

}

]

-- Dodane 18.01.2011 (Wt) 10:13 --

mam coś takiego tylko nie bardzo chce dzialac

ma obliczać wyznacznik macierzy zapisanej w pliku tekstowym, zapisuje przekształconą macierz oraz ten wyznacznik w pliku wyjściowym. Nazwę plików wej/wyj przekazujemy z konsoli przy uruchamianiu programu. W pliku wejściowym na początku określamy wymiary macierzy, a później zgodnie z tymi określeniami wpisujemy macierz.


(Airborn) #6

sweet_drims , na forum obowiązują zasady pisowni języka polskiego, włącznie z polskimi znakami diakrytycznymi. Proszę poprawić wszystkie swoje posty. Proszę również poprawić tytuł tematu na konkretny, dokładniej opisujący problem. Wszelkie fragmenty kodów źródłowych proszę otaczać znacznikami

.

Zignorowanie tych próśb będzie skutkować usunięciem tematu.[/color]