Buatlah suatu program yang bisa menerima input untuk mengaproksimasi akar dari fungsi π(π₯) pada interval [0. 01, 0. 4 + (π‘ + 1)/10], dengan t = ((NPM) mod 3) - 1 , dan
dengan
Note: pada python (NumPy dan SymPy), notasi ln(x) dinyatakan dengan fungsi log(x)
serta batas toleransi 10^ -7 atau tujuh angka di belakang koma, dan batasan 50 iterasi (sehingga metode dipaksa berhenti setelah 50 iterasi walaupun batas toleransi belum tercapai, agar tidak mungkin terjadi infinite loop). Perhatikan bahwa fungsi Anda beserta intervalnya mengandung t, yang berarti setiap fungsi berbeda-beda tergantung NPM Anda.
Metode yang Digunakan
Metode aproksimasi akar yang wajib Anda gunakan adalah:
a. Metode Bisection (tampilkan titik tengah saja); dan
b. Metode Fixed-Point (dengan π(π₯) = π₯ β π(π₯)) dan tebakan awal = batas bawah interval.
c. Metode Newton biasa (dengan turunan analitik) dengan tebakan awal = batas bawah interval;
d. Metode Newton dengan Beda Hingga (tebakan awal = batas bawah interval, nilai β = 10^ β12 );
e. Metode Secant (tebakan awal π0 = batas bawah interval dan π1 = batas atas interval);
f. Metode Regula Falsi (tampilkan titik tengah saja); dan
g. Metode Steffensen (dengan π(π₯) = π₯ β π(π₯) dan tebakan awal = batas bawah interval).
Dalam menampilkan hasil iterasi dari metode-metode yang digunakan, program diharapkan bisa menampilkan tabel iterasi besar yang membandingkan antara dua atau lebih metode sekaligus. Apabila memungkinkan, cukup buat satu tabel iterasi saja di mana hasil semua metode ditampilkan semua di satu tabel yang besar; namun, kalau perlu, silakan pecah tabel tersebut menjadi beberapa bagian, selama bukan hanya satu metode per tabel.
Error Handling
a. Program diharapkan tidak menjadi error ketika ada pembagian nol, melainkan program tetap menampilkan tabel iterasi, dengan data βNaNβ (dari numpy) untuk mengisi kekosongan hasil iterasi setelah terjadinya pembagian nol atau ketika program gagal menemukan akar karena hal lain (misalkan pada bisection jika f(a).f(b)>0).
b. Ketika salah satu metode mencapai batas toleransi sebelum metode lainnya, diharapkan sisa data pada tabel menjadi kata βSelesaiβ, kata βFinβ (atau βFinishedβ), huruf βVβ (centang), atau semacamnya (jangan lupa berikan keterangan arti kata/hurufnya) yang menandakan bahwa metode tersebut telah selesai sebelum metode lainnya.
Kerapian Program
a. Keseluruhan program Anda dikemas di dalam satu subprogram atau fungsi (function) yang bisa menerima sembarang fungsi, batas toleransi, batas iterasi, nilai h, interval dan/atau satu/dua tebakan awal (boleh melalui input user maupun melalui argumen/parameter fungsi).
b. Program Anda bisa berjalan berulang kali (dengan beberapa kali input dan output) sesuai permintaan user, tanpa harus berhenti dan di-run ulang secara manual terlebih dahulu.
Kesimpulan
Bandingkan hasil dari tiap metode yang Anda gunakan. Analisa hasil yang Anda dapatkan pada tabel iterasi. Ceritakan kesimpulan dari hasil tersebut, yaitu dapat mengenai metode mana yang berhasil selesai dan memenuhi toleransi, metode mana yang paling cepat konvergen, metode mana yang gagal (jika ada), dan sebagainya.