public void gauss() { System.out.println("nun gauss"); int zeile = 0; int spalte = 0; int safe = 0; while (zeile < getZeilenAnzahl()-1 && spalte < getSpaltenAnzahl()-1 && safe++ <= 10) { System.out.println(this); while (get(zeile, spalte).equals(new Number(0)) && zeile < getZeilenAnzahl() && spalte < getSpaltenAnzahl()) { // vertausche so dass 1 an pivot stelle steht if (zeile < getZeilenAnzahl() - 1) { for (int j = zeile; j < getZeilenAnzahl(); j++) { if (!get(j, spalte).equals(new Number(0))) { vertauscheZeilen(zeile, j); } } if (get(zeile, spalte).equals(new Number(0))) { // in der Spalte laesst sich keine Null mehr finden. spalte++; } } } erweitern(zeile, get(zeile, spalte).reciprocal()); for (int j = 0; j < getZeilenAnzahl(); j++) { if (j == zeile) continue; zeilenAddieren(j, zeile, get(j, zeile).multiply(new Number(-1))); } zeile++; } System.out.println(zeile); while (zeile < getZeilenAnzahl()) { erweitern(zeile++, new Number(0)); } }