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

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

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

Отбросьте коэффициенты при делителе.

Впишите все коэффициенты делителя, кроме первого слева.

«Перетащите» первый коэффициент после столбца в последнюю строку.

Умножьте выпавшее число на число перед полосой и поместите его в следующий столбец.

Выполните прибавление в следующем столбце.

Повторите два предыдущих шага, и получится следующее:

Подсчитайте термины слева от полосы. Поскольку есть только один, остаток имеет нулевую степень, и это один крайний правый член под чертой. Отметьте разделение вертикальной чертой.

Члены записываются с возрастающей степенью справа налево, начиная с нулевой степени как для остатка, так и для результата.

Результат нашего деления:

Вычисление многочленов по теореме об остатке
Вышеупомянутая форма синтетического деления полезна в контексте теорема о полиномиальном остатке для оценки одномерный полиномы. Подводя итог, значение
в
равно остаток из
. Преимущество такого вычисления значения состоит в том, что для этого требуется чуть более половины шагов умножения, чем наивная оценка. Альтернативная стратегия оценки: Метод Хорнера.
Расширенное синтетическое подразделение
Этот метод обобщается на деление на любые монический многочлен только с небольшой модификацией с изменения выделены жирным шрифтом. Используя те же шаги, что и раньше, выполните следующее деление:

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

Отбросьте коэффициенты при делителе.

Впишите все коэффициенты, кроме первого слева по диагонали вверх вправо (см. следующую схему).

Обратите внимание на изменение знака с От 1 до −1 и от −3 до 3 . «Перетащите» первый коэффициент после столбца в последнюю строку.

Умножьте выпавшее число на диагональ перед полосой и поместите полученные записи по диагонали вправо из выпавшей записи.

Выполните прибавление в следующем столбце.

Повторите два предыдущих шага пока вы не пройдете мимо записей вверху со следующей диагональю.

Затем просто сложите оставшиеся столбцы.

Подсчитайте термины слева от полосы. Поскольку их два, остаток имеет степень один, и это два крайних правых члена под чертой. Отметьте разделение вертикальной чертой.

Члены записываются с возрастающей степенью справа налево, начиная с нулевой степени как для остатка, так и для результата.

Результат нашего деления:

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

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

Используется немного измененная таблица:

Обратите внимание на дополнительную строку внизу. Это используется для записи значений, найденных путем деления "отброшенных" значений на ведущий коэффициент
(в этом случае обозначается /3; Отметим, что в отличие от остальных коэффициентов
, знак этого числа не меняется).
Далее первый коэффициент при
сбрасывается как обычно:

а затем выпавшее значение делится на 3 и помещается в строку ниже:

Далее новый (разделенное) значение используется для заполнения верхних строк числами, кратными 2 и 1, как в расширенной технике:

Затем отбрасывается 5 с обязательным добавлением 4 под ним, и ответ снова делится:

Затем цифра 3 используется для заполнения верхних строк:

На этом этапе, если бы после получения третьей суммы мы попытались использовать ее для заполнения верхних строк, мы бы «выпали» с правой стороны, поэтому третья сумма является первым коэффициентом остатка, как в обычном синтетическое деление. Но значения остатка равны нет делится на старший коэффициент делителя:

Теперь мы можем считать коэффициенты ответа. Как и в расширенном синтетическом делении, последние два значения (2 - степень делителя) являются коэффициентами остатка, а оставшиеся значения являются коэффициентами частного:

и результат

Компактное расширенное синтетическое подразделение
Тем не менее диагональ формат, указанный выше, становится менее компактным, когда степень делителя превышает половину степени делимого. Легко видеть, что у нас есть полная свобода писать каждый продукт в любой строке, если он находится в правильном столбце. Таким образом, алгоритм может быть уплотненный по жадная стратегия, как показано в разделе ниже.


Ниже описывается, как выполнять алгоритм; этот алгоритм включает шаги для деления немонических делителей:
- Напишите коэффициенты дивиденда на полосе

- Игнорируя первый (ведущий) коэффициент делителя, отмените все коэффициенты и поместите их в левую часть полосы.

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

- Опустите первый коэффициент дивиденда под столбик.

- Разделите ранее выпавшее / суммированное число на ведущий коэффициент делителя и поместите его в строку ниже (этого делать не нужно, если ведущий коэффициент равен 1).
. - Умножьте ранее выпавшее / суммированное число (или разделенное отброшенное / суммированное число) на каждый отрицательный коэффициент делителя слева (начиная с самого левого); пропустить, если отброшенное / суммированное число равно нулю. Поместите каждый продукт поверх следующих столбцов.

- Выполните добавление по столбцам в следующем столбце.

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

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

Реализация Python
Следующий фрагмент кода реализует расширенное синтетическое разделение для немонических многочленов (которое также поддерживает монические многочлены, поскольку это обобщение):
def extended_synthetic_division(дивиденд, делитель): "" "Быстрое деление полиномов с помощью расширенного синтетического деления. Также работает с немоническими многочленами. Дивиденд и делитель - это полиномы, которые здесь просто списки коэффициентов. Например: x ** 2 + 3 * x + 5 будет представлен как [1, 3, 5] """ из = список(дивиденд) # Скопируйте дивиденд нормализатор = делитель[0] за я в классифицировать(len(дивиденд) - len(делитель) + 1): из[я] /= нормализатор # Для общего полиномиального деления (когда многочлены немонические), # нам нужно нормализовать, разделив коэффициент на первый коэффициент делителя Coef = из[я] если Coef != 0: # Бесполезно умножать, если коэффициент равен 0 за j в классифицировать(1, len(делитель)): # В синтетическом делении мы всегда пропускаем первый коэффициент делителя, # потому что он используется только для нормализации дивидендных коэффициентов из[я + j] += -делитель[j] * Coef """ Полученный результат содержит как частное, так и остаток, остаток - это размер делителя (остаток обязательно имеет ту же степень, что и делитель, поскольку это то, что мы не можем разделить от дивиденда), поэтому мы вычисляем индекс где это разделение, и вернуть частное и остаток. """ разделитель = 1 - len(делитель) возвращаться из[:разделитель], из[разделитель:] # Вернуть частное, остаток.
Смотрите также
Рекомендации
внешняя ссылка