Опубликован: 04.03.2008 | Доступ: свободный | Студентов: 1626 / 46 | Оценка: 4.56 / 3.67 | Длительность: 30:07:00
ISBN: 978-5-9556-0099-4
Специальности: Программист, Математик
Лекция 2:

Проблема представления данных

Многочлены

Действия с многочленами лежат в основе любой системы компьютерной алгебры. Пусть K — некоторое кольцо, задача представления элементов которого уже решена. Представление элементов кольца многочленов K[x] можно выбирать различными способами. Наиболее распространенным является представление многочлена в виде последовательности коэффициентов, упорядоченной по возрастанию или убыванию степеней одночленов. Представление многочленов, при котором запоминаются все коэффициенты, включая нулевые, называется плотным. Плотное представление используется в задачах, где рассматриваемые многочлены имеют сравнительно небольшое количество нулевых коэффициентов. Если степени многочленов достаточно высоки, а количество ненулевых коэффициентов мало ( разреженные многочлены ), то удобнее использовать разреженное представление многочленов, в котором указываются только ненулевые коэффициенты и соответствующие степени одночленов. При этом алгоритмы работы с такой формой записи становятся более сложными, но значительно экономится память ЭВМ, а во многих случаях—и время работы программы.

Приведенная выше форма представления многочленов в случае, когда кольцо коэффициентов является полем, основана на том факте, что одночлены составляют базис кольца многочленов, рассматриваемого как бесконечномерное векторное пространство над полем коэффициентов. В некоторых случаях целесообразно использовать другие базисы этого пространства. Например, в "Базисы Гребнера" изучаются многочлены вида \binom{x+k}k=\frac{(x+k)(x+k-1)\dots(x+1)}{k!}, обладающие многими полезными свойствами. Часто оказывается полезным представление многочленов фиксированной степени набором значений в разных точках.

Многочлены от многих переменных можно рекурсивно рассматривать как многочлены от одной переменной, но с коэффициентами из кольца многочленов от меньшего числа переменных ( рекурсивное представление ). А можно на множестве одночленов ввести отношение порядка и записывать слагаемые в соответствии с выбранным порядком. Наиболее часто используются следующие три отношения порядка:

  • лексикографическое упорядочение мономов, получающееся из фиксированного порядка на множестве переменных;
  • упорядочение мономов по степеням, а мономы одной и той же степени упорядочиваются лексикографически;
  • упорядочение мономов по степеням, а мономы одной и той же степени упорядочиваются в обратном лексикографическом порядке, т. е. при равенстве степеней большим считается вектор с меньшей последней координатой, при равенстве последних координат — с меньшей предпоследней и т. д. Может показаться, что этот порядок совпадает с предыдущим, для "отраженных" векторов. При n = 2 это действительно так, однако в общем случае эти два отношения порядка различаются более существенно, что продемонстрировано в примере 3.1б), где предполагается, что x > y > z

Более подробно вопросы, связанные с упорядочением мономов и каноническим представлением многочленов от нескольких переменных, будут рассмотрены ниже в разделе, посвященном базисам Гребнера.

3.1. ПРИМЕРЫ.

  1. Пусть переменные x и y упорядочены так, что x > y. Тогда многочлен (x + y)2 + x + y + 1 с учетом соответствующих порядков записывается в виде:

    x^2+2xy+x+y^2+y+1 (лексикографический порядок);

    x^2+2xy+y^2+x+y+1 (по степени, затем лексикографический);

    y^2+2xy+x^2+y+x+1 (по степени, затем обратный лексикографический).

  2. Рассмотрим разложение многочлена (x+y+z)3. Из однородности многочлена следует, что первые два из рассматриваемых порядков для этого многочлена совпадают. Выпишем его представление с использованием второго и третьего порядка.

    x^3+3x^2y+3x^2z+3xy^2+6xyz+3xz^2+y^3+3y^2z+3yz^2+z^3 и

    x^3+3x^2y+3xy^2+y^3+3x^2z+6xyz+3y^2z+3xz^2+3yz^2+z^3 соответственно.

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

Отметим, что достаточно часто при действии с многочленами предпочтительнее пользоваться представлениями, отличными от канонического. Например, во многих отношениях запись (x + y + z)3 более удобна, чем приведенные выше разложения этого многочлена. В частности, для многочленов задача разложения на множители представляет еще большую сложность, чем для целых чисел, и поэтому не всегда целесообразно раскрывать при умножении скобки,- часто бывает полезным в ущерб каноничности записи хранить многочлен в виде произведения.

Рациональные функции.

Поле рациональных функций K(x1, . . . , xn), где K - некоторое поле, обычно определяется как поле частных кольца многочленов K[x1, . . . , xn]. Имея каноническое представление элементов кольца многочленов, каноническое представление рациональных функций можно получить наложением условия взаимной простоты числителя и знаменателя и нормировкой знаменателя (например, приравниванием старшего коэффициента знаменателя единице). Часто, однако, поле K само представляется как поле частных некоторой области целостности, например, поле \mathbb Q(x) можно представить как поле частных кольца \mathbb Q[x], а также как поле частных кольца \mathbb Z[x]. При представлении поля \mathbb Q(x) как поля частных кольца \mathbb Z[x] далеко не всегда можно в представлении рациональной функции приравнять старший коэффициент знаменателя единице. Множество обратимых элементов в Z состоит всего из двух элементов ( 1 и -1 ), и нормировку знаменателя можно осуществить, фиксируя знак старшего коэффициента.

Марина Подлевских
Марина Подлевских

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