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