Número de condição das formulações A'A e AA '
É mostrado (Yousef Saad, métodos iterativos para sistemas lineares esparsos , p. 260) que c o n d( A′Um ) ≈ c o n d( A )2cond(A′A)≈cond(A)2
No caso de ser com , observo queUMAAN× MN×MN≪ MN≪Mc o n d( A′Um ) » c o n d( A A′)cond(A′A)≫cond(AA′)
Isso significa que a formulação em termos de é preferível neste caso?A A′AA′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 ( σ 2UMAANNMMσEuσEui = 1 ... Ni=1…NUMAASST=diag(σ21,…,σ2n)SST=diag⁡(σ12,…,σn2)comM-Nzeros à direita. STS=diag(σ21,…,σ2n,0,…,0)STS=diag⁡(σ12,…,σn2,0,…,0)M−NM−N
— 276 Stefano M
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 comoATAATAAAA=USVTA=USVTU∈RN×NU∈RN×NS∈RN×MS∈RN×MV∈RM×MV∈RM×MATAATA
ATA=(USVT)TUSVT=VSTUTUSVT=VSTSVTATA=(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 (UUUTU=IUTU=ISSATAATAVS2VTVS2VTS2S2STSSTSSS paraA∈RN×M, cond(A)=s1sNcond(A)=s1sNA∈RN×MA∈RN×M
cond(ATA)=s21s2M=(s1sM)2=cond(A)2cond(ATA)=s12sM2=(s1sM)2=cond(A)2
Agora, podemos realizar o mesmo exercício com :AATAAT
AAT=USVT(USVT)T=USVTVSTUT=US2UTAAT=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)=s21s2Ncond(AAT)=s12sN2S2S2SSTSST
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 .ATAATAAATAATAATAATATAATA
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 .ATAATAAATAAT
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. AA′AA′
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.
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 < M≈107≈107cond(A)<cond(AAT)<cond(ATA)cond(A)<cond(AAT)<cond(ATA)N<MN<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?
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.
Explicação impressionante. +1 para você, senhor!
A afirmação que (para matrizes quadradas) na pergunta e [Edit: eu interpretei errado] na resposta de Artan é um absurdo. Contra-exemplocondA2≈condATAcond⁡A2≈cond⁡ATA
A=(ϵ01ϵ),ϵ≪1A=(ϵ10ϵ),ϵ≪1
para o qual você pode facilmente verificar que enquanto cond A 2 = O ( ϵ - 2 ) .condATA=O(ϵ−4)cond⁡ATA=O(ϵ−4)condA2=O(ϵ−2)cond⁡A2=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 . A2A2ATAATA[cond(A)]2[cond(A)]2
— 24512 Stefano M
@StefanoM Obrigado, parece que eu li errado, embora a partir da discussão, não fosse o único.
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?
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.
Não, esta resposta está totalmente incorreta. Veja meu contra-exemplo.
Saad deve ter afirmado isso em algum contexto específico. O que é relevante para a questão em questão é o argumento do processo.