symsum函数错误 - 索引或函数定义无效?

时间:2017-12-12 20:00:52

标签: matlab sum series

我试图使用MATLAB中的symsum函数对以下内容求和:

总和(从q = 0到5)[a(q + 1)* x(2)^ q]

其中a = [a0,a1,...,a5],x = [x(1),x(2),...]其中x(1),x(2),...是标量。

总和是a0 + a1x(2)+ a2x(2)^ 2 + ... + a5x(2)^ 5.

我使用了以下代码:

syms q a x  
f=a(q+1)*x(2)^q
symsum(f, q, 0, 5)  

其中x(2)= -4.9。

但是,上面的代码返回"无效的索引或函数定义"。

使用f = x(2)^ q不会导致错误,但是,使用f = a(q + 1)确实会返回错误。因此问题在于a(q + 1)项。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

无关紧要a是符号或非符号的矩阵。

每次调用矩阵都需要一个索引(一个数字,实数如1,2,3,4,......) 如果q是符号,则表示q实际上不等于任何数字,因此a(q) 没有意义,因为q与任何数字都不相等。所以程序会在出错之前产生错误并停止。

>>a=0:5;
>> a(1)

ans =

     0
>>a(q) % ?-->do you know the real value of `q` right now? NO,nobody knows!
    MAKES ERROR