在 sage 中定义变量族

tst*_*tst 6 variables sage

我正在尝试将我的脚本从 mathematica 迁移到 sage。我陷入了一些看似基本的事情中。

我需要使用任意大的多项式,例如以下形式

a00 + a10*x + a01*y + a20 *x^2 + a11*x*y + ...

我只认为它们是 x 和 y 上的多项式,并且我需要给出这样的多项式 P 来获取其单项式列表。

例如,如果 P = a20*x^2 + a12*x*y^2 我想要一个 [a20*x^2,a12*x*y^2] 形式的列表。

我发现 sage 中的多项式有一个名为“coefficients”的类函数,它返回系数;还有一个名为“monomials”的类函数,它返回不带系数的单项式。将这两个列表相乘,得到我想要的结果。

问题是,为了使其工作,我需要显式地将所有 a 声明为变量,但这并不总是可能的。

有没有办法告诉 sage a[number][number] 形式的任何东西都是变量?或者有什么方法可以在 sage 中定义整个变量家族?

在一个完美的世界中,我想让 sage 表现得像 mathematica 一样,从某种意义上说,任何未定义的东西都被视为变量,但我想这太乐观了。

kcr*_*man 3

您几乎肯定需要一些非常小的字符串处理;答案

比我能说的任何话都好。当然,这是可以实现的,但是......

在一个完美的世界中,我想让 sage 表现得像 mathematica 一样,从某种意义上说,任何未定义的东西都被视为变量,但我想这太乐观了。

真的; 事实上,这违背了 Python(以及 Sage)“显式优于隐式”的哲学;x关于是否应该将 Even 预定义为符号变量(确实如此!), 争论了很长时间。

(说实话,考虑到我经常犯错字,我真的不想任何任意的东西被视为符号变量。)