Как динамически определять несколько полиномов внутри цикла в Maxima

Я согласен с ответом от zacherates.

Но вы можете сделать вызов intern () в ваших нелиберальных строках.

Из примера zacherates:

// ... but they are not the same object
new String("test") == "test" ==> false 

Если вы ставите нелитеральное равенство строки, это правда

new String("test").intern() == "test" ==> true 
-1
задан Lightsong 17 January 2019 в 10:26
поделиться

1 ответ

Я думаю, что уместная переменная здесь уместна. Примерно так:

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].

0
ответ дан Robert Dodier 17 January 2019 в 10:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: