|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jul 2003
Città: Roma / Lisbona
Messaggi: 86
|
Matrice pseudo-inversa problematica
Studiando le dispense dell'esame di robotica, non ho capito una cosa di algebra lineare.
In sintesi il mio problema è: come si calcola la pseudo-inversa della matrice J qua sotto? Ho letto cos'è una matrice pseudo-inversa, tutto chiaro. Se il rango di una matrice J è pieno (rho = m = n), allora vale l'uguaglianza J# = J^(-1), dove con J# indico la matrice pseudo-inversa mentre con J^(-1) la matrice inversa. Nel caso più generale (cioè rho = m < n... invece il caso m > n in questa materia non interessa), si ha J# = J^T (J J^T)^(-1) avendo indicato con J^T la trasposta (in realtà sarebbe la trasposta coniugata, ma in questa materia non ci sono numeri complessi) e sottointendendo l'operazione di moltiplicazione. Prendiamo ora questa matrice: ![]() La mia domanda è: come si calcola la sua pseudoinversa, visto che applicando la formula di cui sopra si ottiene e questa matrice prodotto non è certo invertibile, avendo determinante nullo?La soluzione è , ho verificato che effettivamente rispetta tutte le proprietà della pseudo-inversa, ma non capisco come la si calcoli analiticamente.s e c indicano seno e coseno dello stesso angolo. Il lucido su cui ho studiato è il numero 12 (pagine 5-6) di questo sito; il pedice 1 di s e c nel pdf si può ignorare: in questo esercizio è irrilevante. |
|
|
|
|
|
#2 | |
|
Member
Iscritto dal: Nov 2005
Messaggi: 154
|
Quote:
ma nemmeno J è invertibile....sei sicuro che è possibile calcolare la pseudoinversa di una matrice non invertibile? io non ricordo bene ma non mi sembra si possa fare...
__________________
"la scelta giusta non è sempre la più saggia,ma è quella che non porta con sè rimpianti" . pietro84 |
|
|
|
|
|
|
#3 | ||
|
Member
Iscritto dal: Jul 2003
Città: Roma / Lisbona
Messaggi: 86
|
Quote:
Quote:
|
||
|
|
|
|
|
#4 | |
|
Member
Iscritto dal: Nov 2005
Messaggi: 154
|
Quote:
__________________
"la scelta giusta non è sempre la più saggia,ma è quella che non porta con sè rimpianti" . pietro84 Ultima modifica di pietro84 : 08-01-2006 alle 00:28. |
|
|
|
|
|
|
#5 | |
|
Member
Iscritto dal: Jul 2003
Città: Roma / Lisbona
Messaggi: 86
|
Quote:
non è invertibile.Eppure, il J# della soluzione dell'esercizio è proprio la pseudo-inversa di quella J, come si può verificare dal fatto che (grazie alle identità della trigonometria) soddisfa le proprietà/definizioni della pseudo-inversa tipo prodotto J J# J = J, etc. |
|
|
|
|
|
|
#6 | |
|
Member
Iscritto dal: Nov 2005
Messaggi: 154
|
Quote:
il fatto che soddisfi quella proprietà non è una condizione sufficiente per definire quella matrice pseudoinversa di J...cmq vedo meglio domani ecco un link che ho trovato a volo: http://www.ce.unipr.it/people/medici...try/node2.html vado a dormire...
__________________
"la scelta giusta non è sempre la più saggia,ma è quella che non porta con sè rimpianti" . pietro84 |
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Nov 2002
Città: Singularity
Messaggi: 894
|
Quote:
La matrice J che hai usato come esempio non rispetta queste condizioni (rho < m = n) ed è per questo che J*J^T non è invertibile.
__________________
echo 'main(k){float r,i,j,x,y=-15;while(puts(""),y++<16)for(x=-39;x++<40;putchar(" .:-;!/>"[k&7])) for(k=0,r=x/20,i=y/8;j=r*r-i*i+.1, i=2*r*i+.6,j*j+i*i<11&&k++<111;r=j);}'&>jul.c;gcc -o jul jul.c;./jul |Only Connect| "To understand is to perceive patterns" Isaiah Berlin "People often speak of their faith, but act according to their instincts." Nietzsche - Bayesian Empirimancer - wizardry |
|
|
|
|
|
|
#8 | |
|
Member
Iscritto dal: Nov 2005
Messaggi: 154
|
Quote:
1.se una matrice è quadrata la pseudoinversa coincide con l'inversa,J non è invertibile,quindi nemmeno la pseudoinversa esiste. 2.JJ#(indicando con J# la matrice da te proposta come pseudoinversa) non da assolutamente la matrice identità quindi non vedo come possa accadere che JJ#J=J
__________________
"la scelta giusta non è sempre la più saggia,ma è quella che non porta con sè rimpianti" . pietro84 |
|
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Nov 2002
Città: Singularity
Messaggi: 894
|
Quote:
EDIT: la J# del primo post non la rispetta
__________________
echo 'main(k){float r,i,j,x,y=-15;while(puts(""),y++<16)for(x=-39;x++<40;putchar(" .:-;!/>"[k&7])) for(k=0,r=x/20,i=y/8;j=r*r-i*i+.1, i=2*r*i+.6,j*j+i*i<11&&k++<111;r=j);}'&>jul.c;gcc -o jul jul.c;./jul |Only Connect| "To understand is to perceive patterns" Isaiah Berlin "People often speak of their faith, but act according to their instincts." Nietzsche - Bayesian Empirimancer - wizardry Ultima modifica di Banus : 08-01-2006 alle 12:00. |
|
|
|
|
|
|
#10 | |
|
Member
Iscritto dal: Nov 2005
Messaggi: 154
|
Quote:
però l'autore del 3d ha scritto che quella matrice da lui proposta nel primo post soddisfa tutte le proprietà della matrice pseudoinversa di J anche se non era possibile calcolarla analiticamente...perciò sono rimasto un po meravilgliato
__________________
"la scelta giusta non è sempre la più saggia,ma è quella che non porta con sè rimpianti" . pietro84 |
|
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Nov 2002
Città: Singularity
Messaggi: 894
|
Quote:
La matrice J# riportata nel primo post è sbagliata, la reale J# è quella trasposta. La formula J^T (J J^T)^(-1) vale solo per J di rango massimo, condizione ovviamente non soddisfatta in questo caso, e quindi non si può usare. Per questi casi c'è un'altra formula (grazie planethmath J# = C^T (B B^T)^(-1) (C^T C)^(-1) B^T dove J = BC con B e C matrici di rango massimo rho. I segni di trasposta diventano trasposta coniugata nel caso di matrici complesse (ma non è il nostro caso). Ora, J può essere espressa come prodotto delle matrici: B^T = [-s c] C = [2 1] e svolgendo i calcoli esce la matrice trasposta di quella scritta da r_howie. Attenzione perchè è necessario usare la proprietà s^2 + c^2 = 1, essendo s e c seno e coseno dello stesso angolo. Calcolando J*J#*J si ottiene ancora J (sempre usando le proprietà di s e c). PS: gli appunti del corso non mi sono serviti granchè, anzi aumentano la confusione non citando esplicitamente il caso r < n,m
__________________
echo 'main(k){float r,i,j,x,y=-15;while(puts(""),y++<16)for(x=-39;x++<40;putchar(" .:-;!/>"[k&7])) for(k=0,r=x/20,i=y/8;j=r*r-i*i+.1, i=2*r*i+.6,j*j+i*i<11&&k++<111;r=j);}'&>jul.c;gcc -o jul jul.c;./jul |Only Connect| "To understand is to perceive patterns" Isaiah Berlin "People often speak of their faith, but act according to their instincts." Nietzsche - Bayesian Empirimancer - wizardry Ultima modifica di Banus : 08-01-2006 alle 13:36. |
|
|
|
|
|
|
#12 | |
|
Member
Iscritto dal: Nov 2005
Messaggi: 154
|
Quote:
ottimo! quindi ricapitolando la pseudoinversa di una matrice quadrata esiste anche quando l'inversa non esiste?! ma in pratica esiste per qualsiasi matrice quadrata o rettangolare? edit:quindi stando cosi le cose è la soluzione J# a essere sbagliata
__________________
"la scelta giusta non è sempre la più saggia,ma è quella che non porta con sè rimpianti" . pietro84 Ultima modifica di pietro84 : 08-01-2006 alle 14:23. |
|
|
|
|
|
|
#13 |
|
Member
Iscritto dal: Jul 2003
Città: Roma / Lisbona
Messaggi: 86
|
Che dire... vi ringrazio entrambi di cuore!
L'esame ce l'ho domani. Comunque vada, prossimamente mando una bella email alla docente con le osservazioni (già ne ho una certa lista, i lucidi sono considerati solo "complemento" del libro di testo quindi a volte sono imprecisi o addirittura errati). |
|
|
|
|
|
#14 | |
|
Member
Iscritto dal: Aug 2005
Città: Rimini
Messaggi: 169
|
Quote:
La pseudoinversa esiste sempre, che la matrice sia rettangolare o quadrata e, in quest'ultimo caso, invertibile o meno. Se la matrice è invertibile semplicemente la pseudoinversa coincide con l'inversa. |
|
|
|
|
|
|
#15 | |
|
Member
Iscritto dal: Nov 2005
Messaggi: 154
|
Quote:
o meglio Banus capi il problema più che io
__________________
"la scelta giusta non è sempre la più saggia,ma è quella che non porta con sè rimpianti" . pietro84 |
|
|
|
|
|
|
#16 |
|
Member
Iscritto dal: Aug 2005
Città: Rimini
Messaggi: 169
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:22.











e questa matrice prodotto non è certo invertibile, avendo determinante nullo?
, ho verificato che effettivamente rispetta tutte le proprietà della pseudo-inversa, ma non capisco come la si calcoli analiticamente.








