Ошибка функции symsum - неверное индексирование или определение функции?

Я пытаюсь суммировать следующее, используя функцию symsum в MATLAB:

сумма (от 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)  

где х (2)= -4,9.

Однако приведенный выше код возвращает "Недопустимое индексирование или определение функции".

Использование f=x(2)^q не приводит к ошибке, однако использование f = a (q + 1) возвращает ошибку. Следовательно, проблема лежит в члене a (q + 1).

Любая помощь очень ценится!

1 ответ

Не важно a является матрицей символики или не символики.

Для каждого вызова матрицы требуется индекс (число, действительное число, например, 1,2,3,4,...). 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
Другие вопросы по тегам