Número de condição das formulações A'A e AA '


9

É mostrado (Yousef Saad, métodos iterativos para sistemas lineares esparsos , p. 260) que cond(AA)cond(A)2

Isso também é verdade para ?AA

No caso de ser com , observo queAN×MNMcond(AA)cond(AA)

Isso significa que a formulação em termos de é preferível neste caso?AA


2
Você está comparando números de condição de duas matrizes com tamanhos muito diferentes. Sem uma explicação do porquê, parece que essa comparação provavelmente não é significativa. Certamente, se você pode conseguir o que precisa usando uma matriz muito menor, deve fazê-lo (mesmo que o condicionamento seja semelhante).
precisa saber é o seguinte

11
A nova resposta de Stefano M abaixo está correta. Por favor, leia e vote.
David Ketcheson

Respostas:


6

Se com N < M , então r a n k ( A T A ) = r a n k ( A A T ) = r a n k ( A ) N < M, de modo que A T A R M × M não pode ser posto completo, ie é singular.ARN×MN<M

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

Consequentemente, o número da condição é . Devido à aritmética de precisão finita, se você computa no matlab, obtém um grande número, não .κ2(ATA)=cond(A'A)Inf


@OscarB: os valores singulares de são apenas N , não existe o valor M de singular! Sua derivação está correta, mas observe que se σ i , i = 1 N são os sv's de A , então S S T = d i a g ( σ 2 1 , , σ 2 n ) , enquanto S T S = d i a g ( σ 2ANMσEui=1NASST=diag(σ12,,σn2)comM-Nzeros à direita. STS=diag(σ12,,σn2,0,,0)MN
276 Stefano M

8

Bem, Vamos olhar por tem aproximadamente o número de condição quadrado de A . Usando a decomposição SVD de A = U S V T , com U R N × N , S R N × M , V R M × M , podemos expressar A T A comoATAAA=USVTURN×NSRN×MVRM×MATA

ATA=(USVT)TUSVT=VSTUTUSVT=VSTSVT

Que chegamos ao notar que é orthonormal, tal que U T U = I . Além disso, observamos que S é uma matriz diagonal, de modo que a decomposição final de A T A pode ser expressa como V S 2 V T , com S 2 significando S T S , produzindo uma matriz diagonal com os primeiros N valores singulares de S ao quadrado na diagonal. Isto significa que uma vez que o número de condição é a razão entre o primeiro e o último valor singular, c o n d (UUTU=ISATAVS2VTS2STSS paraARN×M, cond(A)=s1sNARN×M

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

Agora, podemos realizar o mesmo exercício com :AAT

AAT=USVT(USVT)T=USVTVSTUT=US2UT

O que significa que obtemos o resultado , uma vez queS2aqui significaSST, uma diferença subtil da notação acima.cond(AAT)=s12sN2S2SST

Mas observe essa diferença sutil! Para , o número da condição possui o M-ésimo valor singular no denominador, enquanto A A T tem o N-ésimo valor singular. Isso explica por que você está vendo diferenças significativas no número de condição - A A T vai realmente ser “melhor condicionado” de A T A .ATAAATAATATA

Ainda assim, David Ketcheson estava correto - você está comparando números de condição entre duas matrizes muito diferentes. Em particular, o que você pode realizar com não será o mesmo que o que você pode realizar com A A T .ATAAAT


Essa é uma ótima explicação! Eu vejo a diferença claramente agora. Matriz A é usado para construir equações normais e com ligeiras alterações, você também pode formulá-la como , não clássica A ' A . Você pode dizer também se é vantajoso usar o solucionador como LSQR em vez de resolver equações normais? Como o LSQR não requer a construção deste produto. AAAA
Alexander

Ainda bem que fazia sentido. Em geral, você precisa considerar o condicionamento do problema. Mas, se isso não for um problema, você poderá usar as equações normais / fatoração QR (de A) / LSQR, dependendo do tamanho do problema (entre outras coisas). A menos que seu problema seja grande ou mal condicionado, provavelmente aplicaria a fatoração QR, mas sem mais conhecimento do problema que você está tentando resolver, é difícil dizer. Estou certo de que outras pessoas com mais experiência poderiam fornecer conselhos mais detalhados.
OscarB

O A em si está mal condicionado (com número de condição de ), denso e grande. QR não é uma opção. Como está mal condicionado, tenho que adicionar alguma regularização de qualquer maneira. Agora, a simples regularização de Tikhonov parece ser suficiente. A questão é que se c o n d ( A ) < c o n d ( A Um T ) < c o n d ( A T A ) (para o meu caso com N < M107cond(A)<cond(AAT)<cond(ATA)N<M), o uso do LSQR parece sempre preferível, pois você não precisa formar nenhum produto. A questão é se as soluções obtidas com equações normais e LSQR são idênticas?
Alexander

Bem, pelo que entendi, o LSQR fornecerá uma solução idêntica às equações normais após "infinitamente muitas" iterações com precisão exata. No entanto, para problemas incorretos, a solução de equações normais não é a que você deseja. Em vez disso, você deseja usar o LSQR para iterar até que a semi convergência seja alcançada. No entanto, controlar algoritmos iterativos em problemas incorretos é outro jogo de bola. Além disso, dependendo do custo do seu produto vetor de matriz e do número de iterações (e, portanto, do matvecs) necessárias, uma solução tikhonov direta com bidiagonalização pode ser melhor.
OscarB

Explicação impressionante. +1 para você, senhor!
precisa saber é

2

A afirmação que (para matrizes quadradas) na pergunta e [Edit: eu interpretei errado] na resposta de Artan é um absurdo. Contra-exemplocondA2condATA

A=(ϵ10ϵ),ϵ1

para o qual você pode facilmente verificar que enquanto cond A 2 = O ( ϵ - 2 ) .condATA=O(ϵ4)condA2=O(ϵ2)


Ok ressaltar que e A T A são, em geral, muito diferente como o que diz respeito eigs, SVD, número cond: mas na minha opinião a alegação da pergunta é sobre [ c o n d ( A ) ] 2 . A2ATA[cond(A)]2
24512 Stefano M

@StefanoM Obrigado, parece que eu li errado, embora a partir da discussão, não fosse o único.
Jed Brown

1

Em condições aritméticas exatas (A ^ 2) = cond (A'A) = cond (AA '), ver p. Golub e van Loan, 3ª ed., P. Isso não é verdade na aritmética de ponto flutuante se A for quase deficiente na classificação. O melhor conselho é seguir as receitas do livro acima ao resolver problemas com mínimos quadrados, sendo a abordagem mais segura a SVD, p257. Use \ varepsilon-rank ao calcular SVD, onde \ varepsilon é a resolução dos dados da matriz.


Sinto muito, olhei para Golub e Van Loan, 3ª ed p. 70, e não conseguiu encontrar nada que faça backup da instrução cond (A ^ 2) = cond (A ^ TA) = cond (AA ^ T). Você poderia ser mais específico com sua referência?
OscarB

Não há nenhuma declaração lá, mas você pode derivar do teorema 2.5.2 e do pseudo-inverso, seção 5.5.4 que cond (AA ') = cond (A'A). A razão pela qual considero pseudo-inverso é que é isso que importa para o problema dos mínimos quadrados em questão. A igualdade após cond (A ^ 2) deve ser \ aproximadamente, desculpe pelo erro de digitação.
Artan

Não, esta resposta está totalmente incorreta. Veja meu contra-exemplo.
precisa

Saad deve ter afirmado isso em algum contexto específico. O que é relevante para a questão em questão é o argumento do processo.
25412 Artan
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.