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 valori singolari di una matrice 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 valori singolari di una matrice in matlab EmptyGio Gen 11, 2018 7:56 pm Da SN92

» Molpendolo estensibile
Decomposizione valori singolari di una matrice in matlab EmptyMar Mag 09, 2017 8:38 pm Da hacknowledge

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

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

» How a differential works?
Decomposizione valori singolari di una matrice 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 valori singolari di una matrice in matlab EmptyLun Giu 20, 2016 6:21 am Da ddefalco

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

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

Cerca
 
 

Risultati per:
 
Rechercher Ricerca avanzata

 

 Decomposizione valori singolari di una matrice in matlab

Andare in basso 
3 partecipanti
AutoreMessaggio
GMele




Numero di messaggi : 3
Corso di appartenenza : Dinamica e Controllo dei Sistemi Meccanici
NomeCognome : Giuseppe Mele
Data d'iscrizione : 25.09.12

Decomposizione valori singolari di una matrice in matlab Empty
MessaggioTitolo: Decomposizione valori singolari di una matrice in matlab   Decomposizione valori singolari di una matrice in matlab EmptyGio Nov 08, 2012 9:43 pm

Buona sera professore,
siamo Giuseppe Mele e Giacomo Belgiorno, abbiamo eseguito il seguente esercizio su matlab, prendendo spunto da altri esercizi del forum, che un paio di lezioni fa ci avevate proposto: data una matrice rettangolare A il nostro obiettivo è stato quello di calcolarci la sua decomposizione in valori singolari in due modi diversi.
Nel primo caso lo abbiamo fatto ricavando 3 matrici, dove :
-Lambda è una matrice quadrata diagonale, i cui elementi sono le radici quadrate prese col segno positivo degli autovalori di AA’ (dove AA’ ha le seguenti proprietà: quadrata, simmetrica e semidefinita positiva). A questi autovalori corrispondono gli autovettori wi che sono i vettori colonna di una matrice W che è ortogonale;
- la terza matrice è costituita dai seguenti vettori colonna: v=((1/lambda)*A’*w) e la chiamo V ed è ortogonale.
Quindi A=W*Lambda*V’ e abbiamo verificato l’uguaglianza.
Il secondo modo è mediante la function svd di matlab dove direttamente otteniamo la Decomposizione di A in valori singolari, e notiamo subito che abbiamo una rappresentazione alternativa a quella precedente infatti la matrice U è una matrice quadrata mxm ortogonale dove le prime r colonne (r=rank(A))sono ottenute dalla matrice W e le restanti m-r sono tali che la U sia ortogonale. Analogamente la matrice D è quadrata nxn e ortogonale dove le prime r colonne sono ottenute dalla matrice V e le rimanenti n-r sono tali che la D sia una matrice ortogonale, mentre la S è una matrice rettangolare mxn.
Si è fatto vedere che entrambe le rappresentazioni della decomposizione in valori singolari di A ci restituiscono la matrice A di partenza.

>> % 'Data una matrice rettangolare A mxn'
A=[1 2 7 3; 3 5 1 4; 4 7 5 9]

A =

1 2 7 3
3 5 1 4
4 7 5 9

>> % ' il cui rango è:'
>> rank(A)

ans =

3
% ' a questa può essere associata una matrice quadrata simmetrica e semidefinita positiva AA' '
B=A*A'

B =

63 32 80
32 51 88
80 88 171

>> % ' calcolo gli autovalori a cui corrispondono i rispettivi autovettori della matrice B '
>> [Avt,Avl]=eig(B)

Avt =

0.3112 0.8589 0.4069
0.7754 -0.4770 0.4138
-0.5494 -0.1868 0.8144


Avl =

1.4905 0 0
0 27.8338 0
0 0 255.6757
>> % ' Da cui possiamo notare che essendo reali gli elementi di B ed essendo essa simmetrica, gli autovalori di B sono reali e positivi'
>> % ' Calcoliamo la matrice Lambda i cui elementi sono disposti lungo la diagonale principale e pari alla radice quadrata degli autovalori di B presi col segno positivo'
>> Lambda = diag(sqrt(diag(Avl)))

Lambda =

1.2209 0 0
0 5.2758 0
0 0 15.9899

>> % ' La matrice W della decomposizione di A in valori singolari coincide con la matrice degli autovettori di B, Avt'
>> % ' Calcoliamo la matrice V i cui elementi sono pari a v=((1/lambda)*A'*w) dove i w i vettori colonna della matrice W'
>> k=rank(A);
for j = 1 : k
V(:,j) = 1/Lambda(j,j) * A' * Avt (:,j);
end
>> % ' Detta C la matrice ottenuta come prodotto delle matrici Avt*Lambda*V' '
>> C=Avt*Lambda*V'

C =

1.0000 2.0000 7.0000 3.0000
3.0000 5.0000 1.0000 4.0000
4.0000 7.0000 5.0000 9.0000

>> % ' verifico che C coincide con A essendo la sua decomposizione in valori singolari'
>> O=A-C

O =

1.0e-014 *

0 -0.0444 0 0
-0.1776 -0.3553 -0.2665 -0.2665
0 -0.0888 -0.0888 0
% ' Sfruttando la function SVD presente in matlab, ricaviamo la decomposizione in valori singolari della matrice A '
[U,S,D]=svd(A)
U =

-0.4069 0.8589 -0.3112
-0.4138 -0.4770 -0.7754
-0.8144 -0.1868 0.5494


S =

15.9899 0 0 0
0 5.2758 0 0
0 0 1.2209 0


D =

-0.3068 -0.2500 -0.3602 -0.8447
-0.5368 -0.3742 -0.5354 0.5340
-0.4587 0.8722 -0.1691 -0.0194
-0.6382 -0.1918 0.7450 -0.0291

>> % ' si nota che la function svd restituisce una rappresentazione alternativa della decomposizione in valori singolari della matrice A '
>> % ' verifico l'uguaglianza A=U*S*D' '
>> F=U*S*D'

F =

1.0000 2.0000 7.0000 3.0000
3.0000 5.0000 1.0000 4.0000
4.0000 7.0000 5.0000 9.0000

>> L=F-A

L =

1.0e-014 *

0.0222 -0.0888 0.3553 0
0 0 -0.0444 -0.0444
-0.0444 -0.1776 -0.1776 0

>> % ' come volevamo dimostrare entrambe le rappresentazioni della SVD di A ci danno come risultato la matrice A di partenza '

Torna in alto Andare in basso
ddefalco
Admin
ddefalco


Numero di messaggi : 172
Località : Napoli
Corso di appartenenza : Meccanica Applicata alle Macchine
NomeCognome : Domenico de Falco
Data d'iscrizione : 29.12.08

Decomposizione valori singolari di una matrice in matlab Empty
MessaggioTitolo: Re: Decomposizione valori singolari di una matrice in matlab   Decomposizione valori singolari di una matrice in matlab EmptyVen Nov 09, 2012 12:58 pm

ok ragazzi va bene aver pubblicato questo esercizio ma non è necessario che lo indirizziate a me.
Insomma il forum dovrebbe servire a risolvere problemi.
comunque va bene.
saluti.
Torna in alto Andare in basso
mariangela.russo




Numero di messaggi : 3
Corso di appartenenza : Dinamica e Controllo dei Sistemi Meccanici
NomeCognome : Mariangela Russo
Data d'iscrizione : 05.11.12

Decomposizione valori singolari di una matrice in matlab Empty
MessaggioTitolo: Re: Decomposizione valori singolari di una matrice in matlab   Decomposizione valori singolari di una matrice in matlab EmptyGio Nov 29, 2012 10:33 am

salve a tutti; per acquisire un po' di dimestichezza con matlab ho provato a fare qualche esercizio di base.

Qui ho verificato che l'inversa e la MP inversa coincidono per una matrice quadrata;

>> A=[2 8 3; 6 8 10; 4 5 6];
>> inv(A)

ans =

-0.0909 -1.5000 2.5455
0.1818 0 -0.0909
-0.0909 1.0000 -1.4545

>> B=[ 8 4; 16 5; 3 3]

B =

8 4
16 5
3 3

>> inv(B)
??? Error using ==> inv
Matrix must be square.

>> pinv(B)

ans =

-0.0464 0.1078 -0.1177
0.1924 -0.1609 0.3449

>> pinv(A)

ans =

-0.0909 -1.5000 2.5455
0.1818 0.0000 -0.0909
-0.0909 1.0000 -1.4545

In quello seguente ho verificato che è valida la proprietà associativa rispetto al prodotto tra matrici A(BC)=(AB)C , purchè le matrici siano rispettivamente di dimensione (mxn),(nxp),(pxq).
>> S=[1 3 7; 56 7 8];
>> S1=[2 6 9 11; 15 8 4 1; 6 3 8 7]

S1 =

2 6 9 11
15 8 4 1
6 3 8 7

>> C=S*S1

C =

89 51 77 63
265 416 596 679

>> S3= [5 5; 9 11; 7 8; 4 5];


>> D=C*S3

D =

1695 1937
11957 14064

>> S1*S3

ans =

171 203
179 200
141 162



>> S*(S1*S3)

ans =

1695 1937
11957 14064
Torna in alto Andare in basso
ddefalco
Admin
ddefalco


Numero di messaggi : 172
Località : Napoli
Corso di appartenenza : Meccanica Applicata alle Macchine
NomeCognome : Domenico de Falco
Data d'iscrizione : 29.12.08

Decomposizione valori singolari di una matrice in matlab Empty
MessaggioTitolo: Re: Decomposizione valori singolari di una matrice in matlab   Decomposizione valori singolari di una matrice in matlab EmptyVen Nov 30, 2012 11:24 am

ok mi sembra un buon esercizio.
Solo le chiederei la prossima volta di curare anche la chiarezza dando nomi opportuni ai prodotti.
Nel secondo esercizio infatti nel commento aveva chiamato A,B e C le matrici che invece nell'esercizio sono indicate con S, S1 ed S3.
Per la verifica della proprietà associativa visto che aveva definito:
C=S*S1
D=C*S3=(S*S1)*S3
sarebbe stato meglio, al posto dell'ultimo passaggio, che definisse dapprima una variabile:
CC=S1*S3
poi avesse fatto:
D1=S*CC
e quindi verificato l'errore facendo la differenza :
D-D1
Comunque OK Smile

Torna in alto Andare in basso
Contenuto sponsorizzato





Decomposizione valori singolari di una matrice in matlab Empty
MessaggioTitolo: Re: Decomposizione valori singolari di una matrice in matlab   Decomposizione valori singolari di una matrice in matlab Empty

Torna in alto Andare in basso
 
Decomposizione valori singolari di una matrice in matlab
Torna in alto 
Pagina 1 di 1
 Argomenti simili
-
» Rappresentazione di una matrice A con la decomposizione in Valori Singolari
» Decomposizione in valori singolari in Matlab
» Esercizio Rango e Decomposizione in valori singolari
» Es. Esame Matlab: Data la matrice A, determinare quale vettore colonna della matrice B appartiene allo spazio colonne della matrice A.
» Matrice B=A*A' quadrata simmetrica e semidefinita positiva-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: