¿Cuántas operaciones aritméticas se requieren para encontrar una matriz pseudoinversa de Moore-Penrose de un campo arbitrario?
Si la matriz es invertible y tiene un valor complejo, entonces es solo lo inverso. Encontrar el inverso toma tiempo , donde es la constante de multiplicación de la matriz. Es el Teorema 28.2 en Introducción a los Algoritmos 3ra Edición.
Si la matriz tiene filas o columnas linealmente independientes y un valor complejo, entonces la matriz pseudoinversa puede calcularse con o respectivamente , en donde es la transpuesta conjugada de . En particular, esto implica un de tiempo para encontrar la pseudoinversa de .
Para la matriz general, los algoritmos que he visto usan descomposición QR o SVD, que parece tomar operaciones aritméticas en el peor de los casos. ¿Hay algoritmos que usan menos operaciones?
fuente
Respuestas:
En primer lugar, las personas tienden a olvidar que es un infimum. Cada vez que escribimos , en realidad queremos decir para todos , hay un algoritmo que se ejecuta en el tiempo .ω O(nω) γ>ω Oγ(nγ)
Keller-Gehrig mostró (entre otros) cómo presentar una matriz en forma normal de rango en el tiempo . Si tiene rango , entonces una forma normal de rango de es para algunos invertibles de las dimensiones apropiadas; ver también Teoría de la complejidad algebraica, Proposición 16.13 en la página 435.A O(nω) A r A
La forma normal de rango es similar a la descomposición de rango mencionada en el artículo de Wikipedia, donde tiene columnas e tiene filas. De hecho, podemos tomar para ser los primeros columnas de , y para ser los primeros filas de . Dada esta descomposición, Wikipedia da una fórmula para el pseudoinverso usando solo adjuntos hermitianos, multiplicación de matrices e inverso de matrices. Por lo tanto, el pseudoinverso puede calcularse en el tiempo .A=XY X r Y r X r S Y r T O(nω)
fuente