Re: [討論] matlab算期望值

作者: vacuityhu (真空管)   2015-07-07 22:36:57
※ 引述《vacuityhu (真空管)》之銘言:
: 我需要算一個很少見的分布的期望值
: 叫做non-central chi distribution
: 而且我要算的積分範圍不是全部
: 是一個常數c到inf
: 這邊我採用常見的int指令去算
: syms x,i,a;
: int((x-a)^2*pdf,x,a*c,inf)
: pdf就是我這分布的pdf,a是另一個變數
: 到這裡都還好解決,可是後面問題來了
: 因為這分布的pdf中夾了一個
: symsum(f(x,i),i,0,inf)
: f是一個很醜的函數
: 而且這個summation雖然收斂,但是沒有公式解
: 所以這邊matlab總是整理不出來sum的式子
: 導致int那邊也做不出多項式,只能回傳int式子給我
: 因為我後面還要對a作微分求微分等於零的a'
: 所以他int之後不給我多項式的話diff跟solve就會error
: 想請教板上的各大神們
: 是否有別的辦法可以算這期望值??
: 因為我這原本的思路int->diff->solve看來是行不通了
經過一個禮拜的研究我終於找到方法了...
雖然板上應該不會有人遇到跟我一樣需要先積x再微a再求根的問題
不過這個non-central chi distribution本身還是挺麻煩的
在這裡分享一下我是怎麼處理的
首先假設隨機變數x,自由度k,參數i(wiki中的lambda)
pdf在wiki上有,我就不贅述,直接寫作pdf
根據wiki, pdf中參有一個大I函數叫作modified Bessel function of the first kind
原先這部分我是用symsum硬寫
但是因為這大I函數是無窮級數會爆
所以原本我做不動
這個大I函數在matlab中可找到對應的指令besseli(nu,Z)
第一格放下標,第二格放變數
經此代換後不論是要算E(x)還是E(x^2)還是E((x-c)^2)都ok
或是你取期望值的範圍不是0到inf也ok
或是要算diff也沒問題
順便再分享一個
這分佈的mean也夾雜一個很少見的函數叫generalized Laguerre polynomial
關於這個函數的定義請參考
http://mathworld.wolfram.com/ConfluentHypergeometricFunctionoftheFirstKind.html
當中提到
(m+n)!
L(x)=

Links booklink

Contact Us: admin [ a t ] ucptt.com