Saya memiliki sistem persamaan linear ukuran mxm, di mana m besar. Namun, variabel yang saya minati hanyalah variabel n pertama (n kecil dibandingkan dengan m). Apakah ada cara saya dapat memperkirakan solusi untuk nilai m pertama tanpa harus menyelesaikan seluruh sistem? Jika demikian, apakah perkiraan ini lebih cepat daripada menyelesaikan sistem linear penuh?
15
Jawaban:
Seperti yang telah ditunjukkan orang lain, ini sulit dilakukan dengan pemecah langsung. Yang mengatakan, itu tidak sulit untuk dilakukan dengan pemecah iteratif. Untuk tujuan ini, perhatikan bahwa sebagian besar pemecah iteratif dengan satu atau lain cara meminimalkan kesalahan sehubungan dengan beberapa norma. Seringkali, norma ini disebabkan oleh matriks itu sendiri, tetapi kadang-kadang juga hanya norma vektor l2. Tetapi itu tidak harus menjadi masalah: Anda dapat memilih norma mana yang Anda inginkan untuk meminimalkan kesalahan (atau residual), dan Anda dapat, misalnya, memilih norma di mana Anda menimbang komponen yang Anda pedulikan dengan 1 dan semua yang lain dengan 1e-12, misalnya misalnya sesuatu seperti (1e-24) ∑ N i = 6 x 2 i dan produk skalar yang sesuai. Kemudian tulis semua langkah solver iteratif sehubungan dengan norma dan produk skalar ini, dan Anda mendapatkan solver iteratif yang secara signifikan lebih memperhatikan elemen vektor yang Anda pedulikan daripada yang lain.||x||2=∑5i=1x2i+ ∑Ni=6x2i
Pertanyaannya tentu saja adalah apakah Anda membutuhkan iterasi yang lebih sedikit dibandingkan dengan produk norma / skalar yang menimbang semua komponen secara merata. Tapi itu memang harus menjadi kasus: katakanlah Anda hanya peduli pada lima elemen vektor pertama. Maka Anda harus paling banyak lima iterasi untuk mengurangi kesalahan dengan faktor 1e12 karena lima iterasi adalah apa yang diperlukan untuk sistem 5x5 yang menggambarkannya. Itu bukan bukti tetapi saya cukup yakin bahwa Anda memang harus pergi dengan jumlah iterasi yang jauh lebih kecil jika bobot dalam norma (1e-12 di atas) lebih kecil daripada toleransi yang Anda inginkan untuk menyelesaikan sistem linear secara iteratif. .
sumber
Membentuk komplemen Schur
Misalkan Anda telah mengijinkan dan mempartisi matriks Anda ke dalam formulir
sedemikian rupa sehingga mengandung derajat kebebasan Anda dan jauh lebih kecil dari A 11 , maka seseorang dapat membentuk komplemen SchurA22 A11
baik melalui faktorisasi LU yang tampak benar parsial atau rumus eksplisit, dan kemudian dapat dipahami dalam pengertian berikut:S22
di mana mewakili bagian 'tidak menarik' dari solusi. Dengan demikian, disediakan sisi kanan yang hanya nol dalam derajat kebebasan komplemen Schur S 22 , kita hanya perlu menyelesaikan terhadap S 22 untuk mendapatkan bagian dari solusi yang sesuai dengan derajat kebebasan tersebut.⋆ S22 S22
Kompleksitas komputasi dalam kasus padat yang tidak terstruktur
Pengaturan dengan tinggi A dan n dengan tinggi A 22 , maka metode standar untuk komputasi S 22 adalah untuk Faktor pertama L 11 U 11 : = A 11 (mari kita mengabaikan berputar untuk saat ini) di sekitar 2 / 3 ( N - n ) 3 bekerja, lalu membentukN A n A22 S22 L11U11:=A11 2/3(N−n)3
menggunakan dua penyelesaian segitiga yang masing - masing membutuhkan kerja, dan kemudian melakukan pembaruan ke A 22 dalam 2 n 2 ( N - n ) bekerja.n(N−n)2 A22 2n2(N−n)
Dengan demikian, total pekerjaan adalah sekitar . Ketika n sangat kecil, N - n ≈ N , sehingga biaya dapat dilihat secara kasar 2 / 3 N 3 , yang merupakan biaya faktorisasi penuh.2/3(N−n)3+2n(N−n)2+2n2(N−n) n N−n≈N 2/3N3
The benefit is that, if there is a very large number of right-hand sides to be solved with the same system of equations, thenS22 could potentially be reused a large number of times, where each solve would only require 2n2 work (rather than 2N2 work) if S22 is factored.
Computational complexity in the (typical) sparse case
If your sparse system arose from some type of finite-difference or finite-element approximation, then sparse-direct solvers will almost certainly be able to exploit some of the structure; 2d systems can be solved withO(N3/2) work and O(NlogN) storage, while 3d systems can be solved with O(N2) work and O(N4/3) storage. The factored systems can then be solved with the same amount of work as the storage requirements.
The point of bringing up the computational complexities is that, ifn≈N−−√ and you have a 2d system, then since the Schur complement will likely be dense, the solve complexity given the factored Schur complement will be O(n2)=O(N) , which is only missing a logarithmic factor versus solving the full system! In 3d, it requires O(N) work instead of O(N4/3) .
It is thus important to keep in mind that, in your case wheren=N−−√ , there will only be significant savings if you're working in several dimensions and have many right-hand sides to solve.
sumber
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 projectorP 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 ofP will yield the following partitioned matrix:
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 ofP .
Essentially, you'll solve the system
in a clever way, becauseV 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
Solve forxˆ , 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 pickP somehow. If the solution to Ax=b is in R(P) , then y=x , and y isn't an approximation. Otherwise, y≠x , 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 calculateV , 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.
sumber
The long answer is...sort of.
You can re-arrange your system of equations such that the farthest rightk 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 lastn−k 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.
sumber