Metode Bagi Dua (Bisection) Sederhana Dengan Python

intro metode bagi dua (postingan ini)

Metode Bagi Dua adalah salah satu metode numerik tertutup untuk menyelesaikan sistem persamaan non linier.Sistem persamaan non linier memang tidak bisa diselesaikan scr langsung untuk mendapatkan solusi eksak kecuali sistem persamaan kuadrat yang bisa diselesaikan dengan pemfaktoran maupun rumus ABC.

Untuk sistem persamaan non linier sendiri bisa diselesaikan dengan metode numerik (metode memperkirakan ) yang bisa dibagi menjadi 2 yaitu

Metode Tertutup,maksudnya di sini adalah kita harus punya 2 nilai awal yang mengurung solusi lalu kita lakukan perulangan terus-menerus sampai selisih dengan solusi sangat kecil sehingga bisa kita abaikan.Metode tertutup ini hampir selalu berhasil untuk menemukan solusi karena solusi sendiri dikurung oleh 2 nilai awal yang kita tentukan (selalu konvergen)

Contoh metode tertutup : Bagi Dua dan Regula-Falsi

Metode Terbuka, dalam metode ini kita tidak butuh kurungan metode ini lebih cepat untuk menemukan solusi dari pada metode tertutup namun terkadang nilai yang diberikan malah divergen (menjauhi solusi)

Contoh metode terbuka : Iterasi Titik Tetap, Newton Raphson, dan Secant

Kali ini saya akan membahas dulu metode bagi dua untuk yang lain mungkin saya bahas di lain post

Algoritma metode bagi dua cukup sederhana yaitu :

1.Tentukan 2 titik yang mengurung solusi misalnya a dan b
Catatan : a akan memberikan nilai negatif jika dimasukkan ke persamaan
               b akan memberikan nilai positif jika dimasukkan ke persamaan
2. akar/solusi untuk perulangan adalah (a+b)/2 misalkan adalah c
3. masukkan c ke persamaan non linier nya
4.Jika hasilnya kurang dari 0 maka ganti nilai a dengan c
5.Jika hasilnya lebih dari 0 maka ganti nilai b dengan c
6.Lakukan perulangan sebanyak yang kalian inginkan
Kita akan memakai Python saja supaya kita lebih mudah untuk menemukan solusi sedekat mungkin

misalnya kita akan mencari solusi dari c³ - 2c² + 5c -10 = 0

masukkan code ini di lembar kerja Python kalian

a = 2 # a dan b adalah nilai untuk mengurung solusi
b = 3
while b-a >=0.001:#perulangan terus dilakukan selama b-a lebih dari 0,001
    c = (a+b)/2 #nilai c untuk perulangan (solusi sementara)
    if c**3-2*c**2+5*c-10<0:
        a=c
    elif c**3-2*c**2+5*c-10>0:
        b=c
    else:
        print("Akar nya adalah", c)
        break
    print("Akar yang terdekat adalah",c)

code untuk metode bagi dua python


Silahkan run untuk mengetahui hasilnya

hasil run program

Di perulangan yang terakhir di dapat solusi c = 2.0009765625

atau supaya lebih detail kita bisa mengubah nilai 0.001 menjadi 0.0001 maka beginilah kalau di run

hasil run program 2

kita mendapatkan 2.00006103515625 sebagai solusi akhir


Penjelasan :
While adalah code untuk terus melakukan perulangan selama kondisi masih terpenuhi jika kondisi sudah tidak terpenuhi maka perulangan akan berhenti

Dalam program di atas,program akan terus berjalan jika b-a lebih dari 0.001

Break adalah untuk menghentikan perulangan For atau While jika kondisi tertentu sudah dipenuhi

Dalam program di atas bila b-a sama dengan 0 maka perulangan .akan berhenti

** untuk menyatakan pangkat di python
/ untuk menyatakan bagi di pyhon











EmoticonEmoticon