Metode Secant merupakan merupakan perbaikan dari metode regula-falsi dan newton raphson dimana kemiringan dua titik dinyatakan sacara diskrit, dengan mengambil bentuk garis lurus yang melalui satu titik. Metode Secant digunakan untuk menaksirkan akar dengan menggunakan diferensi daripada turunan untuk memperkirakan kemiringan/slope. (Blog Universitas Brawijaya)
x2 = x1 – ( (f(x1) (x1 – x0)) / ( f(x1) -f(x0) )
Metode secant merupakan salah satu metode terbuka untuk menentukan solusi akar dari persamaan non linear. Dengan prinsip utama:
Ambil dua titik awal, misal x0 dan x1. Ingat bahwa pengambilan titik awal tidak disyaratkan alias pengambilan secara sebarang. Algoritma Metode Secant adalah sebagai berikut:
Daftar variabel dan operasi aritmatika yang digunakan adalah sebagai berikut (javascript):
Hanya ubah pada daerah yang bisa diubah nilai variabelnya, dan jangan ubah nama variabelnya
try {
const timeStart = Date.now();
// ⬇ -- Daerah yang bisa diubah nilai variabelnya -- ⬇
const f = (x) => e ** x - 5 * x ** 2;
const epsilon = 0.00001;
const r = 20;
const x0 = 0.5;
const x1 = 1;
// ⬆ -- Batas daerah -- ⬆
const e = 2.7182818285;
const calcX2 = (f, x0, x1) => x1 - (f(x1) * (x1 - x0)) / (f(x1) - f(x0));
const comma = epsilon.toString().split(".")[1].length + 1;
let tempValue = {x0, x1};
let result = [];
for (let iteration = 0; iteration <= r; iteration++) {
let f_x0 = f(tempValue.x0);
let f_x1 = f(tempValue.x1);
let x2 = calcX2(f, tempValue.x0, tempValue.x1);
let f_x2 = Math.abs(f(x2));
result.push({
"x0": tempValue.x0.toFixed(comma),
"x1": tempValue.x1.toFixed(comma),
"f(x0)": f_x0.toFixed(comma),
"f(x1)": f_x1.toFixed(comma),
"x2": x2.toFixed(comma),
"f(x2)": f_x2.toFixed(comma),
});
if (f_x2 < epsilon) break;
tempValue = {x0: tempValue.x1, x1: x2};
}
const timeEnd = Date.now();
const time = timeEnd - timeStart;
renderTable(result, time)
window.scrollBy(0, 5000)
} catch (error) {
renderError(error.message)
}