Как указать произвольный порядок мономов в Macaulay2?
Предположим, вам дан произвольный порядок, такой как $w>x>y>z>a$ order. Вы можете сделать переименование так, чтобы оно стало lex или подобными ошибочными переименованиями, чтобы удовлетворить некоторые из более типичных мономических порядков, таких как lex, glex и grevlex. Есть ли способ указать произвольный порядок мономов в Macaulay2?
1 ответ
Вы можете использовать опцию Веса, чтобы указать данный порядок:
i1: R = QQ [w..z, a, MonomialOrder => {Weights => {4,3,2,1,0}}];
i2: toString (a + z + y + x + w) ^ 2
o2 = w ^ 2 + 2 * w * x + x ^ 2 + 2 * w * y + 2 * x * y + 2 * w * z + y ^ 2 + 2 * x * z + 2 * w * a + 2 * y * z + 2 * x * a + z ^ 2 + 2 * y * a + 2 * z * a + a ^ 2
Если вы хотите произвести более или менее произвольный порядок, вы можете использовать Weights
вместе со случайным:
i1: R = QQ [w..z, a, MonomialOrder => {Веса => для i в 0..4 список случайных 20}];
i2: (варианты R).MonomialOrder
o2 = {MonomialSize => 32}
{Weights => {14, 15, 12, 9, 1}}
{GRevLex => {1, 1, 1, 1, 1}}
{Position => Up}
o2: VerticalList
i3: toString (a + z + y + x + w) ^ 2
o3 = x ^ 2 + 2 * w * x + w ^ 2 + 2 * x * y + 2 * w * y + y ^ 2 + 2 * x * z + 2 * w * z + 2 * y * z + г ^ 2 + 2 * х * а + 2 * ш * а + 2 * у * а + 2 * г * а + а ^ 2