前回の続き。
https://wetch.hatenablog.com/entry/2018/12/08/221328
陰解法を、WikipediaとQiitaを読みながらデッカー法で実装。
ブレント法 - Wikipedia
qiita.com
ブレント法は理解できなかったよ…。
今回はまったのは、初期値を求める部分。
になる解 を探すのに、ある区間で の符号が逆になる2点を探そうとしてるのに全然見つからない。
何でかとずっと調べてて、 のグラフを書いてみてやっと判明。こんな形になってた。
あるところで発散して、それより左側は計算できない「未定義」状態だった・・・。
常にこうなるわけではなくパラメータがシビアな時だけ起きる現象だし、未定義の場合は関数の戻り値を 0 にしてたから気づかなかった。
発散しないギリギリの点を推定する方法を必死で考えて何とかこの問題を回避できた。
一度初期値が決まってしまえば、グラフの形は滑らか&単調なので解はすんなりと求められる。
デッカー法で実装はしたが、実はセカント法だけしか使っていない模様。
次の課題:勉強しかけているオブジェクト指向でこのプログラムを書き直したい。