Maxima Manual: Функции и переменные пакета grobner

Previous: Введение в пакет grobner, Up: Top [Contents][Index]

### 51.2 Функции и переменные пакета grobner

#### 51.2.1 Глобальные переключатели пакета grobner

Управляющая переменная: poly_monomial_order

  Значение по умолчанию: `lex`

  Этот глобальный переключатель управляет тем, какой порядок одночленов используется с многочленах и в вычислении базиса Гребнера. Если значение не задано, то будет использовано `lex`.

  Категории:Пакет grobner ·

Управляющая переменная: poly_coefficient_ring

  Значение по умолчанию: `expression_ring`

  Этот переключатель указывает кольцо коэффициентов многочленов, используемое в вычислениях базиса Гребнера. Если значение не задано, то используется общее кольцо выражений maxima. Если необходимо, значение переключателя может быть установлено равным `ring_of_integers`.

  Категории:Пакет grobner ·

Управляющая переменная: poly_primary_elimination_order

  Значение по умолчанию: `false`

  Определяет порядок исключения переменных в функциях, основанных на исключении переменных. Если значение не задано, то будет использовано `lex`.

  Категории:Пакет grobner ·

Управляющая переменная: poly_secondary_elimination_order

  Значение по умолчанию: `false`

  Определяет порядок сохраняемых переменных в функциях, основанных на исключении переменных. Если значение не задано, то будет использовано `lex`.

  Категории:Пакет grobner ·

Управляющая переменная: poly_elimination_order

  Значение по умолчанию: `false`

  Определяет порядок исключения в вычислениях, основанных на исключении переменных. Если значение задано, то оно перекрывает значение переменных `poly_primary_elimination_order` и `poly_secondary_elimination_order`. Пользователь должен обеспечить, что заданный порядок исключения применим для данного числа исключаемых переменных.

  Категории:Пакет grobner ·

Управляющая переменная: poly_return_term_list

  Значение по умолчанию: `false`

  Если равно `true`, то все функции пакета возвращают многочлены в виде списков членов с текущим порядком одночленов, а не в виде выражений maxima.

  Категории:Пакет grobner ·

Управляющая переменная: poly_grobner_debug

  Значение по умолчанию: `false`

  Если равно `true`, то выводится трассировка и отладочная информация.

  Категории:Пакет grobner ·

Управляющая переменная: poly_grobner_algorithm

  Значение по умолчанию: `buchberger`

  Возможные значения:

  - `buchberger`
  - `parallel_buchberger`
  - `gebauer_moeller`

  Определяет алгоритм, используемый для поиска базиса Гребнера.

  Категории:Пакет grobner ·

Управляющая переменная: poly_top_reduction_only

  Значение по умолчанию: `false`

  Если не равно `false`, то когда возможно используется только приведение верхнего уровня. Приведение верхнего уровня означает, что алгоритм деления останавливается после первого приведения.

  Категории:Пакет grobner ·

#### 51.2.2 Простые операторы в пакете grobner

`poly_add`, `poly_subtract`, `poly_multiply` и `poly_expt` являются арифметическими операциями над многочленами. Они осуществляются над внутренним представлением, но результат преобразуется обратно в выражение maxima.

Функция: poly_add (poly1, poly2, varlist)

  Складывает два многочлена poly1 и poly2.

      (%i1) poly_add(z+x^2*y,x-z,[x,y,z]);
                                          2
      (%o1)                              x  y + x

  Категории:Пакет grobner ·

Функция: poly_subtract (poly1, poly2, varlist)

  Вычитает многочлен poly2 из poly1.

      (%i1) poly_subtract(z+x^2*y,x-z,[x,y,z]);
                                            2
      (%o1)                          2 z + x  y - x

  Категории:Пакет grobner ·

Функция: poly_multiply (poly1, poly2, varlist)

  Возвращает произведение многочленов poly1 и poly2.

      (%i2) poly_multiply(z+x^2*y,x-z,[x,y,z])-(z+x^2*y)*(x-z),expand;
      (%o1)                                  0

  Категории:Пакет grobner ·

Функция: poly_s_polynomial (poly1, poly2, varlist)

  Возвращает S-многочлен (syzygy polynomial) двух многочленов poly1 и poly2.

  Категории:Пакет grobner ·

Функция: poly_primitive_part (poly1, varlist)

  Возвращает многочлен poly деленный на НОД своих коэффициентов.

      (%i1) poly_primitive_part(35*y+21*x,[x,y]);
      (%o1)                              5 y + 3 x

  Категории:Пакет grobner ·

Функция: poly_normalize (poly, varlist)

  Возвращает многочлен poly деленный на свой старший коэффициент. Подразумевается, что деление возможно, что может быть не всегда верно в случае колец не являющихся полями.

  Категории:Пакет grobner ·

#### 51.2.3 Другие функции пакета grobner

Функция: poly_expand (poly, varlist)

  Эта функция преобразует многочлен во внутреннее представление и обратно. Она эквивалентна `expand(poly)`, если poly корректно преобразуется в многочлен. Если представление не совместимо с многочленом от переменных varlist, то это приводит к ошибке. Данная функция может быть использована для проверки, возможно ли преобразование выражения во внутреннее представление. Нижеследующие примеры демонстрируют, что допустимы переменные с индексом или в виде трансцендентных функций.

      (%i1) poly_expand((x-y)*(y+x),[x,y]);
                                           2    2
      (%o1)                               x  - y
      (%i2) poly_expand((y+x)^2,[x,y]);
                                      2            2
      (%o2)                          y  + 2 x y + x
      (%i3) poly_expand((y+x)^5,[x,y]);
                        5      4         2  3       3  2      4      5
      (%o3)            y  + 5 x y  + 10 x  y  + 10 x  y  + 5 x  y + x
      (%i4) poly_expand(-1-x*exp(y)+x^2/sqrt(y),[x]);
                                                2
                                        y      x
      (%o4)                       - x %e  + ------- - 1
                                             sqrt(y)

      (%i5) poly_expand(-1-sin(x)^2+sin(x),[sin(x)]);
                                      2
      (%o5)                      - sin (x) + sin(x) - 1

  Категории:Пакет grobner ·

Функция: poly_expt (poly, number, varlist)

  возводит многочлен poly в положительную целую степень number. Если number не есть целое положительное число, то сигнализируется ошибка.

      (%i1) poly_expt(x-y,3,[x,y])-(x-y)^3,expand;
      (%o1)                                  0

  Категории:Пакет grobner ·

Функция: poly_content (poly. varlist)

  `poly_content` вычисляет НОД коэффициентов многочлена

      (%i1) poly_content(35*y+21*x,[x,y]);
      (%o1)                                  7

  Категории:Пакет grobner ·

Функция: poly_pseudo_divide (poly, polylist, varlist)

  Псевдо-деление многочлена poly на список из n многочленов polylist. Возвращает несколько значений. Первое значение – список частных a. Второе значение – остаток r. Третье значение – скалярный коэффициент c, такой что c*poly делимо на polylist в кольце коэффициентов, не обязательно являющимся полем. И наконец, четвертое значение – целое число, дающее число выполненных приведение. Результирующие величины удовлетворяют выражению:

  c*poly=sum(a[i]*polylist[i],i=1...n)+r.

  Категории:Пакет grobner ·

Функция: poly_exact_divide (poly1, poly2, varlist)

  Делит многочлен poly1 на многочлен poly2. Предполагается, что деление без остатка возможно. Возвращает частное.

  Категории:Пакет grobner ·

Функция: poly_normal_form (poly, polylist, varlist)

  Функция `poly_normal_form` вычисляет нормальную форму многочлена poly по отношению к множеству многочленов polylist.

  Категории:Пакет grobner ·

Функция: poly_buchberger_criterion (polylist, varlist)

  Возвращает `true` если polylist является базисом Гребнера с учетом текущего упорядочивания членов. Использует критерий Бухбергера: для любых двух многочленов h1 и h2 из polylist e S-многочлен S(h1,h2) приводим к 0 по модулю polylist.

  Категории:Пакет grobner ·

Функция: poly_buchberger (polylist_fl varlist)

  `poly_buchberger` применяет алгоритм Бухбергера к списку многочленов и возвращает результирующий базис Гребнера.

  Категории:Пакет grobner ·

#### 51.2.4 Стандартная пост-обработка для базиса Гребнера

Идеал k-го исключения I_k идеала I над K[ x[1],...,x[n] ] есть идеал intersect(I, K[ x[k+1],...,x[n] ]).
Частное идеалов I:J есть идеал {h| для всех w в J: w*h в I}.
Идеал I:p^inf есть идеал {h| существует n в N: p^n*h в I}.
Идеал I:J^inf есть идеал {h| существуют n в N и p в J: p^n*h в I}.
Радикал идеала sqrt(I) есть идеал {h| существует n в N : h^n в I }.

Функция: poly_reduction (polylist, varlist)

  `poly_reduction` приводит список многочленов polylist, так что каждый многочлен полностью приведен по отношению к другим.

  Категории:Пакет grobner ·

Функция: poly_minimization (polylist, varlist)

  Возвращает подмножество списка многочленов polylist, порождающих тот же мономиальный идеал, что и polylist но минимальный, т.е. старшие одночлены многочленов из подмножества не делят ни один из других старших одночленов других многочленов этого подмножества.

  Категории:Пакет grobner ·

Функция: poly_normalize_list (polylist, varlist)

  `poly_normalize_list` применяет `poly_normalize` к каждому многочлену в списке. Т.е. делит каждый из многочленов списка polylist на его старший коэффициент.

  Категории:Пакет grobner ·

Функция: poly_grobner (polylist, varlist)

  Возвращает базис Гребнера идеала, порожденного многочленами polylist. Зависит от глобальных флагов.

  Категории:Пакет grobner ·

Функция: poly_reduced_grobner (polylist, varlist)

  Возвращает приведенный базис Гребнера идеала, порожденного многочленами polylist. Зависит от глобальных флагов.

  Категории:Пакет grobner ·

Функция: poly_depends_p (poly, var, varlist)

  `poly_depends` проверяет, зависит ли многочлен от переменной var.

  Категории:Пакет grobner ·Функции предикаты ·

Функция: poly_elimination_ideal (polylist, number, varlist)

  `poly_elimination_ideal` возвращает базис Гребнера идеала number-го исключения идеала, порожденного списком многочленов (не обязательно образующих базис Гребнера).

  Категории:Пакет grobner ·

Функция: poly_colon_ideal (polylist1, polylist2, varlist)

  Возвращает приведенный базис Гребнера частного идеала

  I(polylist1):I(polylist2)

  где polylist1 и polylist2 – два списка многочленов.

  Категории:Пакет grobner ·

Функция: poly_ideal_intersection (polylist1, polylist2, varlist)

  `poly_ideal_intersection` возвращает пересечение двух идеалов.

  Категории:Пакет grobner ·

Функция: poly_lcm (poly1, poly2, varlist)

  Возвращает наименьший общий множитель многочленов poly1 и poly2.

  Категории:Пакет grobner ·

Функция: poly_gcd (poly1, poly2, varlist)

  Возвращает наибольший общий делитель многочленов poly1 и poly2.

  Категории:Пакет grobner ·

Функция: poly_grobner_equal (polylist1, polylist2, varlist)

  `poly_grobner_equal` проверяет порождают ли два базиса Гребнера один и тот же идеал. Возвращает `true` если два списка многочленов polylist1 и polylist2, предполагаемые базисами Гребнера, порождают один и тот же идеал, и `false` в противном случае. Это эквивалентно проверке, что каждый многочлен первого базиса приводится к 0 по модулю второго и обратно. Заметим, что в примере ниже первый список не есть базис Гребнера, и по этому результат есть `false`.

      (%i1) poly_grobner_equal([y+x,x-y],[x,y],[x,y]);
      (%o1)                         false

  Категории:Пакет grobner ·

Функция: poly_grobner_subsetp (polylist1, polylist2, varlist)

  `poly_grobner_subsetp` проверяет содержится ли идеал, порожденный polylist1, в идеале, порожденном polylist2. Чтобы тест всегда выполнялся, нужно чтобы polylist2 был бы базисом Гребнера.

  Категории:Пакет grobner ·Функции предикаты ·

Функция: poly_grobner_member (poly, polylist, varlist)

  Возвращает `true`, если многочлен poly принадлежит к идеалу, порожденному списком многочленов polylist, который предполагается базисом Гребнера. Иначе возвращает `false`.

  Категории:Пакет grobner ·

Функция: poly_ideal_saturation1 (polylist, poly, varlist)

  Возвращает приведенный базис Гребнера насыщения идеала

  I(polylist):poly^inf

  Геометрически, над алгебраически замкнутым полем, это есть множество многочленов в идеале, порожденном polylist, которые не исчезают на многообразии poly.

  Категории:Пакет grobner ·

Функция: poly_ideal_saturation (polylist1, polylist2, varlist)

  Возвращает приведенный базис Гребнера насыщения идеала

  I(polylist1):I(polylist2)^inf

  Геометрически, над алгебраически замкнутым полем, это есть множество многочленов в идеале, порожденном polylist1, которые не исчезают на многообразии polylist2.

  Категории:Пакет grobner ·

Функция: poly_ideal_polysaturation1 (polylist1, polylist2, varlist)

  polylist2 – есть список n многочленов `[poly1,...,polyn]`. Возвращает приведенный базис Гребнера идеала

  I(polylist):poly1^inf:...:polyn^inf

  полученного последовательным насыщением многочленами из списка polylist2 идеала, порожденного списком многочленов polylist1.

  Категории:Пакет grobner ·

Функция: poly_ideal_polysaturation (polylist, polylistlist, varlist)

  polylistlist – есть список n списков многочленов `[polylist1,...,polylistn]`. Возвращает приведенный базис Гребнера насыщения идеала

  I(polylist):I(polylist_1)^inf:...:I(polylist_n)^inf

  Категории:Пакет grobner ·

Функция: poly_saturation_extension (poly, polylist, varlist1, varlist2)

  `poly_saturation_extension` реализует знаменитый трюк Рабиновича.

  Категории:Пакет grobner ·

Функция: poly_polysaturation_extension (poly, polylist, varlist1, varlist2)
  Категории:Пакет grobner ·

Previous: Введение в пакет grobner, Up: Top [Contents][Index]