In rete: http://www.elegio.it/doc/tn/lu_classica_invariante.html

http://www.elegio.it/doc/tn/lumodulare.html

http://www.elegio.it/doc/tn/inversione-non-solo-con-la-lu

Soluzione di un sistema di equazioni lineari, calcolo della matrice inversa del sistema e CALCOLO DELL'INVARIANTE qui limitato alle sole matrici simmetriche o antisimmetriche ma in pratica la somma degli elementi diagonali della matrice identità ottenuta dal prodotto di una qualsiasi matrice per la sua inversa deve valere ovviamente l'ordine della matrice... .

Risolve un sistema lineare a 3 ( o più... mooolto di più ) incognite creato con la funzione Math.random() e del quale non è garantita la risolvibilità ( la matrice potrebbe essere, per caso singolare anche se la probabilità che lo sia è molto bassa ) ossia un piccolo sistema di ordine tre per evidenziare le regole di costruzione della matrice del sistema e come specificare il termine noto e che argomenti passare alla funzione che calcola la LU ( la matrice del sistema espressa come prodotto di due matrici, la Lower ossia la triangolare inferiore e la Upper ossia la triangolare superiore ) e alla funzione che la usa.

...Javascript non abilitato...

Notare gli zeri del vettore che contiene la matrice i cui indici sono sempre positivi per cui la colonna e la riga zero sono dati non appartenenti alla matrice ed usabili come memoria di servizio.

Queste funzioni sono state tradotte dal Fortran per cui, se l'ordine della matrice è N, la lista che contiene la matrice è lunga (N+1)2 ed i primi N+1 elementi sono nulli ( e destinati a contenere prima il termine noto e poi la soluzione del problema. Quando la matrice è stata fattorizzata i primi N+1 elementi sono ancora zero ma il primo elemento di quella che è considerata una colonna della matrice ( il Fortran lavora per colonne, non per righe ) rappresenta l'indice della permutazione scelta dall'algoritmo per risolvere il sistema.

Questa è la lista che contiene la matrice memorizzata per colonna

...Javascript non abilitato...

La matrice originaria viene cancellata dalla funzione che calcola la fattorizzazione LU per cui bisogna salvarla per potere poi fare la verifica ossia controllare se il prodotto matrice per vettore soluzione dà effettivamente il termine noto

...Javascript non abilitato...

Stampo il risultato della fattorizzazione LU della matrice ed importante è il valore del determinante ora calcolato se la fattorizzazione è arrivata alla fine senza errori:

...Javascript non abilitato...

Faccio vedere anche cosa ho memorizzato nella lista che prima conteneva la matrice

...Javascript non abilitato...

Anche il termine noto è stato generato usando la function Math.random()

...Javascript non abilitato...

Fatti i calcoli mosto il vettore che ho ottenuto. Naturalmente se l'ordine era troppo grande, soltanto i primi elementi...

...Javascript non abilitato...

Ecco il test decisivo: il prodotto della matrice per il vettore soluzione trovato deve essere coincidente, a meno di errori di troncamento, col termine noto assegnato.

...Javascript non abilitato...


Per esaminare un altro sistema basta ricaricare questa pagina dato che la matrice e il termine noto sono generati in modo casuale. Oppure usare il form qua sotto, di specifica dell'ordine voluto. Se l'ordine della matrice supera 5 la matrice generata è a caso simmetrica o antisimmetrica in modo di poter applicare il calcolo dell'invariante definito qui.Non visualizzo le matrici di ordine maggiore di 9 per evitare tabelle enormi ....

Usabili valori anche giganteschi... Non prudente superare 1000...

...Javascript non abilitato...

Questo documento vuole sottolineare l'utilità dell'invariante per matrici simmetriche o antisimmetriche come test della precisione del calcolo dell'inversa della matrice.

Guardare la codifica per vedere la definizione di questo utilissimo invariante.

La libreria usata qui facilmente ricopiabile e personalizzabile...

Le funzioni locali usate per usarla

Indirizzi utili ( si fa per dire )

http://www.elegio.it/doc/tn/ La crittografia del pierino ... forse non troppo tonto ( o dummy )

http://www.elegio.it/doc/tridia/sorgenti/alin_libesterna(operativa).txt

Notare che questa libreria è utilizzabile da chiunque su internet semplicemente scrivendo <script type="text/javascript" src="http://www.elegio.it/doc/tridia/sorgenti/alin_libesterna(operativa).txt" > </script> e naturalmente può ricopiarsi il file ed usarlo gratis e comodamente senza bisogno di stare collegato in rete.

In questa immagine SVG uso l'elemento defs unito a symbol e ad use... {circle r="300" cx="30000" cy="18000" fill="red" /}