Menyelesaikan Persamaan Linier dengan Metode Iterasi Gauss-Seidel
Pendahuluan
Persamaan linier adalah salah satu dasar dalam matematika dan ilmu komputer, yang sering ditemukan dalam berbagai aplikasi sains dan teknik. Bentuk umum persamaan linier adalah:
Ax = b
di mana:
- A adalah matriks koefisien dengan dimensi n × n,
- x adalah vektor solusi dengan dimensi n,
- b adalah vektor hasil dengan dimensi n.
Dalam banyak kasus, metode analitik seperti eliminasi Gauss atau LU Decomposition dapat digunakan untuk menyelesaikan persamaan ini. Namun, untuk sistem yang sangat besar atau memiliki matriks yang spars (banyak elemen nol), metode iteratif seperti Gauss-Seidel sering kali lebih efisien.
Apa itu Metode Gauss-Seidel?
Metode Gauss-Seidel adalah metode iteratif untuk menyelesaikan sistem persamaan linier yang secara bertahap mendekati solusi yang benar. Metode ini memperbarui nilai variabel satu per satu menggunakan nilai terbaru yang dihitung selama iterasi.
Prinsip Dasar Metode Gauss-Seidel
Metode ini bekerja dengan membagi matriks A menjadi tiga komponen:
- Matriks diagonal utama D,
- Matriks di bawah diagonal L,
- Matriks di atas diagonal U.
Persamaan iteratif Gauss-Seidel diberikan oleh:
xi(k+1) = (1/aii) * (bi - Σj=1i-1 aij * xj(k+1) - Σj=i+1n aij * xj(k))
di mana xi(k+1) adalah nilai baru dari variabel ke-i pada iterasi ke-k+1.
Langkah-langkah Penyelesaian dengan Metode Gauss-Seidel
- Inisialisasi Solusi: Tentukan perkiraan awal untuk setiap variabel xi.
- Iterasi: Gunakan rumus iterasi Gauss-Seidel untuk memperbarui nilai variabel satu per satu.
- Cek Konvergensi: Periksa apakah perbedaan antara nilai iterasi baru dan iterasi lama lebih kecil dari batas toleransi yang ditentukan. Jika ya, maka solusi dianggap konvergen.
Contoh Kasus
Misalkan kita ingin menyelesaikan sistem persamaan linier berikut:
4x1 - x2 + x3 = 7 -2x1 + 6x2 + 2x3 = 9 x1 + x2 + 5x3 = -4
Langkah-langkah penyelesaiannya adalah sebagai berikut:
- Inisialisasi awal: Misalkan x1 = 0, x2 = 0, dan x3 = 0.
- Iterasi pertama: Hitung nilai x1, x2, dan x3 menggunakan rumus iteratif di atas.
- Iterasi kedua: Gunakan nilai yang diperoleh dari iterasi pertama untuk menghitung nilai baru.
- Ulangi langkah ini hingga perbedaan nilai antar iterasi sangat kecil.
Implementasi Python
Berikut adalah contoh kode Python untuk menyelesaikan sistem persamaan di atas menggunakan metode Gauss-Seidel:
import numpy as np
def gauss_seidel(A, b, x0, tol, max_iter):
n = len(b)
x = x0.copy()
for k in range(max_iter):
x_old = x.copy()
for i in range(n):
sum1 = sum(A[i][j] * x[j] for j in range(i))
sum2 = sum(A[i][j] * x_old[j] for j in range(i + 1, n))
x[i] = (b[i] - sum1 - sum2) / A[i][i]
# Periksa konvergensi
if np.linalg.norm(x - x_old, ord=np.inf) < tol:
print(f"Konvergen dalam {k + 1} iterasi.")
return x
print("Tidak konvergen.")
return x
# Contoh penggunaan
A = np.array([[4, -1, 1], [-2, 6, 2], [1, 1, 5]])
b = np.array([7, 9, -4])
x0 = np.zeros(len(b))
tol = 1e-5
max_iter = 100
solusi = gauss_seidel(A, b, x0, tol, max_iter)
print("Solusi: ", solusi)
Kelebihan dan Kelemahan Metode Gauss-Seidel
Kelebihan:
- Sederhana dan mudah diimplementasikan.
- Dapat menangani sistem dengan ukuran besar.
Kelemahan:
- Tidak selalu konvergen, terutama jika matriks tidak bersifat diagonally dominant atau tidak symmetric positive definite.
Kesimpulan
Metode Gauss-Seidel adalah teknik penyelesaian numerik yang efisien untuk persamaan linier dengan ukuran besar, tetapi perlu memperhatikan syarat konvergensinya. Dengan pemahaman yang baik tentang metode ini, Anda dapat menerapkannya untuk berbagai aplikasi dalam sains dan teknik.
Comments
Post a Comment
terima kasih