只今絶賛原稿執筆中。この2年間の結果なのでかなりのボリュームになりそう。 そのうち英語に自動翻訳してくれる機械が生まれてくれないかな...。 さて、今回微分せずに最小値(極値)における二次係数を求めるということをやった。 具体的にはこんなのが対象。 \[f(\alpha)=\int_0^\infty {\rm d} u ~ N(\cos(\alpha),u)\] 実際には$u$について$\infty$まで積分なんてできないのでここは数値計算させる。 そうすると、図を書くために$f(\alpha)$を数値的に求め、極値を求めるために$f'(\alpha)$を数値的に求めて、更に$f''(\alpha)$も数値的に求める必要がある。 そうすると時間がかかって仕方がない。 そこで、$\alpha$を$[0,2\pi]$の間で細かく分割してデータの羅列$(\alpha_0,f(\alpha_0)),(\alpha_1,f(\alpha_1)),\cdots$を作る。 ここから、最も値が小さい点を選び出すと、その前後の3つの点が最小値付近の三点を選んだことになる。最も小さい値を選ぶのはsortとかすれば簡単に得られるはず。 この3点を使って最小値付近の$f(\alpha)$のテイラー級数の二次近似 \[f(\alpha)=A+B(\alpha-\alpha_\text{min})^2+\cdots\] のパラメータ$A,B,\alpha_\text{min}$を決定することができる。 (3つパラメータがあるので3点必要) そうすると、一回数値計算をしておけば後は自動的に「最小値」「二次係数」を決めることができる。 面倒なのでどの程度の精度があるのか調べてないけど、大体良さそうな雰囲気。 知り合いに相談すると「最小二乗法にしたら?」と言われたが結局よく分からないので採用せず。