Я думаю, что здесь нужна соответствующая переменная. Что-то вроде:
for k:1 thru 5 do
p[k] : make_my_polynomial(k);
Тогда p[1]
, ..., p[5]
- ваши полиномы.
Когда вы присваиваете подписной переменной, например, что-то вроде foo[bar]: baz
, где foo
еще не был определен как список или массив, Maxima создает так называемый «необъявленный массив», который является просто таблицей поиска.
РЕДАКТИРОВАТЬ: Вы можете ссылаться на подписанные переменные без присвоения им каких-либо значений. Например. вместо x^2 - 3*x + 1
вы можете написать u[i]^2 - 3*u[i] + 1
, где u[i]
еще не присвоено какое-либо значение. Многие (большинство?) Функций обрабатывают подписанные переменные так же, как и неподписанные, например, diff(..., u[i])
чтобы дифференцировать w.r.t. u[i]
.