693びぼーろく; 部分積分を使わないで積分したい時

被積分関数の形によっては一時的に複素数にすると便利だったりするかも。例えば以下のような場合。 $\displaystyle \int_0^L dx e^{-kx}\sin \frac{\pi x}{L} $ 正統的な方法としては部分積分だろうなと思うけど、一時的に複素数にすることで次のように計算できる。 $\displaystyle \int_0^L dx e^{-kx}\sin \frac{\pi x}{L}=\text{Re}\int_0^L dx e^{-kx}e^{i\frac{\pi x}{L}}=\text{Re}\frac{1}{-k+i\frac{\pi}{L}}\left[-e^{-kL}-1\right]=-\frac{k}{k^2+\frac{\pi^2}{L^2}}\left[1+e^{-kL}\right]$

362びぼーろく; 原稿

只今絶賛原稿執筆中。この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点必要)

そうすると、一回数値計算をしておけば後は自動的に「最小値」「二次係数」を決めることができる。
面倒なのでどの程度の精度があるのか調べてないけど、大体良さそうな雰囲気。
知り合いに相談すると「最小二乗法にしたら?」と言われたが結局よく分からないので採用せず。

コメント

このブログの人気の投稿

471びぼーろく; ffmpegの音・映像ずれ修正

329びぼーろく; latexでヤング図を書く

531びぼーろく; python上でのヤコビ楕円関数