해결


22

행렬 G가 있습니다. A 는 드문 드문하고 n이 매우 큰 n x n 이며 (수백만 정도일 수 있습니다.) Gm 이 작은 n x m 높이 행렬 ( 1 < m < 1000 )이며 각 열은 하나만 가질 수 있습니다. 1 명 , 나머지는 존재와 엔트리 0 '이되도록, s의 G T G = I . A 는 거대하기 때문에 반전하기가 정말 어렵고 A 와 같은 선형 시스템을 해결할 수 있습니다AGAn×nnGn×mm1<m<100010GTG=IAB i C G S t a b ( l ) 와 같은 Krylov 부분 공간 방법을 반복적으로 사용하지만명시 적으로 A - 1 이 없습니다.Ax=bBiCGStab(l)A1

형식의 시스템을 풀고 싶습니다. 여기서 xbm 길이의 벡터입니다. 이를 수행하는 한 가지 방법은 반복 알고리즘 내에서 반복 알고리즘을 사용 하여 외부 반복 알고리즘의 각 반복에 대해 A - 1 을 푸는 것입니다 . 그러나 이것은 계산 비용이 많이 듭니다. 이 문제를 해결하는 데 더 쉬운 계산 방법이 있는지 궁금합니다.(GTA1G)x=bxbmA1


방금 0-1 구조를 악용하는 것에 대한 발언을 추가했습니다.
Arnold Neumaier

답변:


19

벡터의 도입 큰 결합 시스템 및 해결 Y + G , X = 0 , G T Y = - (B)( Y , X ) 반복적 인 방법을 사용하여 동시에있다. A 가 대칭 인 경우 (명시 적으로 언급하지 않더라도) 시스템은 대칭입니다 (그러나 A 이면y:=A1GxAy+Gx=0GTy=b(y,x)AA적절한 양의 방법을 선택하는 데 도움이 될 수 있습니다. (관련 키워드 : KKT 매트릭스, 준 변량 매트릭스).

편집 : 는 복잡한 대칭이므로 증강 행렬도 마찬가지이지만 사변형은 없습니다. 그러나 A x 루틴을 사용하여 A 를 계산할 수 있습니다 . * x = ¯ A ¯ x ; 따라서 QMR ftp://ftp.math.ucla.edu/pub/camreport/cam92-19.pdf 와 같은 방법을 적용 할 수 있습니다 (실제 시스템 용으로 설계되었지만 옮김 위치) 문제를 해결하십시오.AAxAx=Ax¯¯

Edit2 : 실제로, 의 (0,1) 구조 는 G T y 의 성분을 x 기호로 x 기호로 제거 하여 더 작은 시스템으로 해결할 수 있음을 의미합니다. 이것은 A 의 구조를 망쳐 놓는 것을 의미하며 A 가 선형 연산자가 아닌 희소 형식으로 명시 적으로 주어진 경우에만 지불합니다 .GxGTyAA


고맙습니다! A는 복잡한 대칭입니다. 증강 된 매트릭스의 상태가 원래의 매트릭스 의 상태보다 더 나빠질 것으로 예상되는 이유가 있습니까? m이 작 으면, 증가 된 행렬의 크기는 A보다 조금 더 크므로,이 증가 된 시스템을 반복적으로 해결하는 것이 A로 시스템을 해결하는 것보다 훨씬 더 강하지 않아야한다고 생각합니까? A
Costis

두 시스템의 조건 번호는 일반적으로 관련이 없습니다. 그것은 가 무엇인지에 달려 있습니다. -복잡한 대칭을 이용하는 방법에 대한 답변 정보를 추가했습니다. G
Arnold Neumaier

안녕하세요 여러분! 모든 답장을 보내 주셔서 감사합니다. 이 곳은 훌륭합니다! 원래 질문에 대한 확장 : 이제 가 있다고 가정합니다 . 여기서 G와 A는 원래 질문에서와 같은 의미를 갖지만 B는 순위가 부족한 nxn 행렬입니다 ( A)와 동일한 크기이며 전체 G T A - H B A - 1 G 는 전체 순위입니다. B의 역함수가 존재하지 않으므로 A B - 1 A H를 가질 수 없기 때문에 새로운 시스템을 해결하는 방법은 무엇입니까?(GTAHBA1G)x=bGTAHBA1GAB1AH. 나는 그것이 B의 의사 역수로도 간단하게 작동한다고 생각하지 않습니다.
Costis

1
소개 Z : = - H B , Y 및 케이스 밖으로 일 유사 진행. (아마도 B 를 풀 랭크 행렬로 분해하고 추가 중간 벡터를 도입 해야 할 수도 있습니다 .)y:=A1Gxz:=AHByB
Arnold Neumaier

아놀드 고마워, 이것은 실제로 작동합니다! 아주 작은 테스트 예제로 테스트했으며 훌륭하게 작동합니다. 그러나 내 반복 솔버는 증강 행렬을 반전시키는 데 큰 문제가 있습니다. 원래 A 행렬을 사용하여 형식 시스템을 해결하는 데 약 80 회의 반복 (몇 초)이 걸리지 만 , 확장 된 행렬이있는 시스템 (2n + mx 2n + m 또는 2n-mx 2n- @ wolfgang-bangerth의 접근 방식을 사용하는 m은 하나의 RHS를 해결하기 위해 수만 번의 반복 (몇 시간)이 걸립니다. 컨버전스를 가속화하기위한 전략이 있습니까? 아마도 전제 조건일까요? Ax=b
Costis

7

Arnold의 답변에 따라 문제를 단순화하기 위해 할 수있는 일이 있습니다. 구체적으로 시스템을 다시 Y + G , X = 0 , G T Y = - B . 그러면 문으로부터 유의 G는 높이 좁고 각 행은, 그렇지 않으면 다음 명령문 하나만 1과 0을 갖는 G T의 Y가 = - B 수단이 요소의 서브 세트 Y 고정 된 값, 즉 요소를 가지고 b .Ay+Gx=0,GTy=bGGTy=byb

단순화를 위해 m 개의 열과 n 개의 행이 있고 정확히 첫 번째 m 개의 행에 1 개의 행이 있고 x 의 요소를 재정렬하여 Gm × m 항등 행렬을 맨 위에 갖도록 할 수 있다고 가정하겠습니다. 및 바닥에서의 n - m × m 제로 매트릭스. 그런 다음 y = ( y c , y f )m "constrained"및 n - m "free"요소로 분할 할 수 있습니다.GmnmxGm×mnm×my=(yc,yf)mnm . A = ( A c c A c f A f c A f f )가 되도록 A 를 분할 할 수도 있습니다. 방정식 A y + G x = 0 에서 다음을 얻습니다. A c c y c + A c f y f + x = 0 ,yc=bAA=(AccAcfAfcAff)Ay+Gx=0 그리고우리가 y c 에 대해 아는 것을 사용하여이 방정식 중 두 번째 방정식 A f f y f = A f c b 로부터 결과적으로 x = A c c b A c f A - 1 f f A f c b . 다시 말해, 반전해야하는 유일한 행렬은 A 의 부분 집합입니다

Accyc+Acfyf+x=0,Afcyc+Affyf=0
yc
Affyf=Afcb
x=AccbAcfAff1Afcb.
A그 열과 행에서 언급되지 않은 (의 널 공간 G ). 이를 쉽게 수행 할 수 있습니다 : (i) z = A f c b 계산 ; (ii) 해결해야하는 모든 솔버를 사용하십시오 . f f h = z ; (iii) x = A c c b - A c f h를 계산 합니다.GGz=AfcbAffh=zx=AccbAcfh

다시 말해, 의 구조로 인해 선형 시스템을 푸는 것은 A 로 단일 선형 시스템을 푸는 것보다 더 어렵지 않습니다 .GA


0

그러나 우리는 알고 , G T 그래서,GGTA

GTA1Gx=b

GGTA1Gx=Gb

이후 , 다음 G T = G - 1 , 그래서 G G T = I :GTG=IGT=G1GGT=I

A1Gx=Gb

AA1Gx=AGb

Gx=AGb

GTGx=GTAGb

x=GTAGb

GAb


3
GTGG=e1GT=e1TGGT=e1e1TI

1
GCnCmGTG=Im×mGGTIn×n
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.