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.

Rispondi quotando