x = 2が方程式の解なのに、
初期値ですでに中点がぴったし解になってますね。
それで関数nibunのなかでは <と>しか条件がないから
ぴったり解だったときには条件がに当てはまらずにスルーされます。
んでいつまでも値が変わらないので延々と動き続けます。

それと、下のほうのwhileは abs(lk-uk) > delta だと思うのですが。