거대한 고밀도 선형 시스템을 해결 하시겠습니까?


11

반복적 인 방법으로 다음 선형 시스템을 효율적으로 해결하려는 희망이 있습니까?

ARn×n,xRn,bRn, with n>106

Ax=b

Δ 6 6 1A=(ΔK) 여기서 는 라플라스 연산자의 이산화로 인해 몇 개의 대각선이있는 매우 희소 행렬입니다. 그것의 주 대각선있다 하고있다 와 다른 대각선 그것에는.Δ661

R N × NK 는 완전히 행렬로 완전히 구성된 행렬입니다.Rn×n

풀면 가우스-시델과 같은 반복적 인 방법으로 잘 작동합니다. 이것은 대각선으로 우세한 행렬이기 때문입니다. 문제 는 많은 수의 대해 효율적으로 해결하는 것이 거의 불가능 하지만 의 구조를 악용하여 해결할 수있는 트릭이 있습니까?A = ( Δ K ) n KA=ΔA=(ΔK)nK

편집 : 같은 일을 할 것

x k + 1Δxk+1=b+Kxk // Gauss-Seidel 로 을 구합니다.xk+1

올바른 솔루션으로 수렴 하시겠습니까? 인 경우 이러한 분할 방법이 수렴된다는 것을 읽었습니다 . 여기서 는 스펙트럼 규범입니다. 다른 작은 값에 대해 의 고유 값을 수동으로 계산했으며 음수가 매우 높은 값을 제외하고 모두 0입니다. ( 약 500 ~ ) 그래서 작동하지 않을 것 같습니다.ρ Δ - 1 K n n = 256ρ(Δ1K)<1ρΔ1Knn=256

편집 : 에 대한 자세한 내용Δ :

ΔRn×n 은 대칭이며 음의 결정적이고 대각선으로 지배적입니다.

matlab에서 다음과 같은 방식으로 생성됩니다.

n=W*H*D;

e=ones(W*H*D,1);

d=[e,e,e,-6*e,e,e,e];

delta=spdiags(d, [-W*H, -W, -1, 0, 1, W, W*H], n, n);


에 대한 자세한 정보를 제공 할 수 있습니까 ? 대칭? 정반대, 정반대? Δ
Stefano M

Δ 는 대칭이며 음수입니다.
yon

합니까 우드 베리 매트릭스 신원 K 이후 도움 당신은 낮은 순위는?
Aron Ahmadia

답변:


14

합리적인 데이터 구조를 사용 하는 경우 랩톱 에서는 , 수퍼 컴퓨터에서는 n 10 12로 문제를 해결할 수있는 두 가지 선택 사항이 있습니다 . 효율성을 위해서는 멀티 그리드를 사용하여 Δ 로 해결해야합니다 . 두 경우 모두 비용은 Δ로 해결하는 것보다 비용이 많이 드는 작은 요소 입니다. 두 가지 접근 방식은 Schur 보완 인수를 통해 동일하지만 구현이 다르기 때문에 별도로 설명합니다.n>106n1012ΔΔ

  • 경계 시스템 사용

M=(ΔeeT1)

여기서 는 모든 것으로 구성된 열 벡터이며 시스템을 해결합니다.e

M(xy)=(b0)

반복 또는 직접 솔버 사용.

  • Krylov 방법을 사용하고 행렬 를 (예 : 희소 행렬 + 순위 -1 수정)로 적용하십시오. 기존 사전 조건 자 . 또는 특히 로 직접 해결을 사용 하려면 Sherman-Morrison 공식으로 업데이트하십시오 .Δ - e e T P - 1Δ - 1 ΔAΔeeTP1Δ1Δ

나는 당신이 두 번째 접근법으로 훨씬 나아 졌다고 생각하는 경향이 있습니다. 요점은 단순히 행렬 를 메모리에 저장하거나 행렬 벡터 곱을 사용 하려고 시도해서는 안된다는 것입니다. 대신 반복 체계에서 와 벡터 를 곱해야 할 때마다 를 곱한 다음 합니다. 괄호 안의 용어는 의 항목 합계에 불과하며 한 번만 계산합니다. Jed는 이미 이것을 잘 설명했지만 작업 순서를 강조하고 싶었습니다. A z h = Δ z y = h e ( e T z ) zKAzh=Δzy=he(eTz)z
Wolfgang Bangerth
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.