Program Regula Falsi Menggunakan Python

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.
Postingan kali ini bermaksud untuk memecahkan masalah perhitungan tersebut dengan komputer dan bahasa pemrograman python. Untuk sekedar catatan saya menggunakan python 3.7 (jadi bisa menyesuaikan selanjutanya).

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:

'''
email    : xsufyan@gmail.com
code    : Regula Falsi Metode Numerik Persamaan Tak Linear
f(x)    : cos(x)-sin(x)
'''
maksud dari kode tersebut adalah commentar yang artinya teks tidak akan diproses dari tanda ''' pertama sampai ''' selanjutnya.

import math as m
mengimport library math (didalamnya terdapat fungsi mencari nilai sin/cos). library tadi bisa digunakan dengan inisial nama m(lihat code fungsi f(x)).

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)
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.

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()

1 komentar untuk "Program Regula Falsi Menggunakan Python"

Berilah komentar, saran, dan kritik dengan bijak