суммирование символических переменных в Matlab - PullRequest
0 голосов
/ 28 мая 2018

Я хочу сделать суммирование символических переменных, построенных как

 x =  transpose(sym('x',[1 5]))

Я подумал, что могу просто назвать x1 x(1).Поэтому я сделал следующее:

syms p 
symsum(p^(i)*x(i),i,1,5)

К сожалению, я получил следующую ошибку

Индексы массива должны быть положительными целыми числами или логическими значениями.

IsЕсть ли способ исправить эту ошибку?

1 Ответ

0 голосов
/ 28 мая 2018

Согласно документации symsum, переменная для диапазона (i в вашем случае должна быть символической переменной).Вы не определили i как символическую переменную и, следовательно, она считается мнимой единицей (которая является ее встроенным определением по умолчанию).Всегда разумно избегать использования i и j в качестве переменных, поскольку они предназначены для мнимой единицы в MATLAB.

Однако исправление только этого выигралоне решить все проблемы.По-видимому, индексирование символической переменной не разрешено в определении функции для symsum.Чтобы выполнить запланированную операцию, я бы использовал sum следующим образом:

x =  sym('x', [1 5]);   
syms p;
sum(p.^(1:5) .* x)

, что дает:

ans = 
x5*p^5 + x4*p^4 + x3*p^3 + x2*p^2 + x1*p
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...