テイラー展開 複素関数 特性関数 キュムラント

  • こちら

ryamada22.hatenablog.jp
で、確率測度とかモーメント母関数とか特性関数とかキュムラントとかについて書いている

  • \psi(t)=\int e^{ist} d\nu (s)とかいう複素関数積分になっている関数をテイラー展開して
  • \psi(t) = \sum_{n \ge 0} \frac{\alpha_n}{n!} (it)^n; \alpha_n = i^{-n} \psi^{(n)}(0)というような係数列を作りたい
  • Rにはpracmaパッケージにtaylor()関数があって、n階導関数を階乗で除した係数\frac{f^{(n)}(0)}{n!}を降順に返してくれるのだけれど、このあたりをちょっと丁寧に確認しておきたい
  • taylor()関数は複素関数を取って、f(t) = \sum_{i=0}^{\infty} c_i  t^iの係数c_iを返してくれる。実際には、c^8程度までを返す仕様になっている。複素関数の場合にはc_i複素数になっている
  • 今、確かめたいのは、\psi(t) = \sum_{n \ge 0} \frac{\alpha_n}{n!} (it)^n; \alpha_n = i^{-n} \psi^{(n)}(0)とするときの\alpha_nの値だったり、\psi^{(n)}の値だったり、tを与えて、それを(it)^nにしたりするあたりが本当にそうなっているのかの検算
  • taylor()関数の返り値を使ってa_n,\psi^{(n)}(0)を算出し、それをつかって、オリジナルの関数の近似値が計算できることを以下で確かめる

  • こうしてやると、特性関数の係数a_nと、キュムラント(特性関数の対数関数)の係数k_n\log{\psi(t)} = \sum_{n=1}^m k_n \frac{(it)^n}{n!} + o(t^m)との間に、組み合わせ的な整数であらわされる関係が現れる
  • そのあたりのことはcumulants-momonts relationという話があるこちら組み合わせ論ともつながる
my.binom.psi.log <- function(t){
	tmp <- my.binom.psi(t)
	return(log(tmp))
}
> my.an(my.binom.psi,0,8)
$an
[1] 1.0087508+0i 0.0000000+0i 0.9995117+0i 0.0000000+0i 1.0000159+0i 0.0000000+0i 1.0000000+0i
[8] 0.0000000+0i 1.0000000+0i

$drv
[1]  1.0087508+0i  0.0000000+0i -0.9995117+0i  0.0000000+0i  1.0000159+0i  0.0000000+0i
[7] -1.0000000+0i  0.0000000+0i  1.0000000+0i

> my.an(my.binom.psi.log,0,8)
$an
[1] -273.982768+0i    0.000000+0i   16.007480+0i    0.000000+0i   -2.000005+0i    0.000000+0i
[7]    1.000000+0i    0.000000+0i    0.000000+0i

$drv
[1] -273.982768+0i    0.000000+0i  -16.007480+0i    0.000000+0i   -2.000005+0i    0.000000+0i
[7]   -1.000000+0i    0.000000+0i    0.000000+0i