Алгоритм на mathematica для вычисления определителя n*n матрицы:

Я работаю над алгоритмом, который вычисляет детерминант любой n*n матрицы, вот мой код:

 Laplace[matrix_List] := Module[{a = matrix, newmatrix, result = 0},
     If [Length[a] == 1, result = Total[Total[a]],
         For [i = 1, i <= Length[a], i++,
              newmatrix = Drop[a, {i}, {1}];
              result = result + (-1)^(i + 1) *
                       Total[Total[Take[a, {i}, {1}]]]*
                       Laplace[newmatrix]; 
         ]
     ]; result]

Он работает рекурсивно, работает для матрицы 2*2 (я проверил с помощью Det[]), но он не работает для любой матрицы более высокой степени, чем 2!

Я хотел бы решить это решение сам - я хочу реализовать это сам, а не просто использовать Det - но я был бы признателен, если бы кто-нибудь объяснил, что здесь не так с рекурсией?

8
задан AakashM 12 June 2012 в 21:54
поделиться