当符号替换时,Symsum不会返回系列的总和

4次观看(过去30天)
eShita Rastogi.
eShita Rastogi. 2021年4月30日
回答: 沃尔特罗伯森 2021年5月4日
以下符号在我的代码中定义:
Syms.l d z k阳性;
AccleAlso(k,'整数');
Argualso(z,'整数');
争取(D,'整数');假定(D
当我尝试找到一个系列的总和时,Symsum只返回输入系列本身。但是,当我用常数替换变量z时(例如,7),Symsum将串联和作为超距离函数返回。
我想要的总和:
S = symsum(d.*(z-d).*l.^(k.*z+d)./(factorial(k.*z+d).*(k.*z+d)), k, 0, Inf)
输出:
s = -d * symsum(l ^(d + k * z)/(因子(d + k * z)*(d + k * z)),k,0,inf)*(d-z)
更换7:
s = symsum(d。*(7-d)。* l。^(k。* 7 + d)./(因子(k。* 7 + d)。*(k。* 7 + d),k,0,inf)
输出:
s = - (l ^ d *(d-7)* heatgegeom([1,d / 7],[d / 7 + 1,d / 7 + 1,d / 7 + 1/7,d / 7 + 2/ 7,D / 7 + 3/7,D / 7 + 4/7,D / 7 + 5/7,D / 7 + 6/7],L ^ 7/823543))/因子(D)
从带有z = 7的输出,实际上很清楚串联总和应该用z作为符号。那么,为什么Symsum不找到它?

答案(2)

Shiva Kalyan Diwakaruni.
Shiva Kalyan Diwakaruni. 2021年5月3日
编辑:Shiva Kalyan Diwakaruni. 2021年5月4日
你好,
MATLAB通过将它们与其了解答案的一组无限总和进行了评估无限的uMITS。如果MATLAB不识别系列的总和,则已知总和会收敛,可以添加新模式,并使用sum :: addpattern命令添加(参见 //www.tianjin-qmedu.com/help/symbolic/mupad_ref/sum-addpattern.html. )。“SUM :: AddPattern”是MUPAD命令,因此必须使用以下语法在MATLAB命令行中执行它:
>> Feval(symengine,'总和:: addpattern(f(n),n = -infinity ...
1条评论
沃尔特罗伯森
沃尔特罗伯森 2021年5月4日
任何Mupad内部功能都没有记录在任何当前版本中。您必须返回R2019A以查找它们的文档。

登录评论。


沃尔特罗伯森
沃尔特罗伯森 2021年5月4日
s = - (l ^ d *(d-7)* heatgegeom([1,d / 7],[d / 7 + 1,d / 7 + 1,d / 7 + 1/7,d / 7 + 2/ 7,D / 7 + 3/7,D / 7 + 4/7,D / 7 + 5/7,D / 7 + 6/7],L ^ 7/823543))/因子(D)
是的,我们可以看到模式,
s = - (l ^ d *(d-z)* heatgegeom([1,d / z],[d / z + 1,d / z + 1,d / z +(1:z-1)/ z],l ^ z / z ^ z))/阶乘(d)
但是......符号引擎没有任何方式来表示这一点。当我们有一个明确的z值时,我们可以写入1:z-1,但符号冒号算子只能在z是一个已知值时运行,因为它想要返回一系列明确尺寸
>> 1:z
错误使用(第38行)
无法将步骤数从1到z计算为1。
符号冒号能够处理一些其他情况,其中可以在数学上确定步骤数量,例如
>> 0:z / 8:z
ans =.
[0,Z / 8,Z / 4,(3 * Z)/ 8,Z / 2,(5 * Z)/ 8,(3 * Z)/ 4,(7 * Z)/ 8,Z]
可能会增强符号工具箱以返回(例如)
Symcolon(1,1,Z-1)
对于一些新的symcolon()操作......但它没有。它导致问题将采取一些思路回答,例如常规羟列康()的长度()应该是什么,或者如果您尝试执行此假设符号()数据上的Run Arrayfun()这样的事情,则应发生什么结构体。

社区宝藏狩猎

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!

被某某人翻译