Ultimi argomenti attivi | » Frizione Koenigsegg LST, come funzionaSab 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.Gio Gen 11, 2018 7:56 pm Da SN92 » Molpendolo estensibile Mar Mag 09, 2017 8:38 pm Da hacknowledge » Decomposizione in valori singolari in MatlabGio Nov 03, 2016 9:42 pm Da Gianluca93 » LA A^-1 rispetta le 4 proprietà della inversa generalizzata di MPMer Nov 02, 2016 3:04 pm Da r.mauro » How a differential works?Dom Lug 10, 2016 10:57 am Da Mario95 » Manovellismo di spinta rotativa: Caso manovella disposta a 90° rispetto all'asse di scorrimento del pistoneLun Giu 20, 2016 6:21 am Da ddefalco » QuIRK Multibody Dynamics Esempio pendolo pianoGio Mag 05, 2016 8:37 am Da bestlin » QuIRK Multibody Dynamics PackageSab Mar 12, 2016 4:03 pm Da SN92 |
| | Esercizio MATLAB compito 11 febbraio 2015 | |
| | Autore | Messaggio |
---|
L.Imperatore
Numero di messaggi : 5 Corso di appartenenza : Meccanica Applicata alle Macchine NomeCognome : Luigi Imperatore Data d'iscrizione : 21.05.12
| Titolo: 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 %%%%%%%%%%%%%%%%%%% | |
| | | manlio182
Numero di messaggi : 13 Corso di appartenenza : Dinamica e Controllo dei Sistemi Meccanici NomeCognome : manlio bellocchio Data d'iscrizione : 17.02.09
| Titolo: 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. | |
| | | manlio182
Numero di messaggi : 13 Corso di appartenenza : Dinamica e Controllo dei Sistemi Meccanici NomeCognome : manlio bellocchio Data d'iscrizione : 17.02.09
| Titolo: 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 | |
| | | L.Imperatore
Numero di messaggi : 5 Corso di appartenenza : Meccanica Applicata alle Macchine NomeCognome : Luigi Imperatore Data d'iscrizione : 21.05.12
| Titolo: 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
>> | |
| | | 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
| Titolo: 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)?? | |
| | | Contenuto sponsorizzato
| Titolo: Re: Esercizio MATLAB compito 11 febbraio 2015 | |
| |
| | | | Esercizio MATLAB compito 11 febbraio 2015 | |
|
Argomenti simili | |
|
| Permessi in questa sezione del forum: | Non puoi rispondere agli argomenti in questo forum.
| |
| |
| |