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 |
|
| Soluzione dell'equazione Ax=b con le varie pseudoinverse e calcolo della norma. | |
| | Autore | Messaggio |
---|
Stefano cerqua
Numero di messaggi : 11 Corso di appartenenza : Meccanica Applicata alle Macchine NomeCognome : Stefano Cerqua Data d'iscrizione : 17.02.09
| Titolo: Soluzione dell'equazione Ax=b con le varie pseudoinverse e calcolo della norma. Dom Nov 06, 2011 5:48 pm | |
| Ecco il listato matlab dell'esercizio proposto in classe per un sistema Ax=b CONSISTENTE. clear clc m = 4, n = 5, r = 3 disp('----------- Costruzione di una matrice mxn di rango r=1 ------------------------------') for i = 1 : m; a(i) = sin(i*1.35*pi); end for j = 1 : n; b(j) = cos(j*1.42*pi); end disp('Sono definiti il vettore colonna a e il vettore riga b') a = a',b disp(' si ottiene A = a * b') A = a * b disp(strcat('Verifica di Rank(A) = ',num2str(rank(A)))) rank(A) disp('----------- Costruzione di una matrice mxn di rango r: --------------------------------') clear a, b; for k = 1 : r; for i = 1 : m; a(i,k) = sin(i*k*k*1.35*pi); end; end; for k = 1 : r; for j = 1 : n; b(k,j) = cos(j*k*k*1.42*pi); end; end; disp('Si considerino i vettori colonna della matrice a:'),a disp('e i vettori riga della matrice b:'),b
A = zeros(m , n); for k = 1 : r; disp(strcat('A',num2str(k),' :')), AA = a(1:m , k)*b(k , 1:n), A = A + AA; end; disp('Matrice A :') A disp(strcat('Verifica di Rank(A) = ',num2str(rank(A)))) rank(A) disp('----------- Decomposizione in valori singolari A = W Lambda Vt -------------------------') [P1 , LL , Q1] = svd(A); W = P1(1:m , 1:r) Lambda = LL(1:r , 1:r) V = Q1(1:n , 1:r) disp('Verifica della rappresentazione in valori singolari di A : A - W Lambda Vt = zero') A - W * Lambda * V'
disp('----------- Decomposizione in valori singolari A = P LL Qt -----------------------------') disp(' determinazione di null(Wt) e null(Vt)') nsWt = null(W') nsVt = null(V') P = [ W nsWt] , Q = [ V nsVt] disp('Verifica della rappresentazione in valori singolari di A : A - P LL Qt = zero') A - P * LL * Q'
disp('----------- Inverse Generalizzate ----------------------------------') mK = r; nK = m-r; mL = n-r; nL = r; mM = n-r; nM = m-r; for i=1:mK; for j=1:nK; K(i,j) = sin((i+1)*pi/((j+1)*2.3)); end; end; for i=1:mL; for j=1:nL; L(i,j) = sin((i+j)*pi/((2*j+1)*2.7)); end; end; for i=1:mM; for j=1:nM; M(i,j) = sin((i+1)*pi/((i+j)*1.7)); end; end; Pt = P';
disp('--------------------------------- Inversa Generalizzata A1 ---------') N1 = Lambda ^(-1); Lambda1 = [[N1, K], [L , M]]; A1 = Q * Lambda1 * Pt disp(' Verifica proprieta 1: A - A A1 A OK') A - A * A1 * A disp(' Verifica proprieta 2: A1 - A1 A A1 NO') A1 - A1 * A * A1 disp(' Verifica proprieta 3: (A*A1)'' - (A1*A) NO') A1 - A1 * A * A1 disp(' Verifica proprieta 4: (A1*A)''-(A1*A) NO') (A1*A)'-(A1*A)
disp('--------------------------------- Inversa Generalizzata A12 ---------') M2 = L * Lambda * K; Lambda12 = [[N1, K ], [L , M2]]; A12 = Q * Lambda12 * Pt disp(' Verifica proprieta 1: A - A A12 A OK') A - A * A12 * A disp(' Verifica proprieta 2: A12 - A12 A A12 OK') A12 - A12 * A * A12 disp(' Verifica proprieta 3: (A*A12)'' - (A12*A) NO') A12 - A12 * A * A12 disp(' Verifica proprieta 4: (A12*A)''-(A12*A) NO') (A12*A)'-(A12*A)
disp('--------------------------------- Inversa Generalizzata A14 ---------') L4 = zeros(size(L)); Lambda14 = [[N1, K ], [L4, M ]]; A14 = Q * Lambda14 * Pt disp(' Verifica proprieta 1: A - A A14 A OK') A - A * A14 * A disp(' Verifica proprieta 2: A14 - A14 A A14 NO') A14 - A14 * A * A14 disp(' Verifica proprieta 3: (A*A124)'' - (A124*A) NO') A14 - A14 * A * A14 disp(' Verifica proprieta 4: (A14*A)''-(A14*A) OK') (A14*A)'-(A14*A)
disp('--------------------------------- Inversa Generalizzata A124 ---------') M2 = zeros(size(M)); Lambda124 = [[N1, K ], [L4, M2 ]]; A124 = Q * Lambda124 * Pt disp(' Verifica proprieta 1: A - A A124 A OK') A - A * A124 * A disp(' Verifica proprieta 2: A124 - A124 A A124 OK') A124 - A124 * A * A124 disp(' Verifica proprieta 3: (A*A124)'' - (A124*A) NO') A124 - A124 * A * A124 disp(' Verifica proprieta 4: (A124*A)''-(A124*A) OK') (A124*A)'-(A124*A) disp('--------------------------------- Inversa Generalizzata A1234 ---------') K4 = zeros(size(K)); Lambda1234 = [[N1, K4 ], [L4, M2 ]]; A1234 = Q * Lambda1234 * Pt disp(' Verifica proprieta 1: A - A A1234 A OK') A - A * A1234 * A disp(' Verifica proprieta 2: A1234 - A1234 A A1234 OK') A1234 - A1234 * A * A1234 disp(' Verifica proprieta 3: (A*A1234)'' - (A1234*A) OK') A1234 - A1234 * A * A1234 disp(' Verifica proprieta 4: (A1234*A)''-(A1234*A) OK') (A1234*A)'-(A1234*A) disp('--------------------------------- Calcolo MP-inversa con matlab ---------') disp('--------------------------------- B=pinv(A) ---------') B=pinv(A) disp('--------------------------------- Verifica del calcolo della MP-inversa ---------') disp('--------------------------------- A1234-B ---------') A1234-B pause disp('--------------------------------- premi un tasto per continuare ---------') disp('--------------------------------- Soluzione generale dell.equazione consistente ---------') disp('--------------------------------- Trovare il generico vettore b della soluzione Ax=b ---------') xr=rand(n,1); b=A*xr disp('--------------------------------- Consistenza del sistema di equazioni A*x=b pag.57 dal libro') A*A1*b-b disp('--------------------------------- Soluzione generale del sistema consistente ---------') disp('--------------------------------- Creazione del generico vettore h di R^n ---------') h=rand(n,1) 'Test con A1' x1=A1*b+(eye(n)-A1*A)*h disp('A*x1-b='), Norm1=A*x1-b 'Test con A12' x12=A12*b+(eye(n)-A12*A)*h disp('A*x12-b='), Norm12=A*x12-b 'Test con A14' x14=A14*b+(eye(n)-A14*A)*h disp('A*x14-b='), Norm14=A*x14-b 'Test con A124' x124=A124*b+(eye(n)-A124*A)*h disp('A*x124-b='), Norm124=A*x124-b 'Test con A1234' x1234=A1234*b+(eye(n)-A1234*A)*h disp('A*x1234-b='), Norm1234=A*x1234-b disp('Confronto delle norme con le varie inverse generalizzate') l1=norm(Norm1) l12=norm(Norm12) l14=norm(Norm14) l124=norm(Norm124)
| |
| | | ddefalco Admin
Numero di messaggi : 172 Località : Napoli Corso di appartenenza : Meccanica Applicata alle Macchine NomeCognome : Domenico de Falco Data d'iscrizione : 29.12.08
| Titolo: Re: Soluzione dell'equazione Ax=b con le varie pseudoinverse e calcolo della norma. Lun Nov 07, 2011 3:21 pm | |
| La ringrazio per l'intervento sul forum. Dovrebbe però chiarire l'obiettivo del programma che ha realizzato perché credo che a lezione avevo proposto un'altra cosa... e comunque sarebbe il caso per chiarire tale obiettivo a chi partecipa a questo forum e non era presente a lezione. Prego anche gli altri allievi di intervenire in proposito su questo argomento. | |
| | | gianfranco88
Numero di messaggi : 6 Corso di appartenenza : Dinamica e Controllo dei Sistemi Meccanici NomeCognome : Gianfranco Capriello Data d'iscrizione : 17.10.11
| Titolo: Re: Soluzione dell'equazione Ax=b con le varie pseudoinverse e calcolo della norma. Mar Nov 08, 2011 6:28 pm | |
| Abbiamo costruito un vettore b tale che il sistema non fosse consistente. Questo listato è da aggiungere a quello sopra sostituendo dal comando: "disp('--------------------------------- Soluzione generale dell.equazione consistente ---------')" in poi. Abbiamo verificato che il sistema nn fosse consistente attraverso A*A1*b diverso da b. Quindi abbiamo verificato che la norma minima si raggiunge con la A1234.
disp('--------------------------------- Soluzione generale dell.equazione NON consistente ---------') disp('--------------------------------- Costruire un vettore b random tale che il sistema Ax=b non sia consistente ---------') b=rand(m,1) A*A1*b-b disp('--------------------------------- Creazione del generico vettore h di R^n ---------') h=rand(n,1) 'Test con A1' x1=A1*b+(eye(n)-A1*A)*h disp('A*x1-b='), Norm1=A*x1-b 'Test con A12' x12=A12*b+(eye(n)-A12*A)*h disp('A*x12-b='), Norm12=A*x12-b 'Test con A14' x14=A14*b+(eye(n)-A14*A)*h disp('A*x14-b='), Norm14=A*x14-b 'Test con A124' x124=A124*b+(eye(n)-A124*A)*h disp('A*x124-b='), Norm124=A*x124-b 'Test con A1234' x1234=A1234*b+(eye(n)-A1234*A)*h disp('A*x1234-b='), Norm1234=A*x1234-b disp('confronto delle norme con le varie inverse generalizzate') Z1=norm(Norm1) Z12=norm(Norm12) Z14=norm(Norm14) Z124=norm(Norm124) Z1234=norm(Norm1234) 'valutazione della norma minima=Zmin ' Z=[Z1, Z12,Z14,Z124,Z1234]; Zmin=min(Z)
| |
| | | ADEN
Numero di messaggi : 2 Corso di appartenenza : Dinamica e Controllo dei Sistemi Meccanici NomeCognome : Victor Padova Data d'iscrizione : 17.10.11
| Titolo: Re: Soluzione dell'equazione Ax=b con le varie pseudoinverse e calcolo della norma. Mar Nov 08, 2011 6:37 pm | |
| uhà gianfrà...........................m hai anticipato!!!
| |
| | | Stefano cerqua
Numero di messaggi : 11 Corso di appartenenza : Meccanica Applicata alle Macchine NomeCognome : Stefano Cerqua Data d'iscrizione : 17.02.09
| Titolo: Re: Soluzione dell'equazione Ax=b con le varie pseudoinverse e calcolo della norma. Mar Nov 08, 2011 6:49 pm | |
| abbiamo anche dimostrato il paragrafo finale del capitolo secondo, ovvero che la Zmin si ottiene con l'xmin derivante da A1234. Se ad esempio ci troviamo nel campo 3-D i possibili vettori x che minimizzano la distanza sono tutti quei infiniti vettori con vertice posto su una sfera di centro il vertice di xr e raggio Zmin. Con la A1234 si ottiene Zmin con xmin. Questo listato segue semplicemente quello di gianfranco come ulteriore verifica.
mod1=norm(x1) mod12=norm(x12) mod14=norm(x14) mod124=norm(x124) mod1234=norm(x1234) X=[mod1,mod12,mod14,mod124,mod1234] Xmin=min(X) | |
| | | gianfranco88
Numero di messaggi : 6 Corso di appartenenza : Dinamica e Controllo dei Sistemi Meccanici NomeCognome : Gianfranco Capriello Data d'iscrizione : 17.10.11
| Titolo: Re: Soluzione dell'equazione Ax=b con le varie pseudoinverse e calcolo della norma. Mar Nov 08, 2011 6:50 pm | |
| Victor non sai quanto mi dispiace.... hiihihihihihihiihih | |
| | | ddefalco Admin
Numero di messaggi : 172 Località : Napoli Corso di appartenenza : Meccanica Applicata alle Macchine NomeCognome : Domenico de Falco Data d'iscrizione : 29.12.08
| Titolo: Re: Soluzione dell'equazione Ax=b con le varie pseudoinverse e calcolo della norma. Mar Nov 08, 2011 8:15 pm | |
| Attenzione non ha senso parlare di " Soluz generale dell'equazione NON consistente". Se l'equaz. è non consistente per definizione non ammette soluzione. Pertanto quello che avete fatto è : - trovare il valore della funzione Z(x)=||Ax-b|| dando ad x i valori ottenuti dalla formuletta
x = pA * b + ( I - pA * A) * h con pA di volta in volta pari ad A1, A12, A14, A124 e A1234
- si verifica poi che il valore minimo (unico) di Z(x) si ottiene con una qualsiasi A14 e che il vettore x di lungh minima che minimizza Z(x) si ottiene con la A1234
Naturalmente questa è solo una precisazione che spero serva a chiarire ulteriormente i risultati raggiunti, ma sono soddisfatto di come è stato sviluppato l'esercizio. | |
| | | adimassa
Numero di messaggi : 7 Località : Santa Maria Capua Vetere Corso di appartenenza : Dinamica e Controllo dei Sistemi Meccanici NomeCognome : Alessio Di Massa Data d'iscrizione : 12.10.11
| Titolo: Re: Soluzione dell'equazione Ax=b con le varie pseudoinverse e calcolo della norma. Mer Nov 09, 2011 12:15 pm | |
| Buongiorno a tutti. Invio questo messaggio in quanto non ho potuto partecipare alla lezione di oggi per motivi di salute. Se è possibile vorrei chiedere al Professore quali argomenti sono stati spiegati oggi e a qualche mio collega di buona volontà di passarmi gli appunti via mail se hanno uno scanner, o di persona quando ci vedremo in modo che io possa fare le fotocopie. Grazie | |
| | | ddefalco Admin
Numero di messaggi : 172 Località : Napoli Corso di appartenenza : Meccanica Applicata alle Macchine NomeCognome : Domenico de Falco Data d'iscrizione : 29.12.08
| Titolo: Re: Soluzione dell'equazione Ax=b con le varie pseudoinverse e calcolo della norma. Mer Nov 09, 2011 1:15 pm | |
| Nella lezione di oggi ho solo fatto due esercizi sull'applicazione dell equazione del moto di Udwadia Kalaba al caso di punto materiale che si muove su una retta e punto materiale che si muove su una ellisse, entrambi ampiamente descritti nel libro di testo.
Nulla di grave ma la pregherei di non inquinare con messaggi che non c'entrano niente un ben definito topic (argomento) del forum: tutt'alpiu dovrebbe aprire un nuovo topic... diciamo che per cose come quella che chiede sarebbe piu opportuno usare le email. | |
| | | Contenuto sponsorizzato
| Titolo: Re: Soluzione dell'equazione Ax=b con le varie pseudoinverse e calcolo della norma. | |
| |
| | | | Soluzione dell'equazione Ax=b con le varie pseudoinverse e calcolo della norma. | |
|
Argomenti simili | |
|
| Permessi in questa sezione del forum: | Non puoi rispondere agli argomenti in questo forum.
| |
| |
| |