MATLAB中symsum的疑问

来源:百度知道 编辑:UC知道 时间:2024/05/09 14:09:38
我在MATLAB中输入
>> syms i
>> symsum('2^i',i,0,2)
得到结果是216
并不是2^0+2^1+2^2
但如果改为
>> syms i
>> symsum('2^i+1',i,0,2)
得10
得到的却是2^0+2^1+2^2+3
这到底是为什么呢????希望高手解答
我用的是MATLAB7

>> syms i
symsum('2^i',i,0,2)

ans =

216

>> syms k
>> symsum('2^k',k,0,2)

ans =

216
这说明和变量的应用没什么关系,将程序改为
>> syms k
symsum(2^k,k,0,2)

ans =

7,
得到正确答案,说明是你调用涵数时格式错误。
syms i
symsum('2^i+1',i,0,2)

ans =

10

>> syms i
symsum(2^i+1,i,0,2)

ans =

10
均可能到正确结果
这主要是因为matlab中应该程序自身的问题,你可以去查一下sym和findsy及maple几个函数,但如果你安matlab自身指定的格式输入的话,基本是不会出错的,其实说回来,每个软件都不会是完美的,要不然它也不会总是出新版本,呵呵!我试过这样算
syms k
symsum('2^k+0',k,0,2)

ans =

216
结果还是不行,这说明它自身在编写的时候,在symsum('2^i',i,0,2)这个式子上是不兼容的,换言之是不能正常运行的,这其中涉及的函数较复杂,方面也比较多。大家都在努力的学习,但到达全盘皆通还都有很长的路要走,大家一起努力吧

我的是matlab 2009a
在输入symsum('2^i',i,0,2)的时候,matlab2009是会报错的。
正确的输入方法是symsum(2^i,i,0,2)注意:是没有引号的。
如此,我得到的答案是7。
而后面symsum('2^i