【发布时间】:2017-11-22 10:45:01
【问题描述】:
我正在用 MuPAD 编写程序。在此,我使用了一个包含 N 项的总和以及乘积的方程。但是在运行代码时 MuPAD 会抛出错误:
错误:求和变量必须是标识符或索引标识符。 [总和]
任何人都可以提出一些建议吗?提前致谢。下面是我的整个代码。在此我在倒数第二行遇到错误。
N:= 2;
lamda:= 785*10^(-9);
d:= 1*10^3;
a:= 5*10^-2;
ap:= 10;
be:=5;
bo:=0.25;
rhom:= 0.95;
g:= 2*bo*(1-rhom);
ohm:= 0.5;
f:= ohm + 2*(bo)*rhom;
A:= ((2*(ap)^(ap/2))/((g^(1+(ap/2)))*gamma(ap)))*(((g*be)/(g*be+f))^(be+(ap/2)));
k:= 2*PI/lamda;
ak:= (binomial(be-1,k-1)/gamma(k))*((g*be+f)^(1-(k/2)))*((f/g)^(k-1))*(ap/be)^(k/2);
ad:= 0.6;
v:= (sqrt(PI)*a)/(sqrt(2)*ad);
ae:= float(sqrt((ad^2*sqrt(PI)*erf(v))/(2*v*exp(-v^2))));
sigmas:= 0.3;
z:= ae/(2*sigmas);
sk:=(z^2/(1+z^2));
Y:=(ap^2*be^2*sk^2*(g+f)^2)/(16*ui*((g*be)+f)^2);
ccc:= meijerG(5,1,[1,(2+z^2)/2],[z^2/2,ap/2,(1+ap)/2,k/2,(1+k)/2],Y);
X:= (((ap*be)/(g*be+f))^(-((ap+k)/2)));
pb:=(1/2)*product(numeric::sum(((z^2*A*ak*(2^(ap+k-4)))/PI)*X*ccc,k=1..be),i=1..N);
S2:=hfarray(1..3,[pb $ ui=1..3]);
【问题讨论】:
-
这是我遇到此错误的代码行。
-
pb:=(1/2)*(1/PI)*sum(product(z^(2)*Aak*(2^(a+k-4)) *((ab)/(g*b+f))^(-((a+k)/2))*meijerG(5,1,[1,(2+z^2)/ (2)],[(z^2)/(2),(a)/(2),(1+a)/(2),(k)/(2),(1+k)/(2) )],Y),i=1..N),k=1..b);
-
@yacc....请检查,我已经编辑了我的问题
-
好像很多变量没有定义,什么是a、b、Y、N等?请提供一个最小的、完整的和可验证的示例来重现错误。见stackoverflow.com/help/mcve。
-
@yaac....现在我已经编写了整个代码。请检查一下
标签: mupad