이전 반복에서 행렬을 적용한 모든 벡터 및 결과 의 두 행렬 와 의 열에 저장합니다 .BCbjcj=Abj
각각의 새로운 시스템 (또는 특수한 경우 )에 대해 과소 결정된 선형 시스템 대략적으로 해결하십시오 . 행의 하위 집합 (아마도 모두)을 선택하고 밀도가 가장 작은 제곱 방법을 사용합니다. 에서 선택한 부분 만 조립하면됩니다. 그래서 이것은 빠른 조작입니다!(A+D)x′=b′Ax=b′D=0(C+DB)y≈b′C+DB
넣어 . 이것은 를 풀기위한 반복을 시작하기에 좋은 초기 근사치입니다 . 추가 시스템을 처리해야하는 경우이 새로운 반복에서 행렬 벡터 곱을 사용 하여 결과 하위 시스템에서 행렬 와 를 확장하십시오 .x0=By(A+D)x′=b′BC
행렬 와 가 기본 메모리에 맞지 않으면 를 디스크에 저장 하고 미리 행의 하위 집합을 선택하십시오. 이를 통해 최소 제곱 시스템을 형성하는 데 필요한 및 의 관련 부분을 핵심으로 유지할 수 있으며 다음 은 코어 메모리를 거의 사용하지 않고 를 한 번 통과하여 계산할 수 있습니다 .BCBBCx0B
행은 전체 문제의 대략적인 이산화에 해당하는 방식으로 선택해야합니다. 총 예상 행렬 벡터 곱셈 수보다 5 배 많은 행을 취하는 것으로 충분합니다.
편집 : 왜 작동합니까? 구성에 의해, 행렬 및 는 의해 관련된다 . 의 열에 걸쳐있는 부분 공간 에 정확한 솔루션 벡터 (드물지만 간단한 상황)가 포함 된 경우 는 일부 대해 형식 입니다. 이것을 정의하는 방정식으로 대체 하면 방정식 됩니다. 따라서이 경우 위의 프로세스는 정확한 해결책 인 시작점 .BCC=ABBx′x′x′=Byyx′(C+DB)y=b′x0=By=x′
일반적으로 가 의 열 공간에 있을 것으로 예상 할 수는 없지만 , 생성 된 시작 지점 은 선택된 행에 의해 결정된 메트릭에서 가장 가까운이 Cloumn 공간의 지점이 됩니다. 따라서 합리적인 근사치 일 가능성이 높습니다. 더 많은 시스템이 처리됨에 따라 열 공간이 커지고 근사값이 크게 향상 될 것이므로 반복 횟수가 줄어들고 수렴 될 수 있습니다.x′Bx′
Edit2 : 생성 된 부분 공간 정보 : Krylov 방법으로 각 시스템을 풀면 두 번째 시스템의 시작점을 얻는 데 사용 된 벡터는 첫 번째 오른쪽의 Krylov 부분 공간에 걸쳐 있습니다. 따라서이 Krylov 하위 공간에 두 번째 시스템의 솔루션에 가까운 벡터가 포함되어있을 때마다 근사값을 얻습니다. 일반적으로 st 시스템 의 시작점을 얻는 데 사용되는 벡터 는 첫 번째 오른쪽 의 Krylov 부분 공간을 포함하는 공간에 걸쳐 있습니다.(k+1)k