Ich schreibe ein Programm, das Matrizen mit der Gauß-Jordan-Methode löst. Alles funktioniert, außer -1.0/1.0. Wenn ich die Matrix ausdrucke, wird eine 0,0 ausgegeben, obwohl es eigentlich -1,0 sein sollte. Kann jemand erklären, warum das passiert? Im folgenden Fall ist matrix[k][s] -1.0 und der Divisor ist ein 1.0 Doppelwert.
for(s = 0; s < (n+1); s++){ //Augmented matrix, while s < number of columns
if(divisor == 0.0){ //Not dividing by 0.0
continue;
}
matrix[k][s] = matrix[k][s] / divisor;
if((matrix[k][s] < TOLERANCE) || (matrix[k][s] < -TOLERANCE)){ //To avoid -0.0 values, TOLERANCE == 1e6
matrix[k][s] = 0.0;
}