Dimas Fadilah Akbar_5025211010
Abdullah Yaskyur Bifadhlil Midror_5025211035
Achmad Khosyi' Assajjad Ramandanta_5025211007
Arkana Bilal Imani_5025211034
Duevano Fairuz Pandya_5025211052
- Python 3.9.12
- Code Editor
- numpy
- math
- matplotlib
Pada praktikum komputasi numerik modul 1 membutuhkan 2 instalasi library yaitu numpy dan matplotlib. Kita bisa lakukan instalasi dengan menggunaka pip.
pip install numpy
pip install matplotlib
Implementasikan algoritma metode Bolzano menjadi sebuah program komputer yang dapat menampilkan proses iteratif numerik, lengkap dengan grafik fungsinya.
import numpy as np
import matplotlib.pyplot as plt
import math
library numpy dibutuhan untuk membuat array dengan isi sekumpulan nilai xr dan juga berisi banyak iterasi yang kita lakukan. library matplotlib digunakan untuk membuat grafik dengan parameter array yang diberikan.
xl = float(input("masukkan x lower: "))
xu = float(input("masukkan x upper: "))
iterate = int(input("masukkan jumlah interasi: "))
xt = 1.26611328125
code diatas merupakan inputan untuk x lower, x upper, dan jumlah iterasi yang kita inginkan. Kemudian juga di deklarasi x true nya yaitu 1.26611328125 yang digunakan untuk mencari error truenya.
list_xr = list()
list_iterate = list()
list_xr merupakan array yang akan menyimpan value dari xr untuk tiap iterasi, sedangkan list_iterate akan menyimpan nilai iterasinya.
def function(x):
return x*x + 9*x - 13
def bisection():
global xl, xu
for i in range(iterate):
xr = (xl+xu)/2
list_xr.append(xr)
list_iterate.append(i+1)
print(f"iterasi ke - {i+1}")
print(f"xu dan xl: {xu} || {xl}")
print(f"xr dan xt: {xr} || {xt}")
et = round(math.fabs((xt-xr)/xt), 5)
print(f"et: {et}\n")
fxl = function(xl)
fxr = function(xr)
mul = round(fxl * fxr, 3)
if(mul == 0):
print(f"hasil faktor: {xr} ")
return
elif (mul) < 0:
xu = xr
elif mul > 0:
xl = xr
Kode diatas merupakan implementasi dari metode bolzano untuk mencari faktor dari sebuah fungsi yang telah ditentukan.
plt.title("result")
plt.xlabel("iteration")
plt.ylabel("Result of xr")
plt.plot(list_iterate, list_xr)
plt.show()
Dari x lower, x upper, dan iterasi yang diinputkan kita bisa lakukan plotting menggunakan library matplotlib dengan parameter list_iterate sebagai absis dan list_xr sebagai oordinatnya.
xl = -1
xr = 2
iterate = 13
dari contoh inputan diatas, degnan mengimplementasikan pada program yang telah dibuat maka didapatkan hasil:
masukkan x lower: -1
masukkan x upper: 2
masukkan jumlah interasi: 13
iterasi ke - 1
xu dan xl: 2.0 || -1.0
xr dan xt: 0.5 || 1.26611328125
et: 0.60509
iterasi ke - 2
xu dan xl: 2.0 || 0.5
xr dan xt: 1.25 || 1.26611328125
et: 0.01273
iterasi ke - 3
xu dan xl: 2.0 || 1.25
xr dan xt: 1.625 || 1.26611328125
et: 0.28346
iterasi ke - 4
xu dan xl: 1.625 || 1.25
xr dan xt: 1.4375 || 1.26611328125
et: 0.13536
iterasi ke - 5
xu dan xl: 1.4375 || 1.25
xr dan xt: 1.34375 || 1.26611328125
et: 0.06132
iterasi ke - 6
xu dan xl: 1.34375 || 1.25
xr dan xt: 1.296875 || 1.26611328125
et: 0.0243
iterasi ke - 7
xu dan xl: 1.296875 || 1.25
xr dan xt: 1.2734375 || 1.26611328125
et: 0.00578
iterasi ke - 8
xu dan xl: 1.2734375 || 1.25
xr dan xt: 1.26171875 || 1.26611328125
et: 0.00347
iterasi ke - 9
xu dan xl: 1.2734375 || 1.26171875
xr dan xt: 1.267578125 || 1.26611328125
et: 0.00116
iterasi ke - 10
xu dan xl: 1.267578125 || 1.26171875
xr dan xt: 1.2646484375 || 1.26611328125
et: 0.00116
iterasi ke - 11
xu dan xl: 1.267578125 || 1.2646484375
et: 0.0
hasil faktor: 1.26611328125
maka didapatkan hasil akhir faktornya adalah 1.26611328125.
berikut merupakan grafik yang memplot hasil xr pada tiap iterasi yang dilakukan.