如何在 Maxima 中的循环内动态定义多个多项式

How to dynamically define multiple polynomials inside a loop in Maxima

所以...我想在一个循环内创建五个不同的多项式以生成一个 Sturm 序列,但我似乎无法动态命名一组具有不同名称的多项式。

例如:

在第一次迭代中它将定义 p1(x):whatever

然后,在第二次迭代中它将定义 p2(x):whatever

最后,在第 N 次迭代中,它将定义 pn(x):whatever

到目前为止,我已经设法简单地将它们存储在一个列表中,并根据其位置一个一个地调用它们。但肯定有更专业的方法来完成这个?

抱歉,非技术语言:)

我认为这里使用下标变量比较合适。类似于:

for k:1 thru 5 do
    p[k] : make_my_polynomial(k);

那么 p[1], ..., p[5] 就是你的多项式。

当您分配给下标变量时,例如类似于 foo[bar]: baz,其中 foo 尚未定义为列表或数组,Maxima 创建它所谓的 "undeclared array",这只是一个查找 table.

编辑:您可以引用带下标的变量而无需为它们分配任何值。例如。您可以写 u[i]^2 - 3*u[i] + 1 而不是 x^2 - 3*x + 1,其中 u[i] 尚未分配任何值。许多(大多数?)函数将下标变量视为与非下标变量相同,例如diff(..., u[i])区分w.r.t。 u[i].