方程式の数値解法
を満たす を反復で求める。
主な方法#
| 方法 | 収束 | 必要なもの | 保証 |
|---|---|---|---|
| 二分法 | 線形 | 符号が変わる区間 | 必ず収束 |
| 割線法 | 超線形(約 1.62 次) | 2 つの初期値 | なし |
| Newton 法 | 二次 | 導関数、良い初期値 | なし |
| Brent 法 | 実用上高速 | 区間 | 必ず収束 |
速さと確実さの綱引き#
Newton 法は最も速いが、初期値が悪いと発散する。 二分法は遅いが必ず収束する。
Brent 法は両者を組み合わせ、
速い手法を試しつつ、うまくいかなければ二分法に落とす。
SciPy の brentq が既定手法になっているのはこのため。
実務では「速いが不確実」より「そこそこ速くて確実」が選ばれる。
停止条件#
だけでは不十分。 の傾きが小さいと、 が小さくても は解から遠い。 も併せて見る。
参考文献#
- William H. Press et al. Numerical Recipes, 3rd ed. Cambridge University Press, 2007. https://numerical.recipes/
- Richard P. Brent. Algorithms for Minimization without Derivatives. Prentice-Hall, 1973 / Dover, 2013. https://store.doverpublications.com/products/9780486419985