Ошибка функции 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