Doğrusal bir denklem sisteminin çözümü sadece ilk birkaç değişken için tahmin edilebilir mi?


15

M büyüklüğünde mxm boyutunda doğrusal bir denklem sistemim var. Ancak, ilgilendiğim değişkenler sadece ilk n değişkenidir (n, m'ye kıyasla küçüktür). Tüm sistemi çözmek zorunda kalmadan ilk m değerleri için çözümü yaklaşık olarak tahmin edebilmemin bir yolu var mı? Öyleyse, bu yaklaşım tam doğrusal sistemi çözmekten daha hızlı olur mu?


2
Zorlama işleviniz de ilk n değişkenle sınırlı olmadığı sürece değil. Öyleyse, muhtemelen yoğun olsa da, Schur tamamlayıcısını oluşturabilirsiniz. Orijinal operatörünüz seyrek ise, buna değmeyebilir.
Jack Poulson

1
Sanırım matrisin sağ alt köşesinden başlayarak gauss yok etmeyi kullanabilirsiniz. Yalnızca ilk birkaç öğeyi önemsiyorsanız ve yarı yolda kalırsanız, bu normal gauss eliminasyonundan ~ 2 kat daha hızlı olacaktır. Yinelemeli yöntemlerle nasıl karşılaştırılacağını bilmiyorum.
Dan

4
@OscarB: Lütfen hayır. Cramer kuralı kayan nokta aritmetiğinde bir zulümdür. Ciddi hesaplamalar için kullanıldığını hiç duymadım ve hala Gauss'un ortadan kaldırılmasıyla rekabet etmediği faktöriyel karmaşıklığı önlemek için iyi bir düşünce gerekiyor .
Jack Poulson

1
@Paul: Çoğu model sırası azaltması, büyük ODE veya DAE sistemleri bağlamında kullanılır. Bazen, azaltma metodolojileri PDE'lerin takdirine bağlı olarak ortaya çıkan ODE veya DAE sistemleri tarafından teşvik edilir. Tamamen cebirsel denklemlerde kullanılan model indirgemesini görmedim. (Varsa, lütfen referanslar gönderin, çünkü model azaltma yöntemleri üzerine tezimi yapıyorum ve bunu görmek çok ilgi duyacağım.) İsterseniz, tedavi edersek hangi model indirgemesinin nasıl görünebileceğini belirleyebilirim diferansiyel cebirsel denklem sisteminin dejenere bir örneği olarak cebirsel denklemler.
Geoff Oxberry

1
@JackPoulson - yorumunuzu cevap olarak özetlemek ister misiniz? Bence bu en doğru çözüm ve yorumlarda kaybolmasını istemiyorum.
Aron Ahmadia

Yanıtlar:


13

Diğerlerinin de belirttiği gibi, bunun doğrudan bir çözücü ile yapılması zordur. Bununla birlikte, yinelemeli çözücülerle yapmak o kadar da zor değil. Bu amaçla, yinelemeli çoğu çözücünün bir şekilde normlara göre hatayı en aza indirdiğini unutmayın. Çoğu zaman, bu norm ya matrisin kendisi tarafından uyarılır, ancak bazen aynı zamanda sadece l2 vektör normudur. Ancak durum böyle olmak zorunda değildir: Hatayı (veya kalıntıyı) en aza indirmek istediğiniz normu seçebilir ve örneğin, 1 ile önem verdiğiniz bileşenleri tarttığınız bir norm seçebilirsiniz. 1e-12 ile diğerleri, örneğin (1e-24)N i = 6 x 2 i ve karşılık gelen skaler ürün. Ardından, bu norm ve skaler ürüne göre yinelemeli çözücünün tüm adımlarını yazın ve önem verdiğiniz vektör öğelerine diğerlerine göre önemli ölçüde daha fazla dikkat eden bir yinelemeli çözücü alırsınız.||x||2=i=15xi2+i=6Nxi2

Soru, tüm bileşenleri eşit olarak tartan norm / skaler üründen daha az yinelemeye ihtiyacınız olup olmadığıdır. Ama bu gerçekten böyle olmalı: diyelim ki sadece ilk beş vektör öğesini önemsiyorsunuz. O zaman hatayı 1e12 faktörü ile azaltmak için en fazla beş yinelemeye ihtiyacınız vardır, çünkü bunları tanımlayan 5x5 sistemi için beş yineleme gereklidir. Bu bir kanıt değil, ancak normdaki ağırlık (yukarıdaki 1e-12), doğrusal sistemi tekrarlı olarak çözmek istediğiniz toleranstan daha küçükse, çok daha az sayıda yinelemeden kurtulmanız gerektiğinden eminim. .


2
Hmm, güzel nokta. Sadece birkaç serbestlik derecesini çözmeye çalışmanın etkileri hakkında biraz endişelendiğim için gerçek bir örnek görmek isterim; kalıntı küçük olsa da, belki de hata normu hala oldukça büyüktür (operatörün çoğunu etkili bir şekilde göz ardı etmek için yapın).
Jack Poulson

Sezgisel olarak, bu sadece çok küçük sistemin bileşenleri cevaba gerçekten bir L2 (ya da ölçülecek hatanızı anladığınız norm) anlamında hâkim ise işe yarar görünüyor. Aksi takdirde, Jack'in endişesinin geçerli olduğunu düşünüyorum, ancak bunun sayısal bir kanıtını görmekle kesinlikle ilgilenirim ...
Aron Ahmadia

Kalıntıyı değil, hatayı en aza indiren bir yöntem aldığınızdan emin olmanız gerekir . Bence MinErr iyi bir başlangıç ​​noktası olabilir.
Wolfgang Bangerth

@WolfgangBangerth: MINERR hakkında bilgi sahibi değilim: Bu ana referans mı?
Jack Poulson

1
Bu bile yeterli değil, çünkü yanlış olacaksın. Bu ağırlığı kullanarak birkaç bileşeni doğru şekilde elde edemezsiniz.
Matt Knepley

17

Schur tamamlayıcısının oluşturulması

Varsayalım ki matrisinizi forma böltünüz.

A=(A11A12A21A22),

öyle ki ilgi derecelerinizi içerecek ve A 11'den çok daha küçük olacaksa, o zaman Schur tamamlayıcısını oluşturabilirsinizA22A11

S22:=A22A21A111A12,

ya kısmi sağa bakan bir LU çarpanlarına ayırma ya da açık formül aracılığıyla, ve sonra aşağıdaki anlamda anlaşılabilir:S22

S22x=y(A11A12A21A22)(x)=(0y),

burada , çözümün 'ilgisiz' kısmını temsil eder. Bu nedenle, Schur tamamlayıcısı S 22'nin serbestlik derecelerinde sadece sıfır olmayan bir sağ taraf sağlandığında , çözeltinin bu serbestlik derecelerine karşılık gelen kısmını elde etmek için sadece S 22'ye karşı çözmemiz gerekir .S22S22

Yapılandırılmamış yoğun vakada hesaplama karmaşıklığı

Ayarlama yüksekliğine A ve n, yüksekliğine A 22 , daha sonra işlem için standart bir yöntem S 22 birinci faktör olan L 11 U 11 : = bir 11 kabaca (şimdilik döner kabul edelim;) 2 / 3 ( N - n ) 3 iş, sonra oluşturmakNAnA22S22L11U11:=A112/3(Nn)3

S22:=A22(A21U111)(L111A12)=A22A21A111A12

gerektiren iki üçgen kullanarak çözer iş her biri ve daha sonra, güncelleştirme işlemini A 22 içinde 2 N 2 ( N - n ) çalışması.n(Nn)2A222n2(Nn)

Bu durumda, toplam çalışma kabaca . Zaman n, çok küçük, N - n N maliyeti kabaca olduğu görülebilir, böylece 2 / 3 , N 3 tam çarpanlara maliyetidir.2/3(Nn)3+2n(Nn)2+2n2(Nn)nNnN2/3N3

Faydası, aynı denklem sistemi ile çözülecek çok sayıda sağ taraf varsa, potansiyel olarak çok sayıda tekrar kullanılabileceği ve her bir çözümün sadece 2 n 2 çalışma gerektireceği S 22 çarpanlarına ayrılırsa ( 2 N 2 çalışması yerine ) .S222n22N2S22

(Tipik) seyrek vakada hesaplama karmaşıklığı

Seyrek sisteminiz bir tür sonlu farktan veya sonlu eleman yaklaşımından kaynaklanıyorsa, seyrek doğrudan çözücüler neredeyse kesinlikle yapının bir kısmını kullanabileceklerdir; 2d sistemleriyle çözülebilir çalışma ve O ( N günlük K ) 3d sistemleriyle çözülebilir ise, depolama O ( N 2 ) çalışması ve O ( N 4 / 3 ) depolama. Faktörlü sistemler daha sonra depolama gereklilikleriyle aynı miktarda işle çözülebilir.O(N3/2)O(NlogN)O(N2)O(N4/3)

Hesaplama karmaşıklıklarını ortaya çıkarmanın amacı, eğer ve bir 2d sisteminiz var, o zaman Schur tamamlayıcısı muhtemelen yoğun olacağından, faktörlü Schur tamamlayıcısı verilen çözme karmaşıklığıO(n2)=O(N) olacaktır; sistemi! 3d, bu gerektirirO(K)yerine çalışmaO(N 4 / 3 ).nNO(n2)=O(N)O(N)O(N4/3)

Bu nedenle, n=N, there will only be significant savings if you're working in several dimensions and have many right-hand sides to solve.


1
This is a great summary of the schur complement method and when it is computationally efficient to use it!
Paul

6

The model reduction approach

Since Paul asked, I'll talk about what happens if you use projection-based model reduction methods on this problem. Suppose that you could come up with a projector P such that the range of P, denoted R(P), contains the solution to your linear system Ax=b, and has dimension k, where k is the number of unknowns for which you wish to solve in a linear system.

A singular value decomposition of P will yield the following partitioned matrix:

P=[V][diag(1k)000][WT].

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

P=VWT

is a full rank decomposition of P.

Essentially, you'll solve the system

PAx=Pb

in a clever way, because V and W also have the property that WTV=I. Multiplying both sides of PAx=Pb by WT and letting y=Vx^ be an approximation for x yields

WTAx^=WTb.

Solve for x^, premultiply it by V, and you have y, your approximation for x.

Why the Schur complement approach is probably better

For starters, you have to pick P somehow. If the solution to Ax=b is in R(P), then y=x, and y isn't an approximation. Otherwise, yx, and you introduce some approximation error. This approach doesn't really leverage at all the structure you mentioned wanting to exploit. If we pick P such that its range is the standard unit basis in the coordinates of x you want to calculate, the corresponding coordinates of y will have errors in them. It's not clear how you'd want to pick P. You could use an SVD of A, for instance, and select P to be the product of the first k left singular vectors of A and the adjoint of the first k right singular vectors of A, 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 A, and it would minimize the L2-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 V, and W. Unless you're solving the same linear system a lot, only changing the right hand side, and P 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.


4

The long answer is...sort of.

You can re-arrange your system of equations such that the farthest right k 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) k variables which you are interested in

This will save you the computational complexity of having to solve for the last nk variables via back-substitution, which could be worth it if n 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.


Gaussian elimination requires O(n3) work, but backward substitution only requires O(n2). Thus, as n grows larger, the percentage of time spent in the triangle solve becomes vanishingly small.
Jack Poulson

which is why the answer is "sort of" instead of "yes" =)
drjrm3

It makes sense that it can be done this way... However, the bulk of the computation in a Gaussian Elimination is in the forward elimination phase, yielding an O(n^3) complexity despite the truncated backward substitution phase. I was hoping there was a faster method...
Paul
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.