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:
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.
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.