使用mupadmex时出错,sym / symsum出错(评估定积分)

时间:2015-07-25 09:23:43

标签: matlab mupad

我试图使用以下代码评估一个定积分:

m=4;
t=4;
n=5;
P=10;
reset(symengine)
syms x;
syms k;

mean=int(log(1+P*x/t)*symsum( factorial(k)*x^(n-m)*exp(-x)/factorial(k+n-m)*feval(symengine,'laguerreL',n-m,k,x)*feval(symengine,'laguerreL',n-m,k,x),k,[0,m-1]) ,x,0,inf)

但它会出现以下错误:

  Error using mupadmex
  Error in MuPAD command: The number of arguments is incorrect. [has]
  Evaluating: sum

  Error in sym/symsum (line 114)
  rSym = mupadmex('symobj::map',fsym.s,'symobj::symsum',x.s,a.s,b.s);

  Error in Untitled2 (line 32)
  mean=int(log(1+P*x/t)*symsum( factorial(k)*x^(n-m)*exp(-x)/factorial(k+n-m)*feval(symengine,'laguerreL',n-m,k,x)*feval(symengine,'laguerreL',n-m,k,x),k,[0,m-1]) ,x,0,inf)

然而,当我在没有一些函数的情况下评估积分时:

mean=int(log(1+P*x/t)*symsum( feval(symengine,'laguerreL',n-m,k,x)*feval(symengine,'laguerreL',n-m,k,x),k,[0,m-1]) ,x,0,inf) 

我得到一个Inf的答案。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

我找到了解决方案。它包括使用gamma(k + n-m + 1)来计算(k + n-m)!,因为在执行符号变量的阶乘时存在错误。