Пожалуйста, проясните ситуацию. Был выбран курс " Компьютерная алгебра" для самостоятельного изучения. Как теперь записаться на этот курс с целью получения диплома о повышении квалификации? На данный момент он имеет статус " изучаю". Если я пройду экзаменационный тест в таком статусе без оформления документов и оплаты диплома, придется ли еще раз регистрироваться на этот курс и заново проходить тестирование? |
Наибольший общий делитель и последовательности полиномиальных остатков
Пользуясь леммой Гаусса 6.2, мы можем разбить вычисление НОД(f(x), g(x)) в кольце на следующие этапы:
- найти наибольший общий делитель коэффициентов многочленов f(x) и g(x) ;
- найти dq(x) = НОД(f(x), g(x)) в кольце , нормированный таким образом, что и коэффициенты многочлена dq(x) взаимно просты;
- НОД(f(x), g(x)) = dc · dq(x) в кольце .
Введем следующие определения.
6.3. ОПРЕДЕЛЕНИЕ. Наибольший общий делитель коэффициен- тов многочлена называется содержанием этого многочлена и обозначается cont(f). Многочлен f(x)/ cont(f) называется примитивной частью многочлена f(x) и обозначается p. p.(f(x)).
Обратимся теперь к задаче нахождения наибольшего общего делителя двух полиномов p1(x), p2(x) в кольце , при условии, что все арифметические операции над коэффициентами выполняются не в поле , а в кольце , являющимся не полем, а только областью с однозначным разложением на множители. Из приведенных выше рассуждений ясно, что мы можем вывести следующие важные соотношения:
cont{НОД[p1(x), p2(x)]} = НОД{cont[p1(x)], cont[p2(x)]}, p. p.{НОД[p1(x), p2(x)]} = НОД{p. p.[p1(x)], p. p.[p2(x)]}.
Поэтому задача нахождения наибольшего общего делителя произвольных полиномов сводится к задаче нахождения наибольшего общего делителя примитивных полиномов.
Рассмотрим два примитивных ненулевых полинома p1(x) и p2(x) в , у которых deg[p1(x)] = m и deg[p2(x)] = n, m > n. Поскольку алгоритм деления полиномов с остатком требует точной делимости старшего коэффициента делимого на старший коэффициент делителя, обычно этот процесс невозможно выполнить для полиномов p1(x) и p2(x) над целыми числами, не ослабляя требования делимости. Поэтому мы вводим процесс псевдоделения, который всегда дает нам псевдочастное и псевдоостаток (prem), коэффициенты которых являются целыми числами.
Псевдоделение означает предварительное умножение полинома p1(x) на {lc[p2(x)]}m-n+1, а затем применение алгоритма деления многочленов, когда известно, что все частные существуют, т. е.
где q(x) и r(x) — псевдочастное и псевдоостаток соответственно.
6.4. ПРИМЕР. Пользуясь псевдоделением в , разделим p1(x) == x4 - 7x + 7 на p2(x) = 3x2 - 7. Для того, чтобы вычислить q(x) и r(x), предварительно умножим p1(x) на 34-2+1 = 27, а затем, применяя алгоритм деления многочленов, получаем q(x) = 9x2 + 21 и r(x) = -189x + 336. Читатель может убедиться, что алгоритм деления многочленов не будет работать, если мы предварительно домножим p1(x ) только на 3.
Поэтому, пытаясь вычислить наибольший общий делитель полиномов p1(x) и p2(x), мы должны убедиться, что выполнимы все деления полиномов, встречающиеся в этом процессе, т. е. мы должны, используя псевдоделения, сформировать последовательность полиномиальных остатков. Таким образом, мы приходим к следующему обобщенному алгоритму Евклида для полиномов.
А 6. АЛГОРИТМ (GEA-P). Обобщенный алгоритм Евклида для многочленов над целыми числами G eneralized E uclidean A lgorithm for P olynomials over the Integers.
Ясно, что время работы этого алгоритма зависит от того, насколько эффективно мы можем вычислять последовательность полиномиальных остатков . Заметим, что если , то в общем случае мы можем утверждать, что члены этой последовательности удовлетворяют соотношениям
где i = 1, 2, . . . , h - 1 для некоторого h. [Разумеется, , i = 1, 2,где , определены на шаге 2 алгоритма GEA-P ]. Если дан метод выбора коэффициентов , то выписанное соотношение дает алгоритм построения PRS; очевидно, что условие завершения этого семейства алгоритмов — равенство нулю псевдоостатка.
Ниже мы рассматриваем различные алгоритмы, полученные для разных значений .
Евклидов алгоритм PRS.
Здесь для всех , т.е. каждый псевдоостаток используется в том виде, в котором он получен. Это один из худших методов построения PRS, приводящий к экспоненциальному росту коэффициентов.
6.5. ПРИМЕР. Рассмотрим полиномы , в Очевидно, что и , . Мы имеем такую последовательность:
полученную при выполнении следующих псевдоделений:
Из шага 4 алгоритма GEA-P следует, что НОД[p1(x), p2(x)]=1. Отметим также, что в последнем псевдоделении коэффициенты имеют 8 десятичных цифр, поскольку (-441)2p3(x)=-8168202x+12252303.
Последовательность полиномиальных остатков этого примера называется полной, потому что степень каждого ее члена на единицу меньше степени предыдущего; два первых члена могут, конечно, иметь одинаковые степени. В противном случае последовательность называется неполной. Заметим, что не существует способа сказать a priori, будет ли PRS полной или неполной.
Экспоненциальный рост коэффициентов членов PRS в приведенном примере обусловлен тем, что полиномы этой последовательности не являются примитивными, т. е. то, что мы не избавляемся от их содержания, дает вредный эффект. Эта ситуация исправляется ниже.