Metode Numerik
Tugas 1
| Kontak | : \(\downarrow\) |
| clara.evania@student.matanauniversity.ac.id | |
| https://www.instagram.com/claraevania/ | |
| RPubs | https://rpubs.com/claradellaevania/ |
SOAL
\(x^3 + 2x^2 + 10x-20\)
func <- function(x) {
x^3 + 2 * x^2 + 10 * x -20
}
bisection <- function(f, a, b, n = 1000, tol = 1e-7) {
# Jika tanda-tanda fungsi pada titik yang dievaluasi, a dan b, hentikan fungsi dan kembalikan pesan.
if (!(f(a) < 0) && (f(b) > 0)) {
stop('signs of f(a) and f(b) differ')
} else if ((f(a) > 0) && (f(b) < 0)) {
stop('signs of f(a) and f(b) differ')
}
for (i in 1:n) {
c <- (a + b) / 2 # Menghitung Titik Tengah
# Jika fungsi sama dengan 0 di titik tengah atau titik tengah di bawah toleransi yang diinginkan,
# fungsi dan kembalikan root.hentikan
if ((f(c) == 0) || ((b - a) / 2) < tol) {
return(c)
}
# Jika iterasi lain diperlukan,
# periksa tanda-tanda fungsi pada titik c dan a dan tetapkan
# a atau b sesuai sebagai titik tengah yang akan digunakan pada iterasi berikutnya
ifelse(sign(f(c)) == sign(f(a)),
a <- c,
b <- c)
}
# Jika jumlah maksimum iterasi tercapai dan tidak ada root yang ditemukan,
# kembalikan pesan dan akhiri fungsi.
print('Too many iterations')
}
bisection(func,1,2)## [1] 1.368808