직사각형 밀도 매트릭스의 널 공간


16

조밀 한 매트릭스 주어 R m × N , m > > N ; m X ( m ) 100000 일부 허용 오차 내에서 널 공간으로 찾을 수있는 가장 좋은 방법이 무엇인지 ε은 ?

ARm×n,m>>n;max(m)100000
ϵ

그런 근거를 바탕으로 특정 열이 내에 선형 적으로 의존한다고 말할 수 ϵ있습니까? 다시 말해, 널 공간 기반을 계산 한 후 비단 수 행렬을 얻으려면 열을 A제거해야합니까?

참조가 감사합니다.

답변:


12

행렬의 널 공간을 결정하는 표준 방법은 QR 분해 또는 SVD를 사용하는 것입니다. 정확성이 가장 중요한 경우 SVD가 선호됩니다. QR 분해가 더 빠릅니다.

SVD를 사용하여 인 경우 작은 특이 값 (즉, Σ의 작은 대각선 항목)에 해당하는 V의 열은 널 공간의 기초를 구성합니다. 여기서 관련된 허용 오차는 "작은"특이 값을 고려하는 것입니다. 예를 들어 MATLAB은 작을 때 최대 ( m , n ) ε 이됩니다.A=UΣVHVΣmax(m,n)ε 은 기계 정확도와 관련이 있습니다 (여기서는 MATLAB 문서 참조).ε

QR 분해를 사용하여 이고 A 의 순위 가 r 이면 QR 분해가 순위를 표시한다고 가정 할 때 Q 의 마지막 n - r 열 은 A 의 영 공간을 구성합니다 . r 을 결정하려면 크기가 허용 오차를 초과하는 R 의 주 대각선에있는 엔트리 수를 계산하십시오 (SVD 접근법에서 사용 된 것과 유사).AT=QRArnrQArR

LU 분해를 사용하지 마십시오. 정확한 산술에서는 실행 가능한 방법이지만 부동 소수점 산술을 사용하면 수치 오류가 누적되어 부정확합니다.

Wikipedia는 여기 에서이 주제를 다룹니다 .


QR과 관련하여 이야기하는 Geoff는 분해가 있다고 가정하고 원래 행렬의 null 공간 기준과 열을 어떻게 관련시킬 수 있습니까? 즉, null 공백을 제거하기 위해 에서 어떤 열을 제거해야 합니까? 여기서 요점 은 분해가 아닌 A 자체와 함께 작동 하는 것입니다. AA
Alexander

QR 분해를 계산하는 루틴에는 일반적으로 QR 인수 분해를 얻기 위해 열이 순열되는 방법을 나타내는 순열 벡터를 반환하는 옵션이 포함됩니다. 해당 순열 벡터 의 마지막 항목은 영 공간에있는 A 의 행 ( A T 열 )에 해당합니다. 해당 벡터 의 첫 번째 r 항목 은 선형 독립적 인 A T 의 열에 해당합니다 . "널 공간을 제거하십시오"라는 말의 의미를 잘 모르겠습니다. 비단 수 행렬을 얻기 위해 A의 열을 제거 하시겠습니까? nrAATrATA
Geoff Oxberry 2016 년

그렇습니다. 순열을 살펴 보겠습니다. 감사합니다.
Alexander

그것은 다른 질문입니다. 그런 다음 대신 의 QR 분해 (또는 SVD)를 계산하십시오 . A 의 QR 분해를 계산하면 위의 답변에서와 같이 A 의 순위를 계산할 수 있으며 (행렬을 바꿀 필요가 없음 ) 순열 벡터 의 첫 번째 r 항목 (여기서 rA 의 순위 임 ) A 의 독립 열에 . SVD에도 같은 종류의 알고리즘이 적용됩니다. 분해와 함께 순열 벡터를 반환 할 수 있으면 필요한 정보를 제공해야합니다. AAArrAA
Geoff Oxberry 2016 년

8

경우 귀하의 질문에 나타난 바와 같이, 먼저 인덱스를 선택하여 몇 가지 작업을 저장할 수 있습니다 설정 I을페이지 5 N (말) 임의의 행과 직교 인수 분해하여 T I : = Q R을 . 합니다 (QR 인수 분해는 하나 Q가 sqare의이고, R은 랭크의 장방형 (R) , 나머지 N - R 용 의 열 R은 제로인 안정성을 향상시키는 순열 QR 인수 분해를 사용하여 상기 전치는 다음에서 고려되어야한다. 더 자세한 레시피.)mnIp5nAI:T=QRQRrnrR

일반적으로 이것은 Q 의 마지막 n - r 열인 의 열에 의해 훨씬 더 낮은 차원의 부분 공간을 제공합니다 . 이 부분 공간은 A 의 널 공간을 포함합니다 . 이제 다른 분리 된 랜덤 인덱스 세트를 선택하고 ( A I : N ) T 의 QR 인수 분해를 계산하십시오 . 왼쪽의 결과 Null 공간에 N 을 곱하여 더 작은 차원의 N 을 향상시킵니다 . N 의 차원이 더 이상 줄어들지 않을 때까지 반복하십시오 . 그런 다음 아마도 올바른 null 공간이 있고 A N 을 계산하여 확인할 수 있습니다NnrQA(AI:N)TNNNAN. 아직 무시할 수없는 경우 가장 중요한 행을 추가로 반복하십시오.

편집 : 이 있으면 피벗을 사용하여 N T = Q R 의 직교 인수 분해를 통해 A 의 선형 독립 열의 최대 세트 J 를 찾을 수 있습니다 . 실제로 피벗으로 선택되지 않은 인덱스 집합 J 에는이 속성이 있습니다.NJANT=QRJ


큰 행렬의 영 공간을 결정하는 효율적인 방법은 +1입니다. 이 답변은 나중에 필요할 때 상담해야합니다.
Geoff Oxberry 2016 년

실제로, 그것은 합리적인 것처럼 들리지만 내 행렬은 16GB의 RAM에 적합하므로 표준 matlab qr을 유지합니다.
Alexander

Neumaier 교수는이 알고리즘을 테스트하기로 결정했지만 무엇이고 " ( A I : N ) T 의 QR 분해 계산"이 무엇을 의미하는지 정확히 이해하지 못 합니까? 좀 더 설명해 주시겠습니까? N(AI:N)T
Alexander

내 답변을 약간 편집했습니다. 은 Geoff Oxberry의 레시피로 계산됩니다. N
Arnold Neumaier 2016 년

감사합니다. 나는 그것을 구현했다. 그러나, 지금까지의 내가 볼,이 알고리즘은 나에게의 선형 독립적 인 열 집합을 정의 할 수 없습니다 (우리가 분해하기 때문에 T I : 보다는 I을 : )하지만, 단지 nullspace 기준 자체 추정하는 데 도움이? AAI:TAI:
Alexander
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.