
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;
