如何在存储多项式的 sagemath 中编写数组?

How to write arrays in sagemath which stores polynomials?

我的问题是计算给我的8个多项式的S多项式。 Sage 已经有一个内置函数(称为 spol),它计算不同多项式的 S 多项式,如下所示:

from sage.rings.polynomial.toy_buchberger import spol
R.<y_1, y_2, y_3, y_4, x_1, x_2, x_3, x_4> = PolynomialRing(QQ, order='lex')
g = spol(-y_2*x_1 + y_2*x_4 - y_3*x_1^2 + y_3*x_4^2 - y_4*x_1^3 + y_4*x_4^3,
         -y_2*x_2 + y_2*x_4 - y_3*x_2^2 + y_3*x_4^2 - y_4*x_2^3 + y_4*x_4^3)

如果我从给定的 8 个多项式中取 2 个多项式并手动计算 S 多项式,将有 32 种可能的组合。

是否有更好的方法来解决这个问题?

所以我想

create an array which stores the 8 polynomials and create a for loop which would take the polynomials from the array and calculate their S-polynomial and then it would give me my list.

我不精通编码(我是数学出身)。我真的需要一些帮助。

可能是这样的:

from sage.rings.polynomial.toy_buchberger import spol
R.<y_1, y_2, y_3, y_4, x_1, x_2, x_3, x_4> = PolynomialRing(QQ, order='lex')
polinoms = [p1, p2, p3, p4, p5, p6, p7, p8] #add the polynoms
spols = [] #the S-polynomials

for i in polinoms:
  for j in polinoms:
    if i != j:
      spols.append(spol(i, j))

这会给你一个包含 56 个项目的列表,但你提到了 32 个,所以请在这里评论哪些其他组合也应该被排除在外。