24小时热门版块排行榜    

CyRhmU.jpeg
查看: 707  |  回复: 0

54zhaoyi

新虫 (初入文坛)

[求助] 被积函数复杂的n重积分求助

有15个参数 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15相互独立,且都服从于对数指数分布。现在要求15个参数之和小于某固定值的概率。
为简化计算,参数个数减少为8个,求参数之后小于16的概率。我的代码如下

syms x x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15;
X=[x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15];
for n=1:15
    x=X(n);
    u=noco(1,n);   %密度函数中的参数之一
    b=noco(2,n);   %密度函数中的参数之一
    y1=x*b*sqrt(2*pi);  %密度函数的分子
    y2=exp((-1)*power((log(x)-u),2)/(2*power(b,2))); %密度函数的分母
    p(n)=y2/y1;   %密度函数
end
P1=int(p(1),x1,0,16-x2-x3-x4-x5-x6-x7-x8);
disp('第1个位置完成');
P2=int(P1*p(2),x2,0,16-x3-x4-x5-x6-x7-x8);
disp('第2个位置完成');
P3=int(P2*p(3),x3,0,16);
disp('第3个位置完成');
P4=int(P3*p(4),x4,0,16-x5-x6-x7-x8);
disp('第4个位置完成');
P5=int(P4*p(5),x5,0,16-x6-x7-x8);
disp('第5个位置完成');
P6=int(P5*p(6),x6,0,16-x7-x8);
disp('第6个位置完成');
P7=int(P6*p(7),x7,0,16-x8);
disp('第7个位置完成');
P8=int(P7*p(8),x8,0,16);
disp('第8个位置完成');
double(P8)     % 显示数值结果

以上代码需要用到一个矩阵‘noco’,noco 是2*15的矩阵,矩阵如下
0.80        1.15        0.97        0.91        0.86        0.86        0.82        0.79        0.76        0.74        0.73        0.71        0.71        0.67        0.64
0.40        0.24        0.25        0.27        0.26        0.26        0.26        0.27        0.24        0.25        0.19        0.20        0.21        0.20        0.23

运行代码后可以出现‘第8个位置完成’,但迟迟不出现“P8”的数值。

请问大神,这个密度函数也比较麻烦,多重积分很复杂,有没有更好的方式计算? 我这个代码已经还没运行出结果,是代码问题吗
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 54zhaoyi 的主题更新
信息提示
请填处理意见