|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 | |
|
Member
Iscritto dal: Oct 2011
Messaggi: 48
|
[C/C++] Algoritmo per calcolare gli invarianti secondari delle matrici quadrate
Ciao a tutti,
Non riesco a trovare un algoritmo per calcolare gli invarianti secondari delle matrici quadrate. È chiaramente banale il problema se si conosce in anticipo l'ordine dell'invariante, ma vorrei scrivere una funzione che prende in input l'ordine dell'inveriante, la matrice e la sua dimensione e restituisce l'invariante di quell'ordine, il prototipo dovrebbe essere qualcosa del genere Codice:
double OttieniInvariante(double Matrice[][1000], int dimensione, int ordine); Lo scopo del programma è quello di usare gli invarianti primari (traccia e determinante) e secondari per costruire il polinomio caratteristico di una matrice, e trovare dunque gli autovalori. So che è complicato, ma ho già scritto alcune funzioni possono essere utili per questo, ecco i prototipi: Quote:
__________________
Opok il nuovo gioco open source ispirato ai Pokemon (fatto da me ;-D) (http://sourceforge.net/projects/opok/):
Ultima modifica di mesonepigreco : 16-01-2012 alle 10:29. |
|
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Oct 2011
Messaggi: 48
|
Entro un po' nel dettaglio del mio problema.
Allora, ho ragionato un po' sul problema, e penso che si possa risolvere in più passaggi:
Il problema rimane come fare il punto primo? Non riesco a scrivere una funzione che generi questi array, il prototipo dovrebbe essere qualcosa del genere Codice:
int GeneraArrays(int Array[][100], int k, int max); // Genera questi array e li salva in Array, con k elementi generati da max numeri, e ritorna il numero di array generati es. k = 2; numeri da 1 a 3 {1,2,3} {1,3,2} {2,1,3} {3,2,1} {3,1,2}{2,3,1} // Questo sono in numero 3! Prendo le posizioni dei primi k numeri: {1,2} {1,3}{2,1}{3,1}{2,3}{3,1} // Anche questi sono in numero 3! Elimino quelli non ordinati: {1,2}{1,3}{2,3} // e ho quello che voglio Il problema è, come genero questi array? k = 2; numeri da 1 a 3 {1,2,3} {1,3,2} {2,1,3} {3,2,1} {3,1,2}{2,3,1}???????? Aiuto!!!!
__________________
Opok il nuovo gioco open source ispirato ai Pokemon (fatto da me ;-D) (http://sourceforge.net/projects/opok/):
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Oct 2011
Messaggi: 48
|
Non fa niente, ho trovato l'algoritmo dei gruppi simmetrici da solo,
se ci fosse la remota possibilità che qualcunaltro si inbatta in questo problema ecco l'algoritmo: Codice:
si parte da k = 1 il gruppo vale 1. k = 2. Si aggiunge 2 in tutte le posizioni possibili del gruppo precedente: 2 1 1 2 k = 3. Si aggiunge 3 in tutte le posizioni possibili: 3 2 1 3 1 2 2 3 1 1 3 2 2 1 3 1 2 3 k = 4. Si aggiunge 4 in ogni possibile posizioni delle permutazioni di k = 3: 4 3 2 1 4 3 1 2 4 2 3 1 4 1 3 2 4 2 1 3 4 1 2 3 3 4 2 1 3 4 1 2 .....
__________________
Opok il nuovo gioco open source ispirato ai Pokemon (fatto da me ;-D) (http://sourceforge.net/projects/opok/):
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:24.



















