Как указать произвольный порядок мономов в 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

Другие вопросы по тегам