Subdeterminant

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

Mějme čtvercovou matici , kterou získáme z matice odstraněním i-tého řádku a j-tého sloupce. Determinant matice , tzn. nazýváme subdeterminantem (též minorem) příslušným k prvku matice .

Algebraický doplněk[editovat | editovat zdroj]

Algebraickým doplňkem nebo také kofaktorem nazýváme číslo

Výpočet determinantu rozvojem podle řádků (sloupců)[editovat | editovat zdroj]

Algebraický doplněk lze použít k výpočtu determinantu n-tého řádu. Pro libovolné (pevně dané) i lze determinant matice vyjádřit pomocí algebraických doplňků jako

Tento postup je označován jako rozvoj (rozklad) determinantu podle -tého řádku.

Ekvivalentně lze determinant vyjádřit rozvojem (rozkladem) podle -tého sloupce.

Počítačový algoritmus[editovat | editovat zdroj]

V programování lze velmi dobře využít metodu subdeterminantů pro výpočet determinantů čtvercové matice libovolného rozměru za pomocí rekurze.

Příklad kódu v jazyce Java:

public int determinant(int[][] m) {
	int n = m.length;
	if(n == 1) {
		return m[0][0];
	} else {
		int det = 0;
		for(int j = 0; j < n; j++) {
			det += Math.pow(-1, j) * m[0][j] * determinant(minor(m, 0, j));
		}
		return det;
	}
}

public int[][] minor(final int[][] m, final int i, final int j) {
	int n = m.length;
	int[][] minor = new int[n - 1][n - 1];
	int r = 0, s = 0;
	for(int k = 0; k < n; k++) {
		int[] row = m[k];
		if(k != i) {
			for(int l = 0; l < row.length; l++) {
				if(l != j) {
					minor[r][s++] = row[l];
				}
			}
			r++;
			s = 0;
		}
	}
	return minor;
}

Související články[editovat | editovat zdroj]