Как мы можем поместить элемент вектора в symsum? - PullRequest
0 голосов
/ 05 ноября 2018

Я пытаюсь использовать symsum, используя Matlab. Но я получаю странную ошибку.

Я пытаюсь поместить элементы вектора в 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. При индексации ввод должен быть числовым, логическим или ':'.

1 Ответ

0 голосов
/ 15 ноября 2018

Во-первых, я вижу ошибку, когда вы пишете a(n+1), для n переходя от 0 до 6. Когда n равно 6, у вас будет a(7), которого не существует. a имеет только 6 элементов.

Тогда у вас есть другая проблема, потому что вы индексируете a с помощью символа, и символическая индексация не разрешена (см. этот пост ).

Действительно ли 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
...