Número de condición de formulaciones A'A y AA '


9

Se muestra (Yousef Saad, Métodos iterativos para sistemas lineales dispersos , p. 260) que cond(AA)cond(A)2

¿Es esto cierto también para AA ?

En caso de que A sea N×M con NM , observo que cond(AA)cond(AA)

¿Eso significa que la formulación en términos de AA es preferible en este caso?


2
Estás comparando números de condición de dos matrices con tamaños muy diferentes. Sin una explicación de por qué, parece que esa comparación probablemente no sea significativa. Ciertamente, si puede lograr lo que necesita usando una matriz mucho más pequeña, debería (incluso si el acondicionamiento fuera similar).
David Ketcheson el

1
La nueva respuesta de Stefano M a continuación es correcta. Léalo y vote.
David Ketcheson

Respuestas:


6

Si con N < M , entonces r a n k ( A T A ) = r a n k ( A A T ) = r a n k ( A ) N < M para que A T A R M × M no puede ser rango completo, es decir, es singular.ARN×MN<M

rank(ATA)=rank(AAT)=rank(A)N<M
ATARM×M

En consecuencia, el número de condición es . Debido a la aritmética de precisión finita, si calcula en matlab obtiene un gran número, no .κ2(ATA)=cond(A'A)Inf


@OscarB: los valores singulares de son solo N , ¡no existe el M valor singular! Su derivación es correcta, pero tenga en cuenta que si σ i , i = 1 ... N son los sv de A , entonces S S T = d i a g ( σ 2 1 , ... , σ 2 n ) , mientras que S T S = d i a g ( σ 2ANMσii=1NASST=diag(σ12,,σn2)conM-Nceros al final. STS=diag(σ12,,σn2,0,,0)MN
Stefano M

8

ATAAA=USVTURN×NSRN×MVRM×MATA

ATA=(USVT)TUSVT=VSTUTUSVT=VSTSVT

UUTU=ISATAVS2VTS2STSScond(A)=s1sNARN×M

cond(ATA)=s12sM2=(s1sM)2=cond(A)2

AAT

AAT=USVT(USVT)T=USVTVSTUT=US2UT

cond(AAT)=s12sN2S2SST

ATAAATAATATA

ATAAAT


AAAA

Me alegro de que tuviera sentido. En general, debe considerar el condicionamiento del problema. Pero, si eso no es un problema, puede usar ecuaciones normales / factorización QR (de A) / LSQR, dependiendo del tamaño del problema (entre otras cosas). A menos que su problema sea grande o esté mal condicionado, probablemente aplicaría la factorización QR, pero sin más conocimiento del problema que está tratando de resolver, es difícil saberlo. Estoy seguro de que otras personas con más experiencia podrían proporcionar consejos más detallados.
OscarB

107cond(A)<cond(AAT)<cond(ATA)N<M), parece preferible utilizar LSQR, ya que no es necesario que forme ningún producto. La pregunta es si las soluciones obtenidas con ecuaciones normales y LSQR son idénticas.
Alexander

Bueno, según tengo entendido, LSQR proporcionará una solución idéntica a las ecuaciones normales después de "infinitas" iteraciones con precisión exacta. Sin embargo, para problemas mal planteados, la solución de ecuaciones normales no es la que desea. En su lugar, desea utilizar LSQR para iterar hasta que se logre la semiconvergencia. Sin embargo, controlar algoritmos iterativos en problemas mal planteados es un juego de pelota completamente diferente. Además, dependiendo del costo de su producto matriz-vector y el número de iteraciones (y, por lo tanto, matvecs) necesarias, una solución directa de tikhonov con bidiagonalización podría ser mejor.
OscarB

Impresionante explicación. +1 para usted señor!
meawoppl

2

condA2condATA

A=(ϵ10ϵ),ϵ1

para lo cual puede verificar fácilmente que mientras que .cond A 2 = O ( ϵ - 2 )condATA=O(ϵ4)condA2=O(ϵ2)


Bien, para enfatizar que y son en general muy diferentes en cuanto a eigs, svds, cond number: pero en mi opinión, la afirmación de la pregunta es sobre . A T A [ c o n d ( A ) ] 2A2ATA[cond(A)]2
Stefano M

@StefanoM Gracias, parece que leí mal, aunque de la discusión, no fue el único.
Jed Brown

1

En aritmética exacta cond (A ^ 2) = cond (A'A) = cond (AA '), ver por ejemplo. Golub y van Loan, 3a ed., P70. Esto no es cierto en la aritmética de coma flotante si A es casi deficiente en rango. El mejor consejo es seguir las recetas de libros anteriores al resolver problemas de mínimos cuadrados, siendo el enfoque SVD más seguro, p257. Use \ varepsilon-rank en su lugar cuando calcule SVD, donde \ varepsilon es la resolución de sus datos de matriz.


Lo siento, miré a Golub y Van Loan 3rd ed p. 70, y no pude encontrar nada que respalde la declaración cond (A ^ 2) = cond (A ^ TA) = cond (AA ^ T). ¿Podría ser más específico con su referencia?
OscarB

No hay ninguna declaración allí, pero puede derivar del teorema 2.5.2 y el pseudoinverso, sección 5.5.4, que cond (AA ') = cond (A'A). La razón por la que tomo pseudoinverso es que esto es lo que importa para el problema de mínimos cuadrados en la mano. La igualdad después de cond (A ^ 2) debería ser \ aprox, perdón por el error tipográfico.
Artan

No, esta respuesta es totalmente incorrecta. Ver mi contraejemplo.
Jed Brown

Saad debe haber hecho tal punto en algún contexto específico. Lo relevante para la pregunta en cuestión es el argumento del procedimiento.
Artan
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.