A'A 및 AA '제제의 조건 수


9

(Yousef Saad, 스파 스 선형 시스템에 대한 반복 방법 , p. 260)이 나와 있습니다.cond(A′A)≈cond(A)2

이 마찬가지입니다 뿐만 아니라?AA′

케이스에 인 와 , 그 관찰AN×MN≪Mcond(A′A)≫cond(AA′)

이것이 관점에서 제형 이 바람직 하다는 것을 의미 하는가?AA′


2
크기가 매우 다른 두 행렬의 조건 수를 비교하고 있습니다. 이유에 대한 설명이 없으면 비교가 의미가없는 것 같습니다. 훨씬 더 작은 매트릭스를 사용하여 필요한 것을 달성 할 수 있다면 (컨디셔닝이 비슷하더라도)해야합니다.
— David Ketcheson

1
아래 Stefano M의 새로운 답변이 맞습니다. 그것을 읽고 투표하십시오.
— David Ketcheson

답변:


6

만약 함께 후 이므로 은 전체 순위가 될 수 없습니다 . 즉, 단수입니다.A∈RN×MN<M

rank⁡(ATA)=rank⁡(AAT)=rank⁡(A)≤N<M
ATA∈RM×M

따라서 조건 번호는 입니다. 유한 정밀도 산술로 인해 matlab에서 계산 하면 큰 숫자가 아닙니다 .κ2(ATA)=∞cond(A'A)Inf


@OscarB : 의 특이 값 은 단지 이고 번째 특이 값 과 같은 것은 없습니다 ! 도출은 정확하지만 , 이 의 sv 인 경우 반면, 과 후행 0. ANMσii=1…NASST=diag⁡(σ12,…,σn2)STS=diag⁡(σ12,…,σn2,0,…,0)M−N
— Stefano M

8

글쎄, 왜 보자 ATA 대략 제곱 된 조건 번호가 A. SVD 분해 사용A=USVT와 U∈RN×N, S∈RN×M, V∈RM×M, 우리는 표현할 수 있습니다 ATA 같이

ATA=(USVT)TUSVT=VSTUTUSVT=VSTSVT

우리는 그것을 주목함으로써 도착 U 직각이 정상이므로 UTU=I. 또한 우리는S 대각 행렬이므로 최종 분해 ATA 로 표현 될 수있다 VS2VT와 S2 의미 STS에서 첫 번째 N 특이 값을 갖는 대각 행렬을 생성합니다. S대각선으로 제곱합니다. 이는 조건 번호가 첫 번째와 마지막 특이 값의 비율이므로cond(A)=s1sN ...에 대한 A∈RN×M,

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

이제 우리는 같은 운동을 할 수 있습니다 AAT:

AAT=USVT(USVT)T=USVTVSTUT=US2UT

결과가 나옵니다 cond(AAT)=s12sN2, 이후 S2 여기 의미 SST위의 표기법과 미묘한 차이가 있습니다.

그러나 그 미묘한 차이에 주목하십시오! 에 대한ATA조건 번호는 분모에서 M 번째로 특이 값을 갖지만 AATn 번째 특이 값을가집니다. 조건 번호에 큰 차이가있는 이유를 설명합니다.AAT 실제로보다 더 나은 조건이 될 것입니다 ATA.

그러나 David Ketcheson은 정확했습니다. 두 개의 서로 다른 행렬 사이의 조건 수를 비교하고 있습니다. 특히, 당신이 달성 할 수있는 것ATA 당신이 달성 할 수있는 것과 같지 않을 것입니다 AAT.


좋은 설명입니다! 나는 지금 그 차이를 분명히 본다. 행렬 A는 정규 방정식을 만드는 데 사용되며 약간의 변경으로 다음과 같이 공식화 할 수도 있습니다.AA′고전이 아닌 A′A. 정규 방정식을 푸는 대신 LSQR과 같은 솔버를 사용하는 것이 유리한지 알 수 있습니까? LSQR은이 제품을 전혀 구축 할 필요가 없기 때문입니다.
— Alexander

이해가되어 기쁘다. 일반적으로 문제의 컨디셔닝을 고려해야합니다. 그러나 이것이 문제가되지 않는다면, 문제의 크기 (다른 것들 중에서)에 따라 정규 방정식 / QR- 인수 분해 (A) / LSQR을 사용할 수 있습니다. 귀하의 문제가 크거나 조건이 좋지 않은 한, 아마도 QR- 인수 분해를 적용 할 것입니다, 그러나 당신이 해결하려는 문제에 대한 더 많은 지식이 없다면, 말하기 어렵습니다. 더 많은 경험을 가진 사람들이 더 자세한 조언을 제공 할 수 있다고 확신합니다.
— OscarB

A 자체는 상태가 좋지 않습니다 (조건 번호가 ≈107), 밀도가 높고 큽니다. QR은 옵션이 아닙니다. 조건이 좋지 않기 때문에 어쨌든 정규화를 추가해야합니다. 이제 간단한 Tikhonov 정규화로 충분합니다. 요점은cond(A)<cond(AAT)<cond(ATA) (내 경우에는 N<M) 그런 다음 LSQR을 사용하는 것은 제품을 전혀 형성 할 필요가 없으므로 항상 선호되는 것 같습니다. 문제는 정규 방정식과 LSQR로 얻은 솔루션이 동일한 지 여부입니다.
— Alexander

글쎄, LSQR은 "정확히 많은 수의"반복을 반복 한 후에 일반 방정식에 대해 동일한 솔루션을 제공 할 것입니다. 그러나 잘못된 문제의 경우 정규 방정식 솔루션이 원하는 솔루션이 아닙니다. 대신 LSQR을 사용하여 반 수렴에 도달 할 때까지 반복하려고합니다. 그러나 잘못된 문제에서 반복 알고리즘을 제어하는 ​​것은 다른 볼 게임입니다. 또한 행렬-벡터 제품의 비용과 필요한 반복 횟수 (따라서 matvec)에 따라 2 각형 화를 사용하는 직접 tikhonov 솔루션이 더 나을 수 있습니다.
— OscarB

멋진 설명입니다. 선생님 +1
— meawoppl

2

그 주장 cond⁡A2≈cond⁡ATA질문에 (제곱 행렬의 경우) 및 Artan의 답변에서 [편집 : 잘못 읽음]은 의미가 없습니다. 반례

A=(ϵ10ϵ),ϵ≪1

이를 쉽게 확인할 수 있습니다 cond⁡ATA=O(ϵ−4) 동안 cond⁡A2=O(ϵ−2).


그것을 강조하기 위해 좋아 A2 과 ATA eigs, svds, cond number와 관련하여 일반적으로 매우 유사하지 않습니다. 그러나 내 의견으로는 질문의 주장은 [cond(A)]2.
— Stefano M

@StefanoM 고마워, 토론에서 오해는 없었지만, 유일한 것은 아닙니다.
— 제드 브라운

1

정확한 산술 cond (A ^ 2) = cond (A'A) = cond (AA '), 예를 들어 참조하십시오. Golub and Van Loan, 3 판, p70. A의 순위가 거의없는 경우 부동 소수점 산술에서는 그렇지 않습니다. 가장 좋은 방법은 최소 제곱 문제를 해결할 때 위의 책 레시피를 따르는 것입니다. 가장 안전한 것은 SVD 접근법입니다 (p257). SVD를 계산할 때 \ varepsilon-rank를 대신 사용하십시오. 여기서 \ varepsilon은 행렬 데이터의 해상도입니다.


죄송합니다. Golub과 Van Loan 3rd ed p를 보았습니다. 70, cond (A ^ 2) = cond (A ^ TA) = cond (AA ^ T) 문을 백업하는 항목을 찾을 수 없습니다. 좀 더 구체적으로 설명해 주시겠습니까?
— OscarB

거기에는 진술이 없지만, 정리 2.5.2와 의사 역, 섹션 5.5.4 (cond (AA ') = cond (A'A))에서 파생 될 수 있습니다. 내가 의사 역수를 취하는 이유는 이것이 가장 작은 제곱 문제에 중요하기 때문입니다. cond (A ^ 2) 후의 등식은 \ approx 여야합니다. 오타가 유감입니다.
— Artan

아니요,이 답변은 완전히 틀립니다. 내 반례를 참조하십시오.
— 제드 브라운

Saad는 특정 상황을 지적해야합니다. 당면한 문제와 관련이있는 것은 진행중인 논쟁입니다.
— Artan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.