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 | 
 

 Soluzione dell'equazione Ax=b con le varie pseudoinverse e calcolo della norma.

Vedere l'argomento precedente Vedere l'argomento seguente Andare in basso 
AutoreMessaggio
Stefano cerqua



Numero di messaggi : 11
Corso di appartenenza : Meccanica Applicata alle Macchine
NomeCognome : Stefano Cerqua
Data d'iscrizione : 17.02.09

MessaggioTitolo: 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)
Tornare in alto Andare in basso
Vedi il profilo dell'utente
ddefalco
Admin
avatar

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

MessaggioTitolo: 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.
Tornare in alto Andare in basso
Vedi il profilo dell'utente
gianfranco88



Numero di messaggi : 6
Corso di appartenenza : Dinamica e Controllo dei Sistemi Meccanici
NomeCognome : Gianfranco Capriello
Data d'iscrizione : 17.10.11

MessaggioTitolo: 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)
Tornare in alto Andare in basso
Vedi il profilo dell'utente
ADEN



Numero di messaggi : 2
Corso di appartenenza : Dinamica e Controllo dei Sistemi Meccanici
NomeCognome : Victor Padova
Data d'iscrizione : 17.10.11

MessaggioTitolo: 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!!!
Tornare in alto Andare in basso
Vedi il profilo dell'utente
Stefano cerqua



Numero di messaggi : 11
Corso di appartenenza : Meccanica Applicata alle Macchine
NomeCognome : Stefano Cerqua
Data d'iscrizione : 17.02.09

MessaggioTitolo: 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)
Tornare in alto Andare in basso
Vedi il profilo dell'utente
gianfranco88



Numero di messaggi : 6
Corso di appartenenza : Dinamica e Controllo dei Sistemi Meccanici
NomeCognome : Gianfranco Capriello
Data d'iscrizione : 17.10.11

MessaggioTitolo: 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.... Very Happy hiihihihihihihiihih
Tornare in alto Andare in basso
Vedi il profilo dell'utente
ddefalco
Admin
avatar

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

MessaggioTitolo: 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 è :
  1. 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

  2. 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.
Tornare in alto Andare in basso
Vedi il profilo dell'utente
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

MessaggioTitolo: 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
Tornare in alto Andare in basso
Vedi il profilo dell'utente
ddefalco
Admin
avatar

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

MessaggioTitolo: 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.
Tornare in alto Andare in basso
Vedi il profilo dell'utente
Contenuto sponsorizzato




MessaggioTitolo: Re: Soluzione dell'equazione Ax=b con le varie pseudoinverse e calcolo della norma.   

Tornare in alto Andare in basso
 
Soluzione dell'equazione Ax=b con le varie pseudoinverse e calcolo della norma.
Vedere l'argomento precedente Vedere l'argomento seguente Tornare in alto 
Pagina 1 di 1
 Argomenti simili
-
» usb non carica smartphone
» Forum su lacuradellauto.com
» Orso, Tartaruga e le prime nevi
» Interni appiccicosi... c'è una soluzione?
» Aria condizionata Killer.

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