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

ING - IND 13 : DDEFALCO's Forum
 
IndiceCalendarioFAQCercaLista UtentiGruppiRegistratiAccedi
Ultimi argomenti
Cerca
 
 

Risultati secondo:
 
Rechercher Ricerca avanzata

Condividere | 
 

 Esercizio MATLAB compito 11 febbraio 2015

Vedere l'argomento precedente Vedere l'argomento seguente Andare in basso 
AutoreMessaggio
L.Imperatore



Numero di messaggi : 5
Corso di appartenenza : Meccanica Applicata alle Macchine
NomeCognome : Luigi Imperatore
Data d'iscrizione : 21.05.12

MessaggioTitolo: Esercizio MATLAB compito 11 febbraio 2015   Mer Feb 18, 2015 7:56 pm

>> % Salve ragazzi, ho provato a svolgere l'esercizio inerente
>> % matlab assegnato dal professore nell'ultimo compito.
>> % L'ho trovato molto lungo e carico di concetti utili, quindi
>> % sicuramente c'è qualche errore da correggere.Un saluto a tutti
>> % e buono studio.
>>
>> % l'esercizio assegna una matrice 4X5 di rango 3, si trovi e si
>> % dimostri la validità della A(1),della A(14) e della A(124)
>>
>> %%%%%%%% INIZIO %%%%%%%%%%%%%%%%%%%

>> A=[1 2 0 5 1;2 0 0 8 0;1 4 7 3 2;0 0 0 0 0;]

A =

    1     2     0     5     1
    2     0     0     8     0
    1     4     7     3     2
    0     0     0     0     0

>> rank(A)

ans =

    3

>> % cerchiamo di verificare il primo quesito, utilizzando l'equazione 2.50 pag
>> % 44 e 2.136 pag 65
>> [W,L,V] = svd(A)

W =

  -0.4585   -0.2384    0.8561         0
  -0.6311   -0.5908   -0.5026         0
  -0.6256    0.7708   -0.1204         0
        0         0         0    1.0000


L =

  11.1483         0         0         0         0
        0    7.1434         0         0         0
        0         0    1.6390         0         0
        0         0         0         0         0


V =

  -0.2105   -0.0909   -0.1644   -0.9588   -0.0342
  -0.3067    0.3649    0.7507   -0.0799   -0.4503
  -0.3928    0.7553   -0.5144    0.1027    0.0037
  -0.8269   -0.5048   -0.0619    0.2397    0.0085
  -0.1534    0.1824    0.3754   -0.0798    0.8921

>> % siccome la matrice P ha le stesse proprietà di W e lo stesso vale per Q e V
>> P=W

P =

  -0.4585   -0.2384    0.8561         0
  -0.6311   -0.5908   -0.5026         0
  -0.6256    0.7708   -0.1204         0
        0         0         0    1.0000

>> Q=V

Q =

  -0.2105   -0.0909   -0.1644   -0.9588   -0.0342
  -0.3067    0.3649    0.7507   -0.0799   -0.4503
  -0.3928    0.7553   -0.5144    0.1027    0.0037
  -0.8269   -0.5048   -0.0619    0.2397    0.0085
  -0.1534    0.1824    0.3754   -0.0798    0.8921

>> % calcoliamo la matrice L^(-1)
>> L0=[11.1483         0         0 ;0    7.1434         0;0         0    1.6390]

L0 =

  11.1483         0         0
        0    7.1434         0
        0         0    1.6390

>> L1=inv(L0)

L1 =

   0.0897         0         0
        0    0.1400         0
        0         0    0.6101

>> % per costruire l'equazione 2.136 la matrice che a noi serve deve essere una nXm (5X4)
>> L2=[0.0897 0 0 1;0 0.1400 0 2;0 0 0.6101 8;1 2 3 4;3 2 1 6]

L2 =

   0.0897         0         0    1.0000
        0    0.1400         0    2.0000
        0         0    0.6101    8.0000
   1.0000    2.0000    3.0000    4.0000
   3.0000    2.0000    1.0000    6.0000

>> % la matrice L2 è quella matrice composta quindi dalla matrice
>> % L1=inv(L0)L^(-1), dalla matrice K=[1;2;8], dalla matrice
>> % R=[1 2 3;3 2 1](questa matrice R è rappresentata nella 2.136
>> % dalla matrice L in basso a sinistra), e infine dalla matrice
>> % M=[4;6].   Scriviamo le matrice K,R,M:
>> K=[1;2;8]

K =

    1
    2
    8

>> R=[1 2 3;3 2 1]

R =

    1     2     3
    3     2     1

>> M=[4;6]

M =

    4
    6

>> % per tutto quello che abbiamo detto la 2.136 vale
>> A1=Q*L2*P'

A1 =

  -1.6058    3.3758   -0.5020   -5.7478
   0.7107    1.6336    0.1623    3.4070
  -0.1136   -0.2367    0.1967   -2.5649
   0.4015   -0.7189    0.1255   -1.3214
  -0.8229   -3.0483   -0.4502    8.2481

>> % verifichiamola...
>> A*A1*A-A

ans =

 1.0e-003 *

   0.0352   -0.1124   -0.0346    0.0994   -0.0562
   0.0294   -0.0604   -0.2570    0.1974   -0.0302
  -0.0313    0.1785    0.3297   -0.1771    0.0893
        0         0         0         0         0

>> % prima proprietà verificata
>> A1*A*A1-A1

ans =

   0.0002   -0.0000   -0.0001  -74.3255
   0.0000    0.0000   -0.0001  -37.1332
  -0.0000   -0.0000    0.0000    7.9639
  -0.0001    0.0000    0.0000   18.5813
  -0.0001   -0.0001    0.0001   55.6841

>> % la seconda proprietà non è stata verificata
>> A*A1-(A*A1)'

ans =

        0    0.0000   -0.0000    2.7072
  -0.0000         0    0.0000  -22.0668
   0.0000   -0.0000         0    2.4579
  -2.7072   22.0668   -2.4579         0

>> % la quarta proprietà non è stata verificata
>> A1*A-(A1*A)'

ans =

        0   -9.3600   -3.1239   18.3819    4.7598
   9.3600         0    0.5771   15.8046    4.4818
   3.1239   -0.5771         0   -2.7505    3.4308
 -18.3819  -15.8046    2.7505         0   30.5038
  -4.7598   -4.4818   -3.4308  -30.5038         0

>> % la terza proprietà non è stata verificata
>> % svolgiamo anche il punto seguente, ossia quello di trovare
>> % e verificare la matrice A(14) che corrisponde alla 2.140
>> % di pag 66. Da questa equazione matriciale si vede che basta
>> % sostituire la matrice R (dal libro chiamata L) in una
>> % matrice di tutti zeri
>> % abbiamo bisogno della matrice centrale che chiameremo L14
>> L14=[0.0897 0 0 1.0000;0 0.14 0 2.0000;0 0 0.6101 8.0000;0 0 0 4;0 0 0 6]

L14 =

   0.0897         0         0    1.0000
        0    0.1400         0    2.0000
        0         0    0.6101    8.0000
        0         0         0    4.0000
        0         0         0    6.0000

>> % l'equazione 2.140 diventa allora
>> A(14)=Q*L14*P'
???  In an assignment  A(I) = B, the number of elements in B and
I must be the same.

>> A14=Q*L14*P'

A14 =

  -0.0742    0.0698    0.0141   -5.7478
   0.3926   -0.2430    0.0014    3.4070
  -0.2777    0.1175    0.1414   -2.5649
   0.0186    0.1075   -0.0035   -1.3214
   0.1963   -0.1215    0.0007    8.2481

>> % verifichiamo se vale la prima e la quarta proprietà
>> A*A14*A-A

ans =

 1.0e-003 *

   0.0352   -0.1124   -0.0346    0.0994   -0.0562
   0.0294   -0.0604   -0.2570    0.1974   -0.0302
  -0.0313    0.1785    0.3297   -0.1771    0.0893
        0         0         0         0         0

>> % la prima proprietà è verificata
>> A14*A-(A14*A)'

ans =

 1.0e-014 *

        0   -0.0125    0.0111   -0.0222   -0.0062
   0.0125         0    0.0562    0.1055         0
  -0.0111   -0.0562         0   -0.0742   -0.0281
   0.0222   -0.1055    0.0742         0   -0.0527
   0.0062         0    0.0281    0.0527         0

>> % la quarta proprietà + verificata
>> A*A14-(A*A14)'

ans =

        0    0.0000    0.0000    2.7072
  -0.0000         0    0.0000  -22.0668
  -0.0000   -0.0000         0    2.4579
  -2.7072   22.0668   -2.4579         0

>> % come volevamo la terza proprietà NON è verificata
>> A14*A*A14-A14

ans =

   0.0000   -0.0000   -0.0000    4.0403
  -0.0000    0.0000    0.0000    3.0215
   0.0000   -0.0000    0.0000   -0.4325
   0.0000    0.0000   -0.0000   -1.0101
  -0.0000    0.0000    0.0000   -5.0338

>> % come volevamo la seconda proprietà NON è verificata
>>
>> % per verificare l'ultimo punto dobbiamo trasformare la
>> % matrice R e la matrice M in matrici composte da tutti zeri
>> % definiamo quindi una L124 tale che:
>> L124=[0.0897 0 0 1;0 0.14 0 2;0 0 0.61 8;0 0 0 0;0 0 0 0]

L124 =

   0.0897         0         0    1.0000
        0    0.1400         0    2.0000
        0         0    0.6100    8.0000
        0         0         0         0
        0         0         0         0

>> % la relazione 2.141 allora diventa:
>> A124=Q*L124*P'

A124 =

  -0.0742    0.0698    0.0141   -1.7076
   0.3925   -0.2430    0.0014    6.4288
  -0.2777    0.1175    0.1413   -2.9977
   0.0186    0.1075   -0.0035   -2.3314
   0.1962   -0.1215    0.0007    3.2144

>> % verifichiamo che NON rispetta la terza proprietà
>> A*A124-(A*A124)'

ans =

        0    0.0000   -0.0000    2.7072
  -0.0000         0    0.0000  -22.0668
   0.0000   -0.0000         0    2.4579
  -2.7072   22.0668   -2.4579         0

>> % verifichiamo la prima, seconda e quarta proprietà
>> A*A124*A-A

ans =

 1.0e-003 *

   0.0730   -0.2850    0.0837    0.1136   -0.1425
   0.0072    0.0409   -0.3265    0.1891    0.0204
  -0.0366    0.2028    0.3131   -0.1791    0.1014
        0         0         0         0         0

>> A124*A*A124-A124

ans =

   0.0000   -0.0000   -0.0000    0.0003
  -0.0001    0.0001    0.0000   -0.0014
   0.0001   -0.0000   -0.0000    0.0011
   0.0000   -0.0000   -0.0000    0.0000
  -0.0000    0.0000    0.0000   -0.0007

>> A124*A-(A124*A)'

ans =

 1.0e-014 *

        0   -0.0125    0.0097   -0.0278   -0.0062
   0.0125         0    0.0569    0.1030         0
  -0.0097   -0.0569         0   -0.0652   -0.0284
   0.0278   -0.1030    0.0652         0   -0.0515
   0.0062         0    0.0284    0.0515         0

>> %%%%%%%% FINE %%%%%%%%%%%%%%%%%%%
Tornare in alto Andare in basso
Vedi il profilo dell'utente
manlio182



Numero di messaggi : 13
Corso di appartenenza : Dinamica e Controllo dei Sistemi Meccanici
NomeCognome : manlio bellocchio
Data d'iscrizione : 17.02.09

MessaggioTitolo: Re: Esercizio MATLAB compito 11 febbraio 2015   Lun Mar 02, 2015 3:43 pm

ciao, un modo alternativo per trovare una matrice A  4x5 di rango 3:
A=BxC,
con B 4x3 e C 3x5 , con B e C entrambe aventi rango 3.
in matlab:

clear all

B=round(rand(4,3)*100);
C=round(rand(3,5)*100);

A=BxC.

meno banale rispetto la matrice con riga nulla.
Comunque ti ringrazio per il post.
Tornare in alto Andare in basso
Vedi il profilo dell'utente
manlio182



Numero di messaggi : 13
Corso di appartenenza : Dinamica e Controllo dei Sistemi Meccanici
NomeCognome : manlio bellocchio
Data d'iscrizione : 17.02.09

MessaggioTitolo: Re: Esercizio MATLAB compito 11 febbraio 2015   Lun Mar 02, 2015 4:39 pm

ti mando anche il mio listato

clear all

%generiamo due matrici una 3x5 e  una 4x3 di rango massimo
W=round(rand(3,5)*100);
V=round(rand(4,3)*100);
%la A così ottenuta avrà rango 3 e dim 4x5
A=V*W;

%decomposizione valori singolari di A
[M,L,N]=svd(A);

%estraggo le prime 3 righe e 3 colonne di L
L1=L(1:3,1:3);

%essendo diagolane e quadrata è invertibile
L1=inv(L1);

%La L2 dovrà essere una 5x4 dove sono assegnati solo le prime 3 righe e
%colonne pari proprio a L1,le restanti sono arbitrarie:
r=round(rand(3,1)*10);
r1=round(rand(2,4)*10);
%e quindi:
L2=[L1 r;  r1];

%da cui la pseudoinversa di A del primo tipo è:
A2=N*L2*M'

%verifica
A*A2*A-A
Tornare in alto Andare in basso
Vedi il profilo dell'utente
L.Imperatore



Numero di messaggi : 5
Corso di appartenenza : Meccanica Applicata alle Macchine
NomeCognome : Luigi Imperatore
Data d'iscrizione : 21.05.12

MessaggioTitolo: Re: Esercizio MATLAB compito 11 febbraio 2015   Mar Mar 03, 2015 6:54 pm

Ciao Manlio,
grazie per la risposta.
Sicuramente il tuo metodo per ricavare sia una matrice mXn con rango r (utilizzando il prodotto di due matrice mXr e nXr), sia quella di estrarre le matrici, è più veloce e più preciso (a mio avviso).
Mi sono permesso di ''testarlo'' su matlab e postare il listato in maniera tale da esplicitarne i passaggi.

>> W=round(rand(3,5)*100)

W =

   81    91    28    96    96
   91    63    55    16    49
   13    10    96    97    80

>> V=round(rand(4,3)*100)

V =

   14    96    93
   42    66    68
   92     4    76
   79    85    74

>> A=V*W

A =

      11079        8252       14600       11901       13488
      10292        8660       11334       11684       12706
       8804        9384       10092       16268       15108
      15096       13284       13991       16122       17669

>> rank(A)

ans =

    3

>> [M,L,N]=svd(A)

M =

  -0.4706   -0.5867   -0.5710    0.3291
  -0.4332   -0.1607    0.0110   -0.8868
  -0.4795    0.7917   -0.3686    0.0861
  -0.6009   -0.0564    0.7334    0.3128


L =

 1.0e+004 *

   5.6862         0         0         0         0
        0    0.5019         0         0         0
        0         0    0.2985         0         0
        0         0         0    0.0000         0


N =

  -0.4038   -0.4056    0.5405    0.2568   -0.5606
  -0.3538    0.0890    0.5585   -0.5855    0.4607
  -0.4401   -0.6350   -0.5599   -0.2790    0.1088
  -0.4950    0.6196   -0.2813   -0.2514   -0.4782
  -0.5225    0.2010   -0.0578    0.6710    0.4827

>> L1=L(1:3,1:3)

L1 =

 1.0e+004 *

   5.6862         0         0
        0    0.5019         0
        0         0    0.2985

>> L1=inv(L1)

L1 =

 1.0e-003 *

   0.0176         0         0
        0    0.1993         0
        0         0    0.3350

>> r=round(rand(3,1)*10)

r =

    4
    7
    2

>> r1=round(rand(2,4)*10)

r1 =

    7     3     1     7
    0     0     8     3

>> L2=[L1 r;  r1]

L2 =

   0.0000         0         0    4.0000
        0    0.0002         0    7.0000
        0         0    0.0003    2.0000
   7.0000    3.0000    1.0000    7.0000
        0         0    8.0000    3.0000

>> %da cui la pseudoinversa di A del primo tipo è:
>> A2=N*L2*M'

A2 =

   0.0440    1.9397    1.0258   -5.2434
   0.4015    4.2122   -0.7745    4.0876
  -1.8736    8.9250   -0.7155   -1.1457
   3.1377    2.0794    1.6291   -2.3281
  -4.2199   -7.0496   -1.8686    2.0609

>> A*A2*A-A

ans =

 1.0e-005 *

   0.0238         0    0.0119   -0.0238   -0.0119
  -0.0119   -0.0238   -0.0119   -0.0417   -0.0358
  -0.0656   -0.0656   -0.0715   -0.0954   -0.1073
  -0.0715   -0.0834   -0.0596   -0.1192   -0.1073

>>
Tornare in alto Andare in basso
Vedi il profilo dell'utente
Francesco89



Numero di messaggi : 4
Corso di appartenenza : Meccanica Applicata alle Macchine
NomeCognome : Indicare l'effettivo nome e cognome. Lo username può invece essere qualsiasi, purchè decente.

Francesco D'Angelo
Data d'iscrizione : 14.06.12

MessaggioTitolo: Re: Esercizio MATLAB compito 11 febbraio 2015   Mer Mar 04, 2015 7:35 pm

ciao ragazzi...
anche io mi trovo in merito allo svolgimento dell'esercizio assegnato in classe dal prof, tuttavia ho un dubbio da porvi:
ma esiste una matrice P(oppure la matrice Q) tale che non sia uguale alla matrice W( oppure la matrice V)??
Tornare in alto Andare in basso
Vedi il profilo dell'utente
Contenuto sponsorizzato




MessaggioTitolo: Re: Esercizio MATLAB compito 11 febbraio 2015   

Tornare in alto Andare in basso
 
Esercizio MATLAB compito 11 febbraio 2015
Vedere l'argomento precedente Vedere l'argomento seguente Tornare in alto 
Pagina 1 di 1
 Argomenti simili
-
» Automoto Offroad 1°Expo - dal 13 al 15 febbraio 2015 Torino - Lingotto Fiere
» Varano - VRK Varano Rally Krono - Domenica 22 Febbraio 2015
» Scarpa Yonex si o no
» Ruote Classiche numero di Febbraio
» Esercizio al cestino: quanto deve durare?

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