Volevo chiedere a qualcuno se può scrivermi/mostrarmi una funziona in JAVASCRIPT per il calcolo del determinante di una matrice quadrata maggiore di 2x2, quindi che sia: 3x3, 4x4, 5x5, ecc.

Sto impazzendo... ho provato e riprovato ma purtroppo non riesco =\

Ho trovato questo:

codice:
function complAlg(m,o,r,c)
{
  var om = o-1;
  var minore = new Array(om);
  for (i=0; i<om; i++)
    minore[i] = new Array(om);
  var a = -1;
  var b = -1;
  var i, j;
  for (i=0; i<o; i++)
    if (i!=r)
      {
        a++;
        b = -1;
        for (j=0; j<o; j++)
          if (j!=c)
            {
              b++;
              minore[a][b] = m[i][j];
            }
      }
  var d = determinante(minore,om);
  if (((r+c)%2)==1) d=-d;
  return d;
}

//---------------------------------------------------------------------
function determinante(m,o)
{
  if (o==1)
    return m[0][0];
  if (o==2)
    return m[0][0]*m[1][1]-m[0][1]*m[1][0];
  var dd = 0;
  var ca = 0;
  var p = 0;
  var e = 0;
  var i;
  for (i=0; i<o; i++)
    {
      e = m[0][i]
      if (e!=0)
        {
          ca = complAlg(m,o,0,i);
          p = e*ca;
          dd += p;
        }
    }
  return dd;  
}
//---------------------------------------------------------------------
function calcoloDet()
{
  if ((matrice==null)||(matrice==undefined))
    {
      alert("Impostare la matrice.");
      return null;
    }
  return determinante(matrice,ordine);
}

Ma non capisco il procedimento... :S

Se qualcuno caso mai sa spiegarmi almeno lo schema matematico di una funzione del genere o scrivermela in modo semplificato mi farebbe un grandissimo piacere.
Purtroppo la soluzione più facile sarebbe quella di scrivere il calcolo senza usare cicli e matrici, ma è troppo brutto così =\

Grazie in anticipo.