Carian binari untuk fungsi monoton


Carian binari boleh digunakan bukan sahaja untuk mencari elemen dalam tatasusunan, tetapi juga untuk mencari punca persamaan dan nilai fungsi monotonik (bertambah atau menurun).

Marilah kita diberikan fungsi monotonik f dan beberapa nilai C fungsi ini. Cari nilai argumen x bagi fungsi ini, supaya \(f(x)=C\).
 
Contoh fungsi monotonik yang semakin meningkat:


Kami memilih sempadan sedemikian di mana nilai fungsi adalah betul-betul lebih besar dan betul-betul kurang daripada nilai yang diberikan. Mari pilih nilai di tengah segmen ini. Jika ia kurang daripada yang diberikan, maka kita mengalihkan sempadan kiri ke tengah segmen. Jika tidak, kami akan mengalihkan sempadan kanan. Seterusnya, kami mengulangi proses menyempitkan sempadan. Tetapi ada masalah ialah bila hendak berhenti mencari. Baca lebih lanjut di sini.
 
Sebagai contoh, pertimbangkan masalah mencari punca kuasa dua nombor x. Punca kuasa dua x (ditandakan dengan \(\sqrt x\)) ialah nombor y supaya < span class="math-tex">\(y^2 = x\).
Mari kita rumuskan masalah seperti berikut: untuk nombor nyata x (\(x >= 1\)) cari punca kuasa dua dengan ketepatan tidak kurang daripada 5 aksara selepas titik.
 


Memilih sempadan segmen untuk carian

Memandangkan kita tidak boleh menyemak keseluruhan infiniti nombor, kita perlu mentakrifkan sempadan carian untuk punca. Mula-mula, mari cari sempadan kiri, pilih titik negatif sewenang-wenangnya (contohnya: -1). Kami akan menggandakannya sehingga nilai di dalamnya lebih besar daripada nilai yang diberikan. Untuk mencari sempadan yang betul, kami memilih titik positif arbitrari (contohnya: 1). Kami akan menggandakannya sehingga nilai fungsi pada ketika ini kurang daripada yang ditentukan.


Atau, jika kita mengetahui dengan tepat sempadan carian, kita boleh mengambil 1 sebagai sempadan kiri dan nombor itu sendiri x.
Selepas itu, kami membahagikan segmen semasa kepada separuh, segi empat sama bahagian tengah dan jika ia lebih besar daripada x, kemudian gantikan muka atas, jika tidak  bawah.
 
Pelaksanaan akhir:

di mana,
eps - ketepatan penyelesaian yang mesti dicari,
x - nombor yang diberikan yang punca kuasa duanya kami cari,
m - nombor di mana hasil akan disimpan selepas algoritma dilaksanakan.