被積分関数の形によっては一時的に複素数にすると便利だったりするかも。例えば以下のような場合。 $\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]$
531びぼーろく; python上でのヤコビ楕円関数
- リンクを取得
- メール
- 他のアプリ
maximaから移行するにあたって色々と読み替え。pythonでは楕円関数はscipyに入っているらしい。あまり情報がないのでメモ。まず楕円関数は$y={\rm sn}(u,k)$は次の楕円積分の逆関数として定める:
\[u=\int_0^{\arcsin(y)} {\rm d}t \frac{1}{\sqrt{1-k^2\sin^2(t)}}\]
この$k$が母数(elliptic modulus)となる。 他にも${\rm cn}(u,k),{\rm dn}(u,k)$があるけど、調べればわかるので割愛。
さて、このヤコビ楕円関数をpython上で扱いたい場合にはscipyパッケージを使う。ただしelliptic modulus $k^2$の代わりにmを用いて表す。($m=k^2$)
import scipy
scipy.special.ellipj(u,m)
そうすると答えがリストとして返ってくる。その中身は $({\rm sn(u,\sqrt m)},{\rm cn(u,\sqrt m)},{\rm dn(u,\sqrt m)},\phi)$ となるので必要に応じて取り出す。
最後の項目$\phi$は楕円積分の結果を返してくる(らしい)。
それにしてもelliptic modulus の表記が色々あってややこしいと思うのは僕だけだろうか。
たまにmの代わりに$\sin \theta$を使う表記も見かけた気がする。
数値計算をしてみると、半年ぐらい前に解析的に求めた結果が実は間違っていたことが分かった。$\arcsin$の値域は$[-\pi/2,\pi/2]$なのに$[-\pi,\pi]$だと勘違いしていた。恥ずかしい...。
とはいえ予備的に始めた計算が割と順調に行き始めたのでちょっと満足。久しぶりに酒でも飲もうかな。
このブログの人気の投稿
471びぼーろく; ffmpegの音・映像ずれ修正
ちょっと迷ったのでメモ。 基本的な方法としては音ズレしている動画から音声ファイルと無音の動画ファイルを作成し、再結合する時に音もしくは映像を遅らせて結合する。(もっとうまいやり方があるかもしれないけど...) ffmpeg -ss 5.4 -i source.mp4 -ss 0.2 -i source.mp4 -map 0:a -map 1:v -to 0:6:27 -max_muxing_queue_size 2048 convert.mp4 -map 0:a は一番最初のファイルから音、 -map 1:v は二番目のファイルから映像を取り出すようにするオプション。上の場合、音声ファイルは5.4sから、映像は0.2秒から取り出し始めるはず。 ffmpegは癖があるなぁ。
329びぼーろく; latexでヤング図を書く
latexで今までヤング図 (young tableaux) 書くことになったのでその導入メモ。 youngtab.styが必要なのでまずはそのインストールから。 debian8 (jessie)では texlive-science に含まれているらしいのでいつもどおりインストールする。 aptitude install texlive-science インストールが終わったらtexのファイルに \usepackage{youngtab} を追加。 中が空の図を書きたいときは、\yng(...)を使う。書式は \yng(一番上の段の箱の数,二番目の段の箱の数,三番目の段の箱の数,...) で書く。具体的には \yng(1):箱一つ \yng(2):横に箱が二つ並ぶ \yng(3):横に箱が三つ並ぶ \yng(1,1):縦に箱が二つ並ぶ となる。従って\yng(3,2,1)は □□□ □□ □ が表示される。 中に字を入れたいときには\young(...)を使う。先ほどの数字の代わりに中に入れたい文字を入れる。 \young(a\ a,bb,c) とすると("\ " スラッシュ+スペースで空欄となる) □□□ □□ □ の中に a□a bb c が入ったヤング図が書ける。 さて、このままだとそれぞれのヤング図の下側が揃うように描画されるので、 \Yvcentermath1 と追記する。 これで高さが調節される。
コメント
コメントを投稿