mxm 크기의 방정식의 선형 시스템을 가지고 있는데, 여기서 m은 큽니다. 그러나 관심있는 변수는 첫 번째 n 변수입니다 (n은 m에 비해 작습니다). 전체 시스템을 풀지 않고도 첫 번째 m 값에 대한 솔루션을 근사 할 수있는 방법이 있습니까? 그렇다면,이 근사가 전체 선형 시스템을 푸는 것보다 빠를까요?
mxm 크기의 방정식의 선형 시스템을 가지고 있는데, 여기서 m은 큽니다. 그러나 관심있는 변수는 첫 번째 n 변수입니다 (n은 m에 비해 작습니다). 전체 시스템을 풀지 않고도 첫 번째 m 값에 대한 솔루션을 근사 할 수있는 방법이 있습니까? 그렇다면,이 근사가 전체 선형 시스템을 푸는 것보다 빠를까요?
답변:
다른 사람들이 지적했듯이 이것은 직접 솔버로 수행하기가 어렵습니다. 즉, 반복 솔버로는 그렇게 어렵지 않습니다. 이를 위해 대부분의 반복 솔버가 어떤 방식 으로든 오류를 최소화한다는 점에 유의하십시오. 종종이 규범은 행렬 자체에 의해 유발되기도하지만 때로는 l2 벡터 규범이기도합니다. 그러나 반드시 그럴 필요는 없습니다. 오류 (또는 잔류)를 최소화하려는 규범을 선택할 수 있으며, 예를 들어 1로 관심있는 구성 요소의 무게를 측정 할 규범을 선택할 수 있습니다. 1e-12의 다른 모든 것 (예 : (1e-24) ∑ N i = 6 x 2 i 및 해당 스칼라 곱. 그런 다음이 규범 및 스칼라 곱과 관련하여 반복 솔버의 모든 단계를 작성하면 다른 벡터보다 관심 벡터 요소에 훨씬 더 많은주의를 기울이는 반복 솔버를 얻게됩니다.
물론 모든 구성 요소의 무게가 같은 표준 / 스칼라 제품보다 반복 횟수가 적은지 여부가 문제입니다. 그러나 실제로는 그렇게되어야합니다. 5 개의 첫 벡터 요소에만 관심이 있다고 가정 해 봅시다. 그런 다음 오류를 설명하는 5x5 시스템에 5 번의 반복이 필요하므로 오류를 1e12만큼 줄이려면 최대 5 번의 반복이 필요합니다. 그것은 증거는 아니지만 규범 (1e-12 위)의 가중치가 선형 시스템을 반복적으로 해결하려는 공차보다 작 으면 훨씬 적은 반복 횟수로 도망 가야한다고 확신합니다. .
행렬을 형태로 바꾸고 분할했다고 가정하십시오.
그런 (22)가 관심의 자유의 당신의도를 포함하고보다 훨씬 작은 (11) , 그 다음 하나는 슈어 보완을 형성 할 수있다
부분적으로 우시적인 LU 인수 분해 또는 명시 적 공식을 통해 는 다음과 같은 의미로 이해 될 수 있습니다.
여기서 는 솔루션의 '무관심한'부분을 나타냅니다. 따라서, 단지 제로 슈어 보체의 자유도에있는 우측 제공 S (22) , 우리는에 대해 해결할 필요가 S (22) 의 자유 그 각도에 대응하는 상기 용액의 일부를 얻기 위해.
설정 의 높이 및 N 의 높이 22 다음 계산을위한 표준 방법을 S (22)는 먼저 계수이고 L 11 U 11 : = 11 대충 (의 지금은 요동을 무시하도록) 2 / 3 ( N - N ) 3 형태로 다음 작업,
두 개의 삼각형을 사용하면 각각 일이 필요한 다음 2 n 2 ( N - n ) 일 에서 A 22 로 업데이트를 수행합니다 .
이에 따라, 전체 작업은 대충 . 경우 N 매우 작고, N - N ≈ N 비용 대략적으로 알 수 있으므로, 2 / 3 N (3) 전체의 비용 인수이다.
이점은 동일한 방정식 시스템으로 풀어야 할 매우 많은 수의 우변이있는 경우 는 잠재적으로 많은 횟수를 재사용 할 수 있으며, 여기서 각 해는 2 n 2 작업 만 필요 합니다. S 22 가 인수 분해 된 경우 ( 2 N 2 작업 대신 ) .
희소 시스템이 특정 유형의 유한 차이 또는 유한 요소 근사치에서 발생하면 희소 직접 솔버는 거의 일부 구조를 이용할 수 있습니다. 2D 시스템은 해결 될 수 작업 및 O ( N 로그 N ) 3D 시스템은 해결 될 수 있지만, 저장 O ( N 2 ) 작업 및 O ( N 4 / 3 ) 스토리지. 그런 다음 스토리지 요구 사항과 동일한 작업량으로 팩토링 된 시스템을 해결할 수 있습니다.
계산 복잡성을 제기하는 요점은 당신은 슈어 보완 가능성, 문제점을 해결 복잡성이 (가) 슈어 보완이 될 것입니다 고려 주어진 밀도가 될 것입니다 그 이후로, 2 차원 시스템이O(N2)=O(N)은 전체를 해결 대 대수 요소를 누락 체계! 3D에서는 필요O(N)대신에 작업O(N 4 / 3 ).
따라서 n = √ 인 경우를 명심해야합니다. , 여러 차원에서 작업하고 해결해야 할 오른쪽이 많은 경우에만 상당한 비용 절감 효과가 있습니다.
Paul이 물었으므로이 문제에 대해 투영 기반 모델 축소 방법을 사용하면 어떻게되는지 이야기하겠습니다. R ( P ) 로 표시된 P 의 범위가 선형 시스템 A x = b에 대한 솔루션을 포함하고 치수 k 를 갖는 프로젝터 생각해 봅시다 . 여기서 k 는 알려지지 않은 수입니다. 선형 시스템에서 해결하고 싶습니다.
의 특이 값 분해 는 다음과 같은 분할 된 행렬을 생성합니다.
The matrices obscured by stars matter for other things (like estimating error, etc.), but for now, we'll avoid dealing with extraneous details. It follows that
is a full rank decomposition of .
Essentially, you'll solve the system
Solve for , premultiply it by , and you have , your approximation for .
For starters, you have to pick somehow. If the solution to is in , then , and isn't an approximation. Otherwise, , and you introduce some approximation error. This approach doesn't really leverage at all the structure you mentioned wanting to exploit. If we pick such that its range is the standard unit basis in the coordinates of you want to calculate, the corresponding coordinates of will have errors in them. It's not clear how you'd want to pick . You could use an SVD of , for instance, and select to be the product of the first left singular vectors of and the adjoint of the first right singular vectors of , assuming that singular vectors are arranged in decreasing order of singular value. This choice of projector would be equivalent to performing proper orthogonal decomposition on , and it would minimize the L-error in the approximate solution.
In addition to introducing approximation errors, this approach also introduces three extra matrix multiplies on top of the linear solve of the smaller system and the work needed to calculate , and . Unless you're solving the same linear system a lot, only changing the right hand side, and is still a "good" projection matrix for all of those systems, those extra costs will probably make solving the reduced system more expensive than solving your original system.
The drawbacks are much like JackPoulson's approach, except that you're not quite leveraging the structure that you mentioned.
The long answer is...sort of.
You can re-arrange your system of equations such that the farthest right columns are the variables which you wish to solve for.
Step 1: Perform Gaussian Elimination so that the matrix is upper triangular. Step 2: solve by back substitution for only the first (last) variables which you are interested in
This will save you the computational complexity of having to solve for the last variables via back-substitution, which could be worth it if is as large as you say. Keep in mind that a fair amount of work will still have to be done for step 1.
Also, keep in mind that restricting the order in which you are going to perform back-substituion may restrict the form of the matrix (it takes away the ability to exchange columns) which could possibly lead to an ill conditioned system, but I am not sure about that - just something to keep in mind.