24小时热门版块排行榜    

查看: 1640  |  回复: 1

mocun1010

铁虫 (初入文坛)

[求助] Matlab中关于泊松分布函数的二重函数求和的问题

这是分开写代码:
global t inf l T u
t = input( 't = ' );
inf = input( 'inf = ' );
l = input( 'l = ' );
T = input( 'T = ' );
u = input( 'u = ' );
temp1 = 0;
    for c1 = 0 : t
        for m1 = 0 : inf   
            temp1 = temp1 + poisspdf( ( m1 + c1 ), l*T ) * poisspdf( m1, u*T);
        end
    end
temp11 = temp1 - poisspdf( 0, l*T ) * poisspdf( 0, u*T );  
我主要是考虑到修改的便利性,运行的结果是 【 t = 20, inf = 100,l = 0.5,T = 2,u = 0.5,>> temp11 =  0.5189】
但是我又觉得这样得到的结果误差会很大,因为自己设置的“inf”不可能达到无穷大,因此我把以上的代码写成下面的形式:
global t l T u
sym m1 c1;
t = input( 't = ' );
l = input( 'l = ' );
T = input( 'T = ' );
u = input( 'u = ' );
        temp1 = double( symsum( symsum( poisspdf( (m1 + c1), l*T )*poisspdf(m1, u*T), 0, inf ), 0, t ) );
        temp11 = temp1 - double( poisspdf( 0, l*T ) * poisspdf( 0, u*T ) );  
一样的参数设置,但是会报错:
Error using mupadmex
Error in MuPAD command: DOUBLE cannot convert the input expression into a double array.

If the input expression contains a symbolic variable, use the VPA function instead.

Error in sym/double (line 514)
        Xstr = mupadmex('symobj::double', S.s, 0);

Error in poisspdf (line 39)
   x = double(x);

Error in Untitled2 (line 7)
        temp1 = double( symsum( symsum( poisspdf( (m1 + c1), l*T )*poisspdf(m1, u*T), 0, inf ), 0, t ) );

请问这些问题怎么解呀,我觉得应该是求和函数用的不对,到我没有思路,请大神指点迷津,先行谢过!!!

Matlab中关于泊松分布函数的二重函数求和的问题
1.jpg


Matlab中关于泊松分布函数的二重函数求和的问题-1
2.jpg


Matlab中关于泊松分布函数的二重函数求和的问题-2
3.jpg
回复此楼
科研,在最困难的时候,做最大的努力,不抛弃,不放弃!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cooooldog

铁杆木虫 (著名写手)

ส็็็

符号计算多的话,索性用maple
ส็็็็็็็็็็็็็็็็็็็็
2楼2016-04-19 10:21:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 mocun1010 的主题更新
信息提示
请填处理意见