ddefalco
Questo è un forum di discussione e non un sistema di messaggistica, in particolare con me.
Ciò vuol dire che ognuno che vi partecipa contribuisce alla discussione di un argomento (topic) cercando di risolvere i problemi che si pongono, con un intervento (post) che viene messo a disposizione di tutti: va pertanto inteso come un dibattito tra tutti nel quale gli interventi (e non le persone), hanno lo stesso peso.
Certamente non è una comunicazione ‘peer to peer’ con me (per fare questo esiste il ricevimento in stanza, l’email, la chat…) né tantomeno dev’essere un’esibizione del proprio sapere o non sapere (esame).

Pertanto bandiamo frasi del tipo “Ci scusiamo per eventuali errori”, “accettiamo consigli per eventuali correzioni”, peggio ancora “domanda per il professore”, …, e pensiamo sempre al “sodo”.
Concediamo alla forma, tutt’al più qualche volta, un saluto.
Domenico de Falco.
ddefalco
Questo è un forum di discussione e non un sistema di messaggistica, in particolare con me.
Ciò vuol dire che ognuno che vi partecipa contribuisce alla discussione di un argomento (topic) cercando di risolvere i problemi che si pongono, con un intervento (post) che viene messo a disposizione di tutti: va pertanto inteso come un dibattito tra tutti nel quale gli interventi (e non le persone), hanno lo stesso peso.
Certamente non è una comunicazione ‘peer to peer’ con me (per fare questo esiste il ricevimento in stanza, l’email, la chat…) né tantomeno dev’essere un’esibizione del proprio sapere o non sapere (esame).

Pertanto bandiamo frasi del tipo “Ci scusiamo per eventuali errori”, “accettiamo consigli per eventuali correzioni”, peggio ancora “domanda per il professore”, …, e pensiamo sempre al “sodo”.
Concediamo alla forma, tutt’al più qualche volta, un saluto.
Domenico de Falco.
ddefalco
Vuoi reagire a questo messaggio? Crea un account in pochi click o accedi per continuare.

ddefalco

ING - IND 13 : DDEFALCO's Forum
 
IndiceCercaUltime immaginiRegistratiAccedi
Ultimi argomenti attivi
» Frizione Koenigsegg LST, come funziona
Decomposizione in valori singolari in Matlab EmptySab Mar 28, 2020 9:04 am Da ddefalco

» Es. Esame Matlab: Data la matrice A, determinare quale vettore colonna della matrice B appartiene allo spazio colonne della matrice A.
Decomposizione in valori singolari in Matlab EmptyGio Gen 11, 2018 7:56 pm Da SN92

» Molpendolo estensibile
Decomposizione in valori singolari in Matlab EmptyMar Mag 09, 2017 8:38 pm Da hacknowledge

» Decomposizione in valori singolari in Matlab
Decomposizione in valori singolari in Matlab EmptyGio Nov 03, 2016 9:42 pm Da Gianluca93

» LA A^-1 rispetta le 4 proprietà della inversa generalizzata di MP
Decomposizione in valori singolari in Matlab EmptyMer Nov 02, 2016 3:04 pm Da r.mauro

» How a differential works?
Decomposizione in valori singolari in Matlab EmptyDom Lug 10, 2016 10:57 am Da Mario95

» Manovellismo di spinta rotativa: Caso manovella disposta a 90° rispetto all'asse di scorrimento del pistone
Decomposizione in valori singolari in Matlab EmptyLun Giu 20, 2016 6:21 am Da ddefalco

» QuIRK Multibody Dynamics Esempio pendolo piano
Decomposizione in valori singolari in Matlab EmptyGio Mag 05, 2016 8:37 am Da bestlin

» QuIRK Multibody Dynamics Package
Decomposizione in valori singolari in Matlab EmptySab Mar 12, 2016 4:03 pm Da SN92

Cerca
 
 

Risultati per:
 
Rechercher Ricerca avanzata

 

 Decomposizione in valori singolari in Matlab

Andare in basso 
AutoreMessaggio
Gianluca93




Numero di messaggi : 1
Corso di appartenenza : Dinamica e Controllo dei Sistemi Meccanici
NomeCognome : Gianluca Sarli
Data d'iscrizione : 17.10.16

Decomposizione in valori singolari in Matlab Empty
MessaggioTitolo: Decomposizione in valori singolari in Matlab   Decomposizione in valori singolari in Matlab EmptyGio Nov 03, 2016 9:42 pm

Nelle ultime lezioni abbiamo parlato della decomposizione in valori singolari di una matrice. In particolare il Prof ci ha dimostrato che se è A=W*L*Vt, allora A+=V*L^(-1)*Wt, dove A+ è l'MP-inversa di A e che, essendo L diagonale, L^(-1) sarà semplicemente composta dai reciproci degli elementi di L.

Abbiamo però notato che non è immediato verificare tutto ciò con Matlab, essendo la decomposizione con il comando svd un po' diversa da quella studiata al corso e le matrici centrali (che chiamiamo rispettivamente M ed M+) sono, in generale, non quadrate. Vedremo che bisognerà "ordinare" gli elementi per far sì che le proprietà siano verificate. Partiamo da una matrice A casuale, ad esempio:

0.8147    0.0975    0.1576    0.1419    0.6557    0.7577
   0.9058    0.2785    0.9706    0.4218    0.0357    0.7431
   0.1270    0.5469    0.9572    0.9157    0.8491    0.3922
   0.9134    0.9575    0.4854    0.7922    0.9340    0.6555
   0.6324    0.9649    0.8003    0.9595    0.6787    0.1712

Dopo aver dato il comando [P,M,Q]=svd(A) prendiamo le prime r righe e le prime r colonne della matrice M, dove r è il rango di A. Otteniamo la nostra matrice L. Facciamo lo stesso con M+, ottenuta da un comando analogo sulla pseudoinversa di A, ottenendo la nostra L+. Abbiamo ora:
L=M(1:r,1:r)

L =

   3.4947         0         0         0         0
        0    1.1353         0         0         0
        0         0    0.8358         0         0
        0         0         0    0.5641         0
        0         0         0         0    0.1343

>> Lpiu=Mpiu(1:r,1:r)

Lpiu =

   7.4486         0         0         0         0
        0    1.7726         0         0         0
        0         0    1.1964         0         0
        0         0         0    0.8808         0
        0         0         0         0    0.2861

Notiamo che abbiamo 2 matrici diagonali che soddisfano la proprietà dei reciproci, ma essendo ordinate entrambe in modo decrescente bisognerà ordinare opportunamente gli elementi (il primo della matrice L è il reciproco dell'ultimo della L+, il secondo della L col penultimo della L+ e così via).

Dobbiamo quindi generare un vettore, che chiamiamo j, con elementi interi che vanno da 1 ad r e poi fare il prodotto elemento per elemento in questo modo:

>> j=[1:r]

j =

    1     2     3     4     5

>> L(j,j).*Lpiu(r+1-j,r+1-j)

ans =

   1.0000         0         0         0         0
        0    1.0000         0         0         0
        0         0    1.0000         0         0
        0         0         0    1.0000         0
        0         0         0         0    1.0000

Così facendo abbiamo appunto moltiplicato il primo elemento della L con l'ultimo della L+, il secondo elemento della L con il penultimo della L+ e così via ottenendo, come volevasi dimostrare, tutti valori unitari, essendo gli elementi di una i reciproci di quelli dell'altra.

N.B. a rigore avremmo poi dovuto controllare il valore massimo e quello minimo sulla diagonale (perchè la matrice può essere di qualunque dimensione), che dovranno essere unitari o ad una differenza da 1 tale da poter essere attribuita agli errori del calcolatore.
Torna in alto Andare in basso
 
Decomposizione in valori singolari in Matlab
Torna in alto 
Pagina 1 di 1
 Argomenti simili
-
» Decomposizione valori singolari di una matrice in matlab
» Rappresentazione di una matrice A con la decomposizione in Valori Singolari
» Esercizio Rango e Decomposizione in valori singolari
» Considerazioni sul calcolo della soluzione di norma minima di un'equazione consistente
» ESEMPI DI MATRICI IN MATLAB

Permessi in questa sezione del forum:Non puoi rispondere agli argomenti in questo forum.
ddefalco :: CORSI :: Dinamica e Controllo di Sistemi Meccanici-
Vai verso: