Bildiğim kadarıyla, bir lineer denklem sistemini çözmenin 4 yolu vardır (eğer daha varsa beni düzeltin):
- Sistem matrisi tam dereceli bir kare matris ise, Cramer Kuralı'nı kullanabilirsiniz;
- Sistem matrisinin ters veya tersini hesaplayın;
- Matris ayrıştırma yöntemlerini kullanın (Gaussian veya Gauss-Jordan eleme, LU ayrıştırma olarak kabul edilir);
- Eşlenik gradyan yöntemi gibi yinelemeli yöntemler kullanın.
Aslında, Cramer kuralını kullanarak veya özellikle yüksek boyutlu matrisler için ters veya sözde tersini hesaplayarak denklemleri çözmek neredeyse hiç istemez, bu nedenle ilk soru sırasıyla ayrıştırma yöntemleri ve yinelemeli yöntemleri kullanmanızdır. Sistem matrisinin boyutuna ve özelliklerine bağlı olduğunu tahmin ediyorum.
İkinci soru, bilginize göre, nümerik stabilite ve verimlilik açısından belirli sistem matrisi için ne tür ayrışma yöntemleri veya yineleme yöntemleri en uygunudur.
Örneğin, eşlenik gradyan yöntemi, matrisin simetrik ve pozitif kesin olduğu denklemleri çözmek için kullanılır, ancak - . Ayrıca pozitif kesin matris için, çözümü aramak üzere Cholesky ayrıştırma yöntemini kullanabilirsiniz. Fakat ne zaman CG yöntemini seçeceğimi ve Cholesky ayrışmasını ne zaman seçeceğimi bilmiyorum. Benim hissim, büyük matrisler için CG yöntemini kullanmamız daha iyi.A T A x = A T b
Dikdörtgen matrisler için, QR ayrıştırması veya SVD kullanabiliriz, ancak yine de bunlardan birini nasıl seçeceğimi bilmiyorum.
Diğer matrisler için, şimdi Hermitian / simetrik matrisler, seyrek matrisler, bant matrisleri vb. Gibi uygun çözücüyü nasıl seçeceğimi bilmiyorum.