Metode Jacobi
Metode Iterasi Jacobi merupakan salah satu bidang analisis numerik yang digunakan untuk menyelesaikan permasalahan persamaan linear dan sering dijumpai dalam berbagai disiplin ilmu. Metode Iterasi Jacobi merupakan salah satu metode tak langsung, yaitu bermula dari suatu hampiran penyelesaian awal dan kemudian berusaha memperbaiki hampiran dalam tak berhingga tetapi langkah konvergen. Metode Iterasi Jacobi ini digunakan untuk menyelesaikan persamaan linear berukuran besar dan proporsi koefisien nolnya besar.
Metode ini ditemukan oleh matematikawan yang berasal dari Jerman, Carl Gustav Jacob Jacobi. Penemuan ini diperkirakan pada tahun 1800-an.
Kalau kita mengubah dalam Sistem Persamaan Linear, maka dapat ditulis sebagai berikut
Kemudian, diketahui bahwa , di mana merupakan matriks diagonal, merupakan matriks segitiga bawah, dan merupakan matriks segitiga atas.
Kemudian, persamaan di atas dapat diubah menjadi:
Kemudian,
Jika ditulis dalam aturan iteratif, maka metode Jacobi dapat ditulis sebagai:
di mana merupakan banyaknya iterasi. Jika menyatakan hampiran ke- penyelesaian SPL, maka adalah hampiran awal.
Deskripsi
Jadi
menjadi sistem kuadrat dari nilai n dalam persamaan linier yaitu:
Setelah itu nilai A dapat diuraikan menjadi komponen diagonal D, bagian segitiga bawah L dan bagian segitiga atas U:
Algoritma Metode Iterasi Jacobi
INPUT:
- , A, b, dan hampiran awal Y=(y1 y2 y3...yn)T, batas toleransi T, dan maksimum iterasi N
OUTPUT:
- X=(x1 x2 x3...xn)T, vektor galat hampiran , dan yang merupakan matriks dengan baris vektor-vektor hampiran selama iterasi.
- Set penghitung iterasi k=1
- WHILE DO
- FOR , Hitung
- SET
- IF ||X_Y||<T THEN STOP
- Tambah penghitung iterasi,
- FOR , Set yi=xi
- SET Y=(y1 y2 y3...yn)T
- Tulis pesan "Metode gagal setelah N iterasi"
- STOP
Input: initial guess to the solution, (diagonal dominant) matrix , right-hand side vector , convergence criterion Output: solution when convergence is reached Comments: pseudocode based on the element-based formula above
while convergence not reached do for i := 1 step until n do for j := 1 step until n do if j ≠ i then end end end end
Algoritma Metode Iterasi Jacobi dalam bentuk software Matlab
Penggunaan algoritme Metode Iterasi Jacobi dalam bentuk matlab. Matlab merupakan program pengolahan data numerik.
INPUT:
- , A, b, dan hampiran awal Y=(y1 y2 y3...yn)T, batas toleransi T, dan maksimum iterasi N
OUTPUT:
- X=(x1 x2 x3...xn)T, vektor galat hampiran , dan yang merupakan matriks dengan baris vektor-vektor hampiran selama iterasi.
- H=X0'
- n=length (b)
- X=X0
- for k:=1 until N
- for i:=i until n,
- S = b (i) - A (i,[1:i-1,i+1:n]) * X0 ([1:i-1,i+1:n])
- X(i) = S / A (i,i)
- S = b (i) - A (i,[1:i-1,i+1:n]) * X0 ([1:i-1,i+1:n])
- end
- g = abs (X-X0)
- err = norm (g)
- relerr = err / (norm (X)+eps)
- X0 = X
- H = [H;X0']
- if (err<T)|(relerr<T), break, end
- for i:=i until n,
- end
Kekonvergenan
MEtode ini akan bernilai konvergen jika matriksnya merupakan matriks dominan secara diagonal, yaitu apabila unsur diagonal pada kolom tersebut lebih besar dari penjumlahan unsur-unsur lainnya pada kolom tersebut.
Contoh
Sistem linear dari bentuk dengan perkiraan awal diberikan oleh
Kami menggunakan persamaan , dijelaskan di atas, untuk memperkirakan . Pertama, kami menulis ulang persamaan dalam bentuk yang lebih mudah , dimana dan . Dari nilai-nilai yang diketahui
we determine as
Further, is found as
Dengan dan dihitung, kami perkirakan sebagai :
Hasil iterasi berikutnya
Proses ini diulangi sampai konvergensi (yaitu, sampai kecil). Solusi setelah 25 iterasi adalah
Contoh lain
Contohnya kita diberi sistem linier berikut:
Bila kita memilih (0, 0, 0, 0) sebagai pendekatan awal, maka solusi perkiraan pertama diberikan oleh
Dengan menggunakan perkiraan yang diperoleh, prosedur iteratif diulangi sampai akurasi yang diinginkan tercapai. Berikut ini adalah solusi yang diperkirakan setelah lima iterasi.
| 0.6 | 2.27272 | -1.1 | 1.875 |
| 1.04727 | 1.7159 | -0.80522 | 0.88522 |
| 0.93263 | 2.05330 | -1.0493 | 1.13088 |
| 1.01519 | 1.95369 | -0.9681 | 0.97384 |
| 0.98899 | 2.0114 | -1.0102 | 1.02135 |
Solusi yang tepat dari sistem ini adalah (1, 2, −1, 1).
Contoh menggunakan Python dan NumPy
Prosedur numerik berikut hanya melakukan iterasi untuk menghasilkan vektor solusi.
def jacobi(A, b, x_init, epsilon=1e-10, max_iterations=500):
D = np.diag(np.diag(A))
LU = A - D
x = x_init
for i in range(max_iterations):
D_inv = np.diag(1 / np.diag(D))
x_new = np.dot(D_inv, b - np.dot(LU, x))
if np.linalg.norm(x_new - x) < epsilon:
return x_new
x = x_new
return x
# problem data
A = np.array([
[5, 2, 1, 1],
[2, 6, 2, 1],
[1, 2, 7, 1],
[1, 1, 2, 8]
])
b = np.array([29, 31, 26, 19])
# you can choose any starting vector
x_init = np.zeros(len(b))
x = jacobi(A, b, x_init)
print("x:", x)
print("computed b:", np.dot(A, x))
print("real b:", b)
Menghasilkan keluaran:
x: [3.99275362 2.95410628 2.16183575 0.96618357] computed b: [29. 31. 26. 19.] real b: [29 31 26 19]
Lihat pula
- Metode Gauss–Seidel
- Relaksasi berlebihan berturut-turut
- Metode berulang§Sistem linier
- Propagasi Keyakinan Gaussian
- Pemisahan matriks
Referensi
- Sahid. 2005. Pengantar Komputasi Numerik dengan MATLAB. ANDI, Yogyakarta
Pranala luar
- (Inggris) Black, Noel; Moore, Shirley; and Weisstein, Eric W. "Metode Jacobi". MathWorld.
{{cite web}}: Pemeliharaan CS1: Banyak nama: daftar penulis (link) - Jacobi Method from www.math-linux.com
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.