Sepengetahuan saya, ada 4 cara untuk memecahkan sistem persamaan linear (koreksi saya jika ada lebih banyak):
- Jika matriks sistem adalah matriks kuadrat peringkat penuh, Anda dapat menggunakan Aturan Cramer;
- Hitung invers atau pseudoinverse dari matriks sistem;
- Gunakan metode dekomposisi matriks (eliminasi Gaussian atau Gauss-Jordan dianggap sebagai dekomposisi LU);
- Gunakan metode berulang, seperti metode gradien konjugat.
Bahkan, Anda hampir tidak pernah ingin menyelesaikan persamaan dengan menggunakan aturan Cramer atau menghitung invers atau pseudoinverse, terutama untuk matriks dimensi tinggi, jadi pertanyaan pertama adalah kapan harus menggunakan metode dekomposisi dan metode iteratif, masing-masing. Saya kira itu tergantung pada ukuran dan properti dari matriks sistem.
Pertanyaan kedua adalah, sepengetahuan Anda, metode dekomposisi atau metode iteratif seperti apa yang paling cocok untuk matriks sistem tertentu dalam hal stabilitas dan efisiensi numerik.
Sebagai contoh, metode gradien konjugat digunakan untuk menyelesaikan persamaan di mana matriksnya simetris dan pasti positif, meskipun itu juga dapat diterapkan ke persamaan linear dengan mengonversi ke . Juga untuk matriks pasti positif, Anda dapat menggunakan metode dekomposisi Cholesky untuk mencari solusinya. Tapi saya tidak tahu kapan harus memilih metode CG dan kapan harus memilih pembusukan Cholesky. Perasaan saya adalah kita sebaiknya menggunakan metode CG untuk matriks besar.
Untuk matriks persegi panjang, kita dapat menggunakan dekomposisi QR atau SVD, tetapi sekali lagi saya tidak tahu bagaimana memilih salah satunya.
Untuk matriks lain, sekarang saya tidak bagaimana memilih pemecah yang tepat, seperti matriks Hermitian / simetris, matriks jarang, matriks band dll.
sumber
Jawaban:
Pertanyaan Anda agak seperti menanyakan obeng mana yang akan dipilih tergantung pada drive (slot, Phillips, Torx, ...): Selain ada terlalu banyak , pilihan juga tergantung pada apakah Anda ingin hanya mengencangkan satu sekrup atau merakit sebuah seluruh set rak perpustakaan. Namun demikian, dalam jawaban parsial untuk pertanyaan Anda, berikut adalah beberapa masalah yang harus Anda ingat ketika memilih metode untuk menyelesaikan sistem linear . Saya juga akan membatasi diri saya pada matriks yang dapat dibalik; kasus-kasus sistem yang kelebihan atau tidak ditentukan adalah masalah yang berbeda dan harus benar-benar menjadi pertanyaan yang terpisah.A x = b
Seperti yang Anda catat dengan benar, opsi 1 dan 2 benar: Menghitung dan menerapkan matriks terbalik adalah ide yang sangat buruk, karena jauh lebih mahal dan sering kurang stabil secara numerik daripada menerapkan salah satu algoritma lainnya. Itu membuat Anda memiliki pilihan antara metode langsung dan berulang. Hal pertama yang perlu dipertimbangkan bukanlah matriks , tetapi apa yang Anda harapkan dari solusi numerik ˜ x :SEBUAH x~
Karena tidak ada makan siang gratis, Anda biasanya harus memutuskan pertukaran antara keduanya. Setelah itu, Anda mulai melihat matriks (dan perangkat keras Anda) untuk memutuskan metode yang baik (atau lebih tepatnya, metode yang Anda bisa temukan implementasi yang baik). (Perhatikan bagaimana saya menghindari menulis "terbaik" di sini ...) Properti paling relevan di sini adalahSEBUAH
Dengan pemikiran ini, Anda kemudian harus menjelajah literatur (besar) dan mengevaluasi berbagai metode yang Anda temukan untuk masalah spesifik Anda. Berikut adalah beberapa pernyataan umum:
Ini juga berlaku untuk matriks sparse (besar) jika Anda tidak mengalami masalah memori: Matriks jarang pada umumnya tidak memiliki dekomposisi LU yang jarang, dan jika faktor-faktor tidak sesuai dengan memori (cepat), metode ini menjadi tidak dapat digunakan.
Jika Anda berulang kali harus menyelesaikan sistem linear dengan matriks yang sama dan sisi kanan yang berbeda, metode langsung masih bisa lebih cepat daripada metode berulang karena Anda hanya perlu menghitung dekomposisi sekali. (Ini mengasumsikan solusi berurutan; jika Anda memiliki semua sisi kanan pada saat yang sama, Anda dapat menggunakan metode blok Krylov.)
Tentu saja, ini hanyalah pedoman yang sangat kasar: Untuk setiap pernyataan di atas, kemungkinan ada matriks yang sebaliknya benar ...
Karena Anda meminta referensi dalam komentar, berikut adalah beberapa buku teks dan makalah ulasan untuk Anda mulai. (Tidak satu pun dari ini - maupun set - yang komprehensif; pertanyaan ini terlalu luas, dan terlalu tergantung pada masalah khusus Anda.)
sumber
Pohon keputusan dalam Bagian 4 bab yang relevan dalam Manual Perpustakaan NAG menjawab (sebagian) beberapa pertanyaan Anda.
sumber
Dokumentasi Eigen Library juga memiliki halaman ikhtisar yang bagus dengan banyak informasi tentang berbagai dekomposisi matriks:
http://eigen.tuxfamily.org/dox/group__TopicLinearAlgebraDecompositions.html
sumber