2017/05/25

schedule

04:00 睡眠 09:50 起床 (一度目)
12:00 起床 (二度目)・朝食
14:00 出家
14:45 研究室
22:00 研究室出
23:00 帰宅・風呂
23:30 電話 (-24:30)

やったこと

  • 研究 (ゼミ1.5h、研究5h)

コメント

  • 研究があまり進まない。B4の初期に読んだ関連論文など、知識が未熟なこともあってあまり内容を把握できていなかった(今になってふと見てみたら一番内容が近かった…)。
  • 論文にも間違いはある。実装して上手く動かずウンウン唸っていたら論文が間違っていた。時たまある。
  • 自分の中の知識との繋がりが感じられない。頭が悪い。キツい。
  • MATLABはドキュメントが役に立たない事がある(i.e) 不完全Gamma関数の引数の説明、型についてだけじゃない。)

MATLABのドキュメントを鵜呑みにしていた所でミスがあった。下側不完全Gamma関数 \gamma(\nu, z)、上側不完全Gamma関数 \Gamma(\nu, z) なるものを今使っているが、これは

\displaystyle \gamma(\nu, z) = \int_{0}^{z} t^{\nu - 1} e^{-t} dt, \quad \Gamma(\nu, z) = \int_{z}^{+\infty} t^{\nu - 1} e^{-t} dt
というもので、足すとGamma関数になる。

\displaystyle \gamma(\nu, z) + \Gamma(\nu, z) = \int_{0}^{+\infty} t^{\nu - 1} e^{-t} dt = \Gamma(\nu)

あまりdocumentが多くなく(ちょっと調べただけ)、よく参考になるのは以下の2つのサイト。
DLMF: 8 Incomplete Gamma and Related Functions
不完全ガンマ関数:特殊関数グラフィックスライブラリー Special Functions

さて、時々 \Gamma(\nu)で割って正規化したものも用いられる。

P(\nu, z) = \dfrac{\gamma(\nu, z)}{\Gamma(\nu)}, \quad Q(\nu, z) = \dfrac{\Gamma(\nu, z)}{\Gamma(\nu)}


\displaystyle P(\nu, z) + Q(\nu, z) = 1

この不完全Gamma関数はMATLABで計算できる。igamma()とgammainc()である。igamma()は上側不完全Gamma関数 \Gamma(\nu, z) を求める。積分下端を複素数とできる。gammainc()は、defaultでは下側不完全Gamma関数を計算するが、optionを与えて上側不完全Gamma関数を計算できる。

これらの関数の分かりにくいのは、igamma()は \Gamma(\nu, z) を計算するが、gammainc()は正規化された P(\nu, z), Q(\nu, z) を計算することだ。 下側不完全Gamma関数で積分上端 z複素数である場合の計算が必要で、これはigamma()を用いて行うのだが、igamma()のdocumentの補足欄だけ読んでいたので気付かなかった。ややこしい。