Torna indietro   Hardware Upgrade Forum > Off Topic > Discussioni Off Topic > Scienza e tecnica

OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
Abbiamo partecipato all'OVHcloud Summit 2025, conferenza annuale in cui l'azienda francese presenta le sue ultime novità. Abbiamo parlato di cloud pubblico e privato, d'intelligenza artificiale, di computer quantistici e di sovranità. Che forse, però, dovremmo chiamare solo "sicurezza"
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Abbiamo potuto mettere le mani in anteprima sul nuovo monitor MSI dedicato ai giocatori: un mostro che adotta un pannello QD-OLED da 26,5 pollici con risoluzione 2560 x 1440 pixel, frequenza di aggiornamento fino a 500 Hz e tempo di risposta di 0,03 ms GtG
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI aggiorna la sua linea di droni ultraleggeri con Neo 2, un quadricottero da 160 grammi che mantiene la compattezza del predecessore ma introduce una stabilizzazione meccanica a due assi, sensori omnidirezionali e un sistema LiDAR
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-01-2006, 22:27   #1
r_howie
Member
 
L'Avatar di r_howie
 
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.
__________________
Ho trattato con ffux, Gordon, OcTaGoN, tyul. Ciao,
-Giovanni
r_howie è offline   Rispondi citando il messaggio o parte di esso
Old 07-01-2006, 23:14   #2
pietro84
Member
 
L'Avatar di pietro84
 
Iscritto dal: Nov 2005
Messaggi: 154
Quote:
Originariamente inviato da r_howie
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.

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
pietro84 è offline   Rispondi citando il messaggio o parte di esso
Old 07-01-2006, 23:26   #3
r_howie
Member
 
L'Avatar di r_howie
 
Iscritto dal: Jul 2003
Città: Roma / Lisbona
Messaggi: 86
Quote:
Originariamente inviato da pietro84
ma nemmeno J è invertibile
Ah, vero.

Quote:
Originariamente inviato da pietro84
....sei sicuro che è possibile calcolare la pseudoinversa di una matrice non invertibile?
Sì. A differenza della matrice inversa (definibile solo quando la matrice di partenza è quadrata e non singolare), la pseudo-inversa esiste sempre. È proprio una generalizzazione dell'inversione, creata per le matrici rettangolari.
__________________
Ho trattato con ffux, Gordon, OcTaGoN, tyul. Ciao,
-Giovanni
r_howie è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2006, 00:20   #4
pietro84
Member
 
L'Avatar di pietro84
 
Iscritto dal: Nov 2005
Messaggi: 154
Quote:
Originariamente inviato da r_howie
Ah, vero.


Sì. A differenza della matrice inversa (definibile solo quando la matrice di partenza è quadrata e non singolare), la pseudo-inversa esiste sempre. È proprio una generalizzazione dell'inversione, creata per le matrici rettangolari.
a me non sembra che esista sempre.... se J*J^T non esiste(edit:o meglio non è invertibile)la pesudoinversa non esiste...domani se ho tempo trovo qualche link...io cmq ricordo che se quel prodotto non si può fare la pseudoinversa non esiste
__________________
"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.
pietro84 è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2006, 00:39   #5
r_howie
Member
 
L'Avatar di r_howie
 
Iscritto dal: Jul 2003
Città: Roma / Lisbona
Messaggi: 86
Quote:
Originariamente inviato da pietro84
a me non sembra che esista sempre.... se J*J^T non esiste(edit:o meglio non è invertibile)la pesudoinversa non esiste...domani se ho tempo trovo qualche link...io cmq ricordo che se quel prodotto non si può fare la pseudoinversa non esiste
Ti ringrazio. Io ho fatto lo stesso tuo ragionamento quando all'inizio ho scritto che 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.
__________________
Ho trattato con ffux, Gordon, OcTaGoN, tyul. Ciao,
-Giovanni
r_howie è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2006, 00:51   #6
pietro84
Member
 
L'Avatar di pietro84
 
Iscritto dal: Nov 2005
Messaggi: 154
Quote:
Originariamente inviato da r_howie
Ti ringrazio. Io ho fatto lo stesso tuo ragionamento quando all'inizio ho scritto che 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.
allora qualcosa c'è qualcosa di sbagliato o nella traccia o nella soluzione.
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
pietro84 è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2006, 10:59   #7
Banus
Senior Member
 
L'Avatar di Banus
 
Iscritto dal: Nov 2002
Città: Singularity
Messaggi: 894
Quote:
Originariamente inviato da r_howie
Nel caso più generale (cioè rho = m < n... invece il caso m > n in questa materia non interessa),
Attenzione: il ragionamento funziona solo se la matrice è rettangolare di rango massimo. Nel caso di matrice quadrata si riduce all'inversa.
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
Banus è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2006, 11:47   #8
pietro84
Member
 
L'Avatar di pietro84
 
Iscritto dal: Nov 2005
Messaggi: 154
Quote:
Originariamente inviato da pietro84
allora qualcosa c'è qualcosa di sbagliato o nella traccia o nella soluzione.
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...
ho controllato i tuoi conti,non soddisfa nessuna proprietà, non ho capito come fai a dire che la matrice da te citata soddisfa le proprietà della pseudoiversa:
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
pietro84 è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2006, 11:56   #9
Banus
Senior Member
 
L'Avatar di Banus
 
Iscritto dal: Nov 2002
Città: Singularity
Messaggi: 894
Quote:
Originariamente inviato da pietro84
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
Devono essere rispettate le condizioni (cioè deve esistere l'inversa di J*J^T), non rispettate dalla J di esempio. Se sono rispettate, J*J# = (J J^T)*(J J^T)^(-1) = I e tutto torna.
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.
Banus è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2006, 11:58   #10
pietro84
Member
 
L'Avatar di pietro84
 
Iscritto dal: Nov 2005
Messaggi: 154
Quote:
Originariamente inviato da Banus
Devono essere rispettate le condizioni (cioè deve esistere l'inversa di J*J^T), non rispettate dalla J di esempio. Se sono rispettate, J*J# = (J J^T)*(J J^T)^(-1) = I e tutto torna.
lo so! infatti ricordavo cosi io...
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
pietro84 è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2006, 13:34   #11
Banus
Senior Member
 
L'Avatar di Banus
 
Iscritto dal: Nov 2002
Città: Singularity
Messaggi: 894
Quote:
Originariamente inviato da pietro84
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
Allora... sono riuscito a sciogliere la matassa.
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 ), cioè questa:

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.
Banus è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2006, 14:20   #12
pietro84
Member
 
L'Avatar di pietro84
 
Iscritto dal: Nov 2005
Messaggi: 154
Quote:
Originariamente inviato da Banus
Allora... sono riuscito a sciogliere la matassa.
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 ), cioè questa:

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


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.
pietro84 è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2006, 15:19   #13
r_howie
Member
 
L'Avatar di r_howie
 
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).
__________________
Ho trattato con ffux, Gordon, OcTaGoN, tyul. Ciao,
-Giovanni
r_howie è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 18:39   #14
Sberloz
Member
 
Iscritto dal: Aug 2005
Città: Rimini
Messaggi: 169
Quote:
Originariamente inviato da pietro84
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 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.
Sberloz è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 19:14   #15
pietro84
Member
 
L'Avatar di pietro84
 
Iscritto dal: Nov 2005
Messaggi: 154
Quote:
Originariamente inviato da Sberloz
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.
si ci arrivammo alla fine,esiste sempre

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
pietro84 è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2006, 12:06   #16
Sberloz
Member
 
Iscritto dal: Aug 2005
Città: Rimini
Messaggi: 169
Sberloz è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone L'IA "seria" di Appian è divers...
Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
BYD domina il mercato NEV cinese: nessun...
Hong Kong sempre più aperta alle ...
E-Bike e Cyber Monday, non si scherza: s...
Un supervulcano potrebbe cambiare il fut...
Questa scheda video cinese non ha una GP...
Com'è fatto il cloud... di person...
Windows 11, l'icona per la password non ...
Stabilimento Beko di Siena: fine delle a...
Gillette City Winter Edition: la nuova m...
Ultimo giorno di Black Friday: ecco le o...
Le pubblicità stanno arrivando su...
Ultimo giorno di Black Friday: droni DJI...
Elon Musk: 'AI e robotica sono la chiave...
Wi-Fi superveloce anche in giardino? FRI...
Ogni richiesta a ChatGPT consuma quanto ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 15:22.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v