Мне нужно написать алгоритм, чтобы найти определитель матрицы, что делается с помощью рекурсивной функции:
где A_ij
- это матрица, которая появляется при удалении i
-ой строки и j
-го столбца для A
. Когда A
имеет размерность n x n
, тогда размерность для A_ij
равна (n-1) x (n-1)
. Мне не разрешено использовать Minor[]
или Det[]
.
Как мне написать этот алгоритм?
Это код, который у меня есть:
det1[Mi_ /; Dimensions[Mi][[1]] == Dimensions[Mi][[2]]] :=
Module[{det1},
det1 = Sum[
If[det1 == 1, Break[], (-1)^(1 + j) *Mi[[1, j]]*det1[Drop[Mi, {1}, {j}]]],
{j, 1, Length[Mi]}];
Return[det1 // MatrixForm, Module]
]