Doğrusal denklem sistemlerini çözmek için İleri Eliminasyon, Geri Yerine Koyma ve Gauss-Jordan yöntemlerini kullanır.
Gaussian Elimination, n bilinmeyenli n adet doğrusal denklemden oluşan bir sistemi çözmek için kullanılan klasik ve sistematik bir cebirsel yöntemdir. Sedgewick, katsayılar matrisini üst üçgensel matris formuna getirdiğini açıklar.
Bu modül, üç ana adımı bir araya getirir: 1) Katsayılar matrisini sadeleştiren İleri Eliminasyon. 2) Üst üçgensel formdan bilinmeyenleri bulup geriye doğru yerleştiren Geri Yerine Koyma. 3) Matrisi doğrudan birim matris formuna getirerek çözümü tek adımda sunan Gauss-Jordan Yöntemi.
Aşağıdaki uygulamalar PDF kaynaklarındaki pseudo kod akışını modern veri yapılarıyla ifade eder. Kenar durumları görünür bırakıldığı için örnekler doğrudan test edilebilir.
1function gaussianElimination(matrix: number[][], results: number[]): number[] {2 const n = matrix.length;3 const aug: number[][] = matrix.map((row, i) => [...row, results[i]]);4 for (let i = 0; i < n; i++) {5 let maxRow = i;6 for (let k = i + 1; k < n; k++) { if (Math.abs(aug[k][i]) > Math.abs(aug[maxRow][i])) { maxRow = k; } }7 const temp = aug[i]; aug[i] = aug[maxRow]; aug[maxRow] = temp;8 if (Math.abs(aug[i][i]) < 1e-9) { throw new Error('Matris tekildir veya sonsuz çözümlüdür.'); }9 for (let k = i + 1; k < n; k++) {10 const factor = aug[k][i] / aug[i][i];11 for (let j = i; j <= n; j++) { aug[k][j] -= factor * aug[i][j]; }12 }13 }14 const x = Array(n).fill(0);15 for (let i = n - 1; i >= 0; i--) {16 let sum = 0;17 for (let j = i + 1; j < n; j++) { sum += aug[i][j] * x[j]; }18 x[i] = (aug[i][n] - sum) / aug[i][i];19 }20 return x;21}Çözmek istediğiniz yöntemi (elimination veya jordan) ve genişletilmiş matris değerlerini girin. Örn: elimination; 2,1,-1:8 | -3,-1,2:-11 | -2,1,2:-3
Çözmek istediğiniz yöntemi (elimination veya jordan) ve genişletilmiş matris değerlerini girin. Örn: elimination; 2,1,-1:8 | -3,-1,2:-11 | -2,1,2:-3
En İyi Durum: O(n^3)
Ortalama Durum: O(n^3)
En Kötü Durum: O(n^3)
O(n^2) (Genişletilmiş matris saklama) - Bu algoritmanın karmaşıklığı belirtilmemiş.
Gaussian Elimination (Gauss Eliminasyonu) Algoritması ile benzer veya alternatif olarak değerlendirilebilecek diğer başlıklar: