Permanent macierzy (Java)
Permanent jest obliczany z definicji permutacyjnej podobnie jak wyznacznik, ale w permanencie wszystkie wartości dodaje się.
Permanent macierzy można obliczyć przy użyciu metody perm(Matrix)
.
Przykład użycia metody znajdującej się w klasie Matrix071
.
double[][] array1 = {{1, 2, 1, -1}, {2, 3, 1, 1}, {-1, -1, -2, -3}, {1, -2, 3, -1}}; Matrix matrix1 = new Matrix(array1); matrix1.printToConsole(); try { Util.print(matrix1.det()); } catch (MatrixException e) { e.printStackTrace(); } try { Util.print(MatrixUtil.perm(matrix1)); } catch (MatrixException e) { e.printStackTrace(); }
Po uruchomieniu klasy na konsoli zobaczymy:
1.0 2.0 1.0 -1.0 2.0 3.0 1.0 1.0 -1.0 -1.0 -2.0 -3.0 1.0 -2.0 3.0 -1.0 -30.0 74.0
Wyznacznik = -30.0, permanent = 74.
Istnieją lepsze i szybsze metody obliczania permanentu, ale nie uwzględniamy ich tutaj, gdyż permanent nie jest zbyt często potrzebny.
Właściwości permanentu
Permanent ma następujące właściwości:
- Transpozycja nie zmienia permanentu
- Permanent nie zmienia się przy zamianie dwu kolumn albo dwóch wierszy
- Pomnożenie wiersza albo kolumny przez skalar oznacza pomnożenie permanentu przez ten skalar
- Przy dodaniu do wiersza (albo kolumny) innego wiersza (albo kolumny) zmienia się wartość permanentu
- Nie można zastosować metody eliminacji Gaussa
- Nie ma zastosowania twierdzenie Cauchy’ego, tj.
Zastosowania permanentu
Jest używany głównie w kombinatoryce – w teorii grafów oraz w statystyce nieparametrycznej.
Pliki do ściągnięcia
Moduł matrices – aktualny stan projektu = 014;