我正在尝试通过Matlab使用symsum
。但是我收到一个奇怪的错误。
我正在尝试将向量的元素放入symsum
:
a=[1,2,3,40,51,61];
syms u n
S1(u) = symsum((a(n+1)*(-u)^n)/factorial(n),n,[0,6])
错误是:
无效的索引或函数定义。定义函数时,请确保参数是符号变量,并且函数主体是SYM表达式。编制索引时,输入必须为数字,逻辑或“:”。
答案 0 :(得分:1)
首先,我发现您在写a(n+1)
时出错,因为n
从0
到6
。当n
等于6
时,您将拥有不存在的a(7)
。 a
只有6个元素。
然后,您遇到另一个问题,因为您正在用符号索引a
,并且不允许使用符号索引(请参阅this post)。
n
是否真的需要作为符号,并且您真的需要使用symsum
吗?如果没有,您可以尝试:
a = [1,2,3,40,51,61];
n = 0:5;
syms u
S1(u) = sum( sym( (a(n+1).*(-u).^n)./factorial(n) ) )
这将返回:
S1(u) =
- (61*u^5)/120 + (17*u^4)/8 - (20*u^3)/3 + (3*u^2)/2 - 2*u + 1