Berdasarkan kebiasaan metode-metode untuk menyelesaikan masalah dalam fisika matematika dapat dibagi menjadi dua kelas, metode analitik (analytical methods) dan metode hampiran (aproximate methods) [1]. Dalam matematika beberapa masalah dapat dipecahkan secara analitik dan numerik, dengan metoda analitik lebih disukai karena lebih cepat dan solusinya eksak [2]. Solusi eksak dalam fisika digunakan untuk solusi yang menangkap keseluruhan aspek fisika dan matematika suatu masalah [3], karena tidak menggunakan aproksimasi [4] dan merupakan representasi simbolik [5], yang bila cukup dengan jumlah data berhingga akan menjadi bentuk tertutup atau closed form [6]. Dalam komputasi matematika metode iteratif (iterative method) merupakan prosedur matematika yang menggunakan nilai awal untuk menghasilkan rangkaian hampiran solusi yang lebih baik dengan kriteria penghentian tertentu, di mana metode ini berlawanan dengan metode langsung (direct method) yang menyelesaikan masalah dengan sejumlah berhingga rangkaian operasi [7].
Akar suatu persamaan polinomial dapat dicari dengan menggunakan metode langsung dan iteratif [8], dengan contoh metode langsungnya adalah metode kuadrat akar Graeffe [9] dan metode iteratifnya adalah metode bisection dan iterasi titik tetap [10]. Untuk persamaan kuadrat atau polinomial orde dua, formula kuadrat termasuk dalam metode langsung karena jumlah langkah operasi, yang meliputi operasi penjumlahan, pengurangan, pembagian dan perkalian dapat ditentukan, akan tetapi untuk polinomial dengan orde lebih tinggi metode ini sulit untuk digunakan, walapun ada [11].
Sistem persamaan linier, yang merupakan terjemahan dari system of linear equations (SLE) dan linear system of equations [12], dapat dipecahkan menggunakan metode langsung seperti eliminasi Gauss dan faktorisasi LU [13] atau metode iteratif seperti metode Gauss-Seidel dan Successive Over-Relaxation (SOR) [14].
Tabel 1 Perbandingan metode langsung dan iteratif untuk pemecahan SLE.
Metode | Langsung | Iteratif |
---|---|---|
Langkah | Tertentu bergantung ukuran matriks |
Fleksibel dengan memilih antara akurasi atau waktu komputasi |
Waktu komputasi | Dapat diperkirakan berdasarkan jumlah langkah |
Bergantung akurasi yang diinginkan |
Tepat untuk | Matriks kecil | Matriks besar dengan banyak nol |
Penghentian | Harus diselesaikan atau solusi belum diperoleh |
Minimal satu siklus, lalu sesuai akurasi yang diinginkan |
Metode langsung menggunakan sumber daya komputasi secara besar-besaran, akan tetapi amat bagus untuk menyelesaikan matriks berukuran kecil, handal dan cepat [15].
Sebagai contoh akan dipilih mencari satu akar dari suatu persamaan kuadrat dengan diskriminan $D > 0$.
import math
a = 1
b = -100
c = 196
D = b*b - 4*a*c
x = (-b - math.sqrt(D)) / (2*a)
print("x = ", x, sep='')
Program di atas merupakan penerapan metode langsung dengan menggunakan formula kuadrat. Kode dapat dicoba di OneCompiler 3xrdp6ggx. Bandingkan dengan kode berikut ini.
def f(x):
a = 1
b = -100
c = 196
y = a*x*x + b*x + c
return y
def fx(x):
a = 2
b = -100
y = a*x + b
return y
err = 10
eps = 1E-20
x = 0
i = 0
print(i, ": x = ", x, sep='')
while err > eps:
xnew = x - f(x)/fx(x)
err = abs(xnew - x)
x = xnew
i = i + 1
print(i, ": x = ", x, sep='')
Program kedua di atas merupakan penerapan dari metode iteratif yang dikenal sebagai metode Newton-Raphson. Kode dapat dicoba di OneCompiler 3xrdpfxwq.
Tabel 2 Mencari satu akar dari persamaan kuadrat dengan metode langsung dan iteratif.
Kelompok Metode |
Langsung | Iteratif |
---|---|---|
Metode | Formula Kuadrat | Newton-Raphson |
Fungsi | $f(x) = ax^2 + bx + c$ | $f(x) = ax^2 + bx + c$ |
Turunan fungsi |
Tidak perlu | $f’(x) = 2ax + b$ |
Persamaan | $\displaystyle x = \frac{-b - \sqrt{b^2 - 4ac}}{2a}$ | $\displaystyle x_{i + 1} = x_i - \frac{f(x_i)}{f’(x_i)}$ |
Tebakan awal |
Tidak perlu | $x = 0$ |
Keluaran | x = 2.0 |
0: x = 0 1: x = 1.96 2: x = 1.9999833472106578 3: x = 1.9999999999971112 4: x = 1.9999999999999998 5: x = 2.0 6: x = 2.0
|
Batas kesalahan perhitungan $\varepsilon$ |
Tidak perlu | $10^{-20}$ |
Dapat terlihat secara tersirat pada Tabel 2 bahwa jumlah langkah dengan metode langsung dapat diperkirakan, akan tetapi pada metode iteratif masih bergantung pada batas kesalahan perhitungan $\varepsilon$ yang diberikan.
Coba modifikasi program yang diberikan untuk fungsi kuadrat $f(x) = x^2 - 100x + 1875$ bagaimanakah hasilnya? Jangan gunakan alat bantu seperti Google [16].
— Sparisoma Viridi (@6unpnp) January 25, 2022