Lineare Algebra: Determinanten

Berechnung von Determinanten: Wie weit kommt Mathematica?

A[n_] := Table[Random[Integer, {-10, 10}], {n}, {n}]

A[100]

Det[A[100]] // Timing

Det[A[100]] // Timing

100!

100! // N

Det[A[200]] // Timing

Berechnung von Determinanten: Entwicklung nach der ersten Zeile

Minor[A_ , {i_, j_}] := 
      Transpose[Delete[Transpose[Delete[A, i]], j]]

    
Clear[det]

    
det[{{a_}}] := a

    
det[
        A_] := (∑_(j = 1)^(Length[A]))(((-1))^(j + 1)) 
          A[[1, j]]*det[Minor[A, {1, j}]]

A = {{0, 1, 2}, {3, 2, 1}, {1, 1, 0}}

{Det[A], det[A]}

Table[{Minor[A, {1, k}]}, {k, 3}] // MatrixForm

A = {{0, 1, 1, 1, 1}, {1, 0, 1, 1, 1}, {1, 1, 0, 1, 1}, {1, 1, 1, 0, 
          1}, {1, 1, 1, 1, 0}}

{Det[A], det[A]}

Clear[A]
A[k_] := Table[If[i == j, 0, 1], {i, k}, {j, k}]

A[10]

Det[A[10] ] // Timing

det[A[8]] // Timing

Clear[det]

    
det[{{a_}}] := a

    
det[
        A_] := det[
          A] = (∑_(k = 1)^(Length[A]))(((-1))^(k + 1)) 
            A[[1, k]]*det[Minor[A, {1, k}]]

det[A[10] ] // Timing