Contoh Soal yang dikerjakan :
Contoh sola yang dikerjakan berasal dari postingan sebelumnya di link berikut : Regulasi Falsi. Pada postingan sebelumnya dijelaskan :- f(x) = cos(x)-sin(x)
- salah satu contoh soal memberikan batasan pencarian nilai f(x) menjadi 0, diantara bilangan 0 dan 1. Dengan demikian nilai pembuat 0 ada diantara angka 0 dan 1.
Source Code :
'''
email : xsufyan@gmail.com
code : Regula Falsi Metode Numerik Persamaan Tak Linear
f(x) : cos(x)-sin(x)
'''
import math as m
def inputData():
a = float(input("Masukkan nilai tebakan awal A : "))
b = float(input("Masukkan nilai tebakan akhir B : "))
p = float(input("Masukkan tingkat presisi : "))
return (a,b,p)
def f(x):
return (m.cos(x)-m.sin(x))
def checkSyarat(a,b):
if(f(a)*f(b)<=0):
return True
else:
return False
def updateBatas(a,b):
c = a - f(a)*((b-a)/(f(b)-f(a)))
if(f(a)*f(c)<0):
return (a,c)
else:
return (c,b)
def process(a,b,presisi):
while(abs(f(a))>presisi and abs(f(b))>presisi):
a,b=updateBatas(a,b)
if(abs(f(a))>abs(f(b))):
return b
else:
return a
def main():
a,b,p=inputData()
if(checkSyarat(a,b)):
hasil=process(a,b,p)
print("hasilnya adalah "+str(hasil)+" ,dengan nilai f(x) "+str(f(hasil)))
else:
print("Sorry Wrong A and B")
main()
Hasil Program :
dengan menggunakan input sesuai dengan permintaan di contoh soal, yaitu range pencarian ada di 0 dan 1, serta presisi ada di 10^-7.hasilnya sebagai berikut :
x = 0.7853981577626147 dan nilai f(x) = 7.968858128926115e-09. Sesuai dengan hitungan manual di Regulasi Falsi.
Penjelasan Code:
'''maksud dari kode tersebut adalah commentar yang artinya teks tidak akan diproses dari tanda ''' pertama sampai ''' selanjutnya.
email : xsufyan@gmail.com
code : Regula Falsi Metode Numerik Persamaan Tak Linear
f(x) : cos(x)-sin(x)
'''
import math as mmengimport library math (didalamnya terdapat fungsi mencari nilai sin/cos). library tadi bisa digunakan dengan inisial nama m(lihat code fungsi f(x)).
def inputData():merupakan fungsi yang digunakan untuk tampilan user untuk mengisi nilai A, B, dan tingkat presisi. pertama input(...) digunakan untuk menerima inputan dari user yang nantinya akan berupa String maka float(...) digunakan untuk mengubah String tadi menjadi float.
a = float(input("Masukkan nilai tebakan awal A : "))
b = float(input("Masukkan nilai tebakan akhir B : "))
p = float(input("Masukkan tingkat presisi : "))
return (a,b,p)
def f(x):
return (m.cos(x)-m.sin(x))
def checkSyarat(a,b):
if(f(a)*f(b)<=0):
return True
else:
return False
def updateBatas(a,b):
c = a - f(a)*((b-a)/(f(b)-f(a)))
if(f(a)*f(c)<0):
return (a,c)
else:
return (c,b)
def process(a,b,presisi):
while(abs(f(a))>presisi and abs(f(b))>presisi):
a,b=updateBatas(a,b)
if(abs(f(a))>abs(f(b))):
return b
else:
return a
def main():
a,b,p=inputData()
if(checkSyarat(a,b)):
hasil=process(a,b,p)
print("hasilnya adalah "+str(hasil)+" ,dengan nilai f(x) "+str(f(hasil)))
else:
print("Sorry Wrong A and B")
main()
waww mantap
BalasHapus