Subdeterminant

(přesměrováno z Algebraický doplněk)

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ěkEditovat

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

 

Výpočet determinantu rozvojem podle řádků (sloupců)Editovat

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ý algoritmusEditovat

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ánkyEditovat