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]$

266びぼーろく;maximaでの二分法

数値計算でニュートン法を使おうと思ったら全然動かない。

今回は変数も少ないので二分法に挑戦。
maximaにはパッケージがないので、自分で作るしか無い。
面倒なのでgoogle先生に教えを請うと、すぐに答えが返ってきた。

まず、予め解きたい方程式をfとして与える。
次に解の範囲をgnuplot 等で調べ、解xの範囲をa,bとして与える。
さらに求めたい解の精度をrで与える。

以下はそのコピペ。

bs(f,a,b,r):=block(
     f(x):=f,
     c:a,
     for i:1 while abs(subst(c,x,f(x)))>r do(
     c:(a+b)/2,
     if subst(c,x,f(x))=0 then return(float(c)),
     if (subst(a,x,f(x)))*(subst(c,x,f(x)))<0 b:c="" p="" then="">     else a:c
     ),
     return(float(c))
     );

うまく動いたので感動。ありがとうございました。
多変数の二分法ってあるんだろうか?


さて、あまりに寒いので同僚とおでんを食べに行った。せりが美味しかった。
ついでに二次会で海鮮丼を食べていたので激写。よく食べるなぁ。




さらに家に帰ると室温が5度を切っていたので、コタツを出した。ぬくぬくで幸せ。

コメント

このブログの人気の投稿

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

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

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