|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 558
|
calcolo del determinante di una matrice
salve a tutti
in questi (pochi) giorni di vacanza, giusto per riprendere la mano con il c/c++ ho deciso di farmi un modulo contenente una classe e vari overloading di operatori per il calcolo matriciale. per ora ho implementato il prodotto, la somma, la differenza, la trasposta e mi sto cimentando con il calcolo del determinante. posto che vorrei usare lo sviluppo di laplace (non so se ci sono metodi piu efficienti, ma questo conosco e tanto questo modulo è piu un esercizio che qualcosa di veramente serio la mia domanda è: chi sa qualcosa di calcolo matriciale saprà anche che ci sono un paio di regole che possono calcolare quasi immediatamente il determinante di una matrice (se una riga/colonna è tutta nulla oppure se 2 righe/colonne sono direttamente proporzionali tra di loro). conviene quindi che nel calcolo del determinante controlli prima tutti questi casi (questo forse allungherebbe parecchio i tempi di calcolo?) o è meglio farlo solamente per matrici superiori ad una dimensione specifica? (questo perchè fino alle 4x4 o 5x5 o anche piu non credo che calcolare direttamente il determinante prenderebbe molto piu tempo). scusate per le frasi un po' contorte ma non sono riuscito a spiegarmi meglio grazie in anticipo! |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
Lo sviluppo di laplace è pessimo e va bene solo per matrici piccole.
Di solito si utilizza un qualche metodo di fattorizzazione LU tipo Gauss-Jordan, in modo da ridurre la matrice in una triangolare superiore (o inferiore). Una volta ridotta a matrice triangolare, il calcolo del determinante è banale (moltiplichi gli elementi della diagonale principale). Cerca Gaussian Elimination o Gauss-Jordan e troverai diversi link, questo è uno: http://mathworld.wolfram.com/GaussianElimination.html buon lavoro!
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 558
|
si, avevo pensato a una cosa del genere, ma non mi andava proprio di cominciare a lavorare con autovalori e autovettori (o almeno così io diagonalizzo le matrici all'università
grazie mille per il consiglio |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
Niente autovalori e autovettori con Gauss-Jordan. Guardati l'algoritmo, è piuttosto semplice.
Laplace va bene per matrici piccole...prova a farlo su una matrice 100_000 x 100_000 o superiore. Stai lì dei giorni... Poi tutto dipende dalle tue esigenze: se stai scrivendo una classe per gestire matrici di dimensione arbitraria, usi un metodo di fattorizzazione (gauss-jordan, choleski, ecc...), non laplace, per calcolare il determinante. Ah, e se usi gauss-jordan, mi raccomando il pivoting parziale!!
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
fino al terzo ordine ti consiglio di calcolarlo in modo diretto se non erro è kramer.
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 558
|
Quote:
|
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
Quote:
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
E' Sarrus.
Ma io continuo a consigliarti Gauss-Jordan. Almeno impari qualcosa di nuovo e utile!
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 558
|
Quote:
|
|
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
Quote:
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
Quote:
Inoltre l'uso di un metodo numerico come gauss ti risolve un sistema lineare e, se applicato in un certo modo, ti calcola anche l'inversa. Tutto con un unico metodo. Quindi non è proprio inutile impararlo. E poi ripeto, dipende dalle esigenze del ragazzo. Se deve lavorare _solo_ con matrici 2x2 o 3x3 va bene anche senza gauss (o altri metodi), altrimenti decisamente no.
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
|
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
Quote:
matrici di ordine <=3 metodo diretto altrimenti gauss ~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:22.



















