Metode Iterasi Jacobi
Metode iterasi Jacobi adalah salah satu metode numerik untuk menyelesaikan sistem persamaan linear. Metode ini bekerja dengan mengulang proses estimasi solusi hingga mencapai hasil yang konvergen. Metode ini sangat berguna dalam bidang komputasi ilmiah dan pemodelan numerik.
Rumus Iterasi Jacobi
Misalkan diberikan sistem persamaan linear:
a11x1 + a12x2 + ... + a1nxn = b1 a21x1 + a22x2 + ... + a2nxn = b2 ... an1x1 + an2x2 + ... + annxn = bn
Rumus iterasi Jacobi adalah:
xi(k+1) = (1 / aii) * (bi - Σ aij * xj(k)), untuk j ≠ i
Langkah-Langkah Penyelesaian
- Inisialisasi tebakan awal untuk semua variabel, misalnya x0 = [0, 0, ..., 0].
- Gunakan rumus iterasi Jacobi untuk memperbarui nilai solusi.
- Periksa apakah solusi sudah konvergen, dengan membandingkan selisih hasil iterasi terbaru dengan toleransi yang ditentukan.
- Ulangi langkah 2 dan 3 hingga solusi mencapai konvergensi atau jumlah iterasi maksimum tercapai.
Contoh Implementasi Python
Berikut adalah contoh implementasi metode Jacobi dalam Python:
import numpy as np
def jacobi(A, b, x0, tol, max_iter):
n = len(b)
x = x0.copy()
for k in range(max_iter):
x_new = np.zeros_like(x)
for i in range(n):
s = sum(A[i][j] * x[j] for j in range(n) if i != j)
x_new[i] = (b[i] - s) / A[i][i]
print(f'Iterasi ke-{k+1}: {x_new}')
if np.linalg.norm(x_new - x, ord=np.inf) < tol:
print(f'Iterasi berhenti pada iterasi ke-{k+1}')
return x_new
x = x_new
print('Maksimal iterasi tercapai')
return x
# Contoh penggunaan
A = np.array([[4, 1, 1],
[2, 5, 2],
[1, 1, 6]])
b = np.array([7, -4, 6])
x0 = np.zeros_like(b)
tol = 1e-6
max_iter = 500
solusi = jacobi(A, b, x0, tol, max_iter)
print('Solusi akhir:', solusi)
Kesimpulan
Metode iterasi Jacobi sangat bermanfaat dalam menyelesaikan sistem persamaan linear yang besar dan jarang (sparse). Meskipun memerlukan banyak iterasi untuk mencapai konvergensi, metode ini tetap berguna karena mudah diimplementasikan dan dapat diparalelkan dengan baik.
Comments
Post a Comment
terima kasih