Algebraický doplněk

Subdeterminant je determinant submatice. Speciálním případem subdeterminantu je algebraický doplněk. Algebraické doplňky umožňují redukovat řád determinantu pomocí rozvoje podle řádku nebo sloupce a prostřednictvím adjungované matice umožňují nalezení inverzní matice.

Submatice

Submatice je matice, která vznikne z dané matice odstraněním vybraných řádků a sloupců. Matice tvořená zbylými řádky a sloupci se nazývá doplňková submatice.[1]

Subdeterminant (minor)

Je-li submatice čtvercová, má smysl její determinant. Tento determinant se nazývá subdeterminant nebo minor. Počet řádků submatice je řádem subdeterminantu.

Je-li čtvercová matice -tého řádu, potom subdeterminant -ního řádu, který je determinantem submatice vytvořené z matice odstraněním i-tého řádku a j-tého sloupce se nazývá subdeterminant (minor) příslušný k prvku matice .

Algebraický doplněk

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

kde je subdeterminant (minor) příslušný k prvku matice . Transponovaná matice z algebraických doplňků se nazývá adjungovaná matice. Adjungovaná matice se liší od inverzní matice jenom násobkem determinantem. Více viz hesla adjungovaná matice a inverzní matice.

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

Algebraický doplněk lze použít k výpočtu determinantu. Pro libovolný (pevně daný) řádkový index lze determinant matice vyjádřit pomocí součtu součinů všech prvků tohoto řádku a jejich algebraických doplňků, tj. jako

kde je řád matice (resp. determinantu). Tento vzorec se nazývá rozvoj (rozklad) determinantu podle -tého řádku. Protože transponovaná matice má stejný determinant jako matice původní, lze determinant vyjádřit i rozvojem (rozkladem) podle -tého sloupce vzorcem
Po aplikaci těchto vzorců se determinant rozpadne na několik determinantů řádu o jedničku nižšího a opakováním tohoto procesu můžeme dospět k determinantu prvního řádu, jehož výpočet je triviální.

Rozvoj determinantu je možné zobecnit[2] i na rozvoj podle víceprvkové množiny vybraných řádků s využitím všech možných minorů sestavených z těchto řádků.

Rekurentní výpočet determinantu

V programování lze velmi dobře využít metodu rozvoje podle řádku nebo sloupce pro výpočet determinantů čtvercové matice libovolného rozměru za pomocí rekurze. Výhodou je jednoduchá implementace, nevýhodou výpočetní náročnost rychle rostoucí s řádem determinantu.

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;
}

Reference

  1. HORÁK, Pavel; JANYŠKA, Josef. Lineární algebra [online]. Masarykova Univerzita [cit. 2022-06-04]. S. 33. Dostupné online. 
  2. HORÁK, Pavel; JANYŠKA, Josef. Lineární algebra [online]. Masarykova Univerzita [cit. 2022-06-04]. S. 34. Dostupné online. 

Související články

Zdroj