작은 순위 대각선 업데이트로 시스템 해결


9

원래 큰 희소 선형 시스템 이 있다고 가정 합니다. 이제 A가 너무 커서 를 분해하거나 분해 할 수 없기 때문에 이 없지만 반복적 인 해법으로 찾은 솔루션이 있다고 가정합니다 .Ax0=b0A1Ax0

이제 A의 대각선에 작은 순위 업데이트를 적용하고 싶습니다 (대각선 항목 중 일부 변경) : 여기서 는 다음과 같은 대각선 행렬입니다. 대부분 대각선에 0이고 0이 아닌 값이 있습니다. 내가 가진 경우 나는 역에 업데이트를 적용하기 위해 우드 베리 공식을 활용할 수있을 것입니다. 그러나 나는 이것을 사용할 수 없습니다. 전체 시스템을 다시 한 번 해결하는 것 외에는 할 수있는 일이 있습니까? 과 같이 쉽게 수 있는 전제 조건 을 생각 수있는 방법이 있습니까? 그래서 이 적용되는 경우해야 할 모든 것은(A+D)x1=b0DA1MMA1A0x0M1 그리고 반복적 인 방법은 몇 / 몇 번의 반복으로 수렴합니까?


대한 좋은 전제 조건으로 시작하고 업데이트하는 방법을 알고 싶습니까? 업데이트 순위는 무엇입니까? ( 등급 업데이트는 크기가 매트릭스와 비교하여 "작은" 이지만 반복 횟수는 작지 않습니다.)A1000109
Jed Brown

A 는 크기가 ~ 이고 업데이트는 <1000 (아마도 <100) 요소입니다. 정말 잘 작동하는 대각선 유형의 전제 조건을 사용하고 있기 때문에 업데이트가 쉽지는 않지만 새로운 시스템을 처음부터 해결하는 것보다 더 좋은 방법이 있는지 궁금합니다. 106107
Costis 2016 년

2
한 시스템의 솔루션은 그것에 대해 많은 것을 말하지 않습니다. 동일한 시스템을 여러 번 푸는 경우 해당 벡터 (및 / 또는 관련 Krylov 공간)의 역 맵은 수렴을 가속화하는 데 사용할 수있는 정보를 제공합니다. 각 경우에 몇 개의 시스템을 해결하고 있습니까?
Jed Brown

현재 내가 하나 우 (대한 해결하고 각 벡터) 수정하기 전에 매트릭스 . bAA
Costis

답변:


4
  1. 이전 반복에서 행렬을 적용한 모든 벡터 및 결과 의 두 행렬 와 의 열에 저장합니다 .BCbjcj=Abj

  2. 각각의 새로운 시스템 (또는 특수한 경우 )에 대해 과소 결정된 선형 시스템 대략적으로 해결하십시오 . 행의 하위 집합 (아마도 모두)을 선택하고 밀도가 가장 작은 제곱 방법을 사용합니다. 에서 선택한 부분 만 조립하면됩니다. 그래서 이것은 빠른 조작입니다!(A+D)x=bAx=bD=0(C+DB)ybC+DB

  3. 넣어 . 이것은 를 풀기위한 반복을 시작하기에 좋은 초기 근사치입니다 . 추가 시스템을 처리해야하는 경우이 새로운 반복에서 행렬 벡터 곱을 사용 하여 결과 하위 시스템에서 행렬 와 를 확장하십시오 .x0=By(A+D)x=bBC

행렬 와 가 기본 메모리에 맞지 않으면 를 디스크에 저장 하고 미리 행의 하위 집합을 선택하십시오. 이를 통해 최소 제곱 시스템을 형성하는 데 필요한 및 의 관련 부분을 핵심으로 유지할 수 있으며 다음 은 코어 메모리를 거의 사용하지 않고 를 한 번 통과하여 계산할 수 있습니다 .BCBBCx0B

행은 전체 문제의 대략적인 이산화에 해당하는 방식으로 선택해야합니다. 총 예상 행렬 벡터 곱셈 수보다 5 배 많은 행을 취하는 것으로 충분합니다.

편집 : 왜 작동합니까? 구성에 의해, 행렬 및 는 의해 관련된다 . 의 열에 걸쳐있는 부분 공간 에 정확한 솔루션 벡터 (드물지만 간단한 상황)가 포함 된 경우 는 일부 대해 형식 입니다. 이것을 정의하는 방정식으로 대체 하면 방정식 됩니다. 따라서이 경우 위의 프로세스는 정확한 해결책 인 시작점 .BCC=ABBxxx=Byyx(C+DB)y=bx0=By=x

일반적으로 가 의 열 공간에 있을 것으로 예상 할 수는 없지만 , 생성 된 시작 지점 은 선택된 행에 의해 결정된 메트릭에서 가장 가까운이 Cloumn 공간의 지점이 됩니다. 따라서 합리적인 근사치 일 가능성이 높습니다. 더 많은 시스템이 처리됨에 따라 열 공간이 커지고 근사값이 크게 향상 될 것이므로 반복 횟수가 줄어들고 수렴 될 수 있습니다.xBx

Edit2 : 생성 된 부분 공간 정보 : Krylov 방법으로 각 시스템을 풀면 두 번째 시스템의 시작점을 얻는 데 사용 된 벡터는 첫 번째 오른쪽의 Krylov 부분 공간에 걸쳐 있습니다. 따라서이 Krylov 하위 공간에 두 번째 시스템의 솔루션에 가까운 벡터가 포함되어있을 때마다 근사값을 얻습니다. 일반적으로 st 시스템 의 시작점을 얻는 데 사용되는 벡터 는 첫 번째 오른쪽 의 Krylov 부분 공간을 포함하는 공간에 걸쳐 있습니다.(k+1)k


고마워, 뉴 마이어 교수 나는 이것을 시도 할 것이다. 이것이 어떻게 작동하는지에 대해 간단히 설명해 주시겠습니까?
Costis

또한 여러 다른 RHS 벡터에 대해 동일한 시스템을 해결하려면 어떻게해야합니까? 예 : , , 등 이전 정보에서 사용할 수있는 정보가 후속 정보의 속도를 높이는 데 도움이됩니까? Ax0=b0Ax1=b1Ax2=b2
Costis

@Costis : 동일한 행렬로 해결하는 것은 일반적인 문제 의 특별한 경우 입니다. 첫 번째 질문은 편집을 참조하십시오. D=0
Arnold Neumaier 2018 년

@Costis : 2 단계에 좀 더 자세한 내용을 추가했습니다.-신청서를 작성하는 경우 양식을 보내주십시오.
Arnold Neumaier 2014 년

설명 주셔서 감사합니다! QR 인수 분해 기반 접근 방식을 사용하고 하위 집합 대신 모든 행을 사용하여 과도하게 결정된 시스템 를 해결할 수없는 이유는 무엇 입니까? C와 B의 열 수가 증가함에 따라 작업을 더 빨리 실행하기 위해 일부 행을 제거해야 할 수도 있습니다. 물론 시스템에 대한 설명을 작성하여 이메일로 보내 드리겠습니다. 실제로 가장 일반적인 경우보다 더 잘 작동하는 응용 프로그램 별 체계를 생각해 낼 수 있다고 생각합니다. 감사! (C+DB)yb
Costis
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.