Построение вектора из последовательности в MacAulay2
Я нахожусь в следующей ситуации:
S = QQ [x_0..x_n];
для i от 0 до n сделать для j от i до n сделать d_{i,j} = x_i*x_j;
Теперь я хотел бы построить вектор, элементы которого
D_{0,0}=x_0^2, D_ {0,1} = x_0 * x_1,..., D_ {0, п} = x_0 * x_n, D_{1,1}=x_1^2, D_ { 1,2} = x_1 * x_2,..., D_ {п, п}=x_n^2
Как я могу сделать это в MacAulay2? Большое спасибо.
1 ответ
В Macaulay2 вектор ссылается на вектор столбца, и если у нас есть векторные элементы, мы можем построить следующий вектор:
SQ= for i from 0 to n list d_{i}
vector(SQ)
Но так как вектор, который вы хотите, не является вектором столбца, лучше всего сделать матрицу:
d=mutableMatrix genericMatrix(S,n,n)
for i from 0 to n do for j from 0 to n do d_(i,j)=x_i*x_j
Это может быть то, что вы ищете.
m=ideal(S_*)
m^2_*
В _*
оператор получает генераторы идеала. Так,m
- максимальный идеал, и вы ищете генераторы m^2
.
Альтернативно
flatten entries basis(2,S)
который просто дает вам векторный базис кольца S в степени 2.