stringtranslate.com

Синтетическое подразделение

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

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

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

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

Обычное синтетическое подразделение

Первый пример — синтетическое деление только с однократным линейным знаменателем .

Числитель можно записать как .

Ноль знаменателя равен .

Коэффициенты расположены следующим образом, с нулем слева:

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

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

Сложение производится в следующем столбце.

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

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

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

Следовательно, частное и остаток равны:

Оценка многочленов по теореме об остатках

Вышеупомянутая форма синтетического деления полезна в контексте теоремы о полиномиальном остатке для оценки одномерных многочленов. Подводя итог, значение at равно остатку от деления на

Преимущество расчета значения таким способом состоит в том, что он требует чуть более чем вдвое меньше шагов умножения, чем простое вычисление. Альтернативной стратегией оценки является метод Хорнера .

Расширенное синтетическое подразделение

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

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

Отмените коэффициенты делителя.

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

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

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

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

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

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

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

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

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

Для немонических делителей

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

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

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

Проиллюстрируем это, выполнив следующее деление:

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

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

Далее, как обычно, отбрасывается первый коэффициент :

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

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

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

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

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

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

и результат

Компактное расширенное синтетическое подразделение

Однако приведенный выше диагональный формат становится менее эффективным с точки зрения использования пространства, когда степень делителя превышает половину степени делимого. Рассмотрим следующее разделение:

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

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

  1. Напишите коэффициенты дивиденда на столбце.
  2. Игнорируя первый (ведущий) коэффициент делителя, инвертируйте каждый коэффициент и поместите его в левую часть столбца.
  3. От количества коэффициентов, размещенных в левой части столбца, подсчитайте количество делимых коэффициентов над столбцом, начиная с крайнего правого столбца. Затем поместите вертикальную полосу слева, а также строку ниже этого столбца. Эта вертикальная черта отмечает границу между частным и остатком.
  4. Опустите первый коэффициент дивиденда ниже планки.
    • Разделите ранее выброшенное/суммированное число на старший коэффициент делителя и поместите его в строку ниже (это не нужно делать, если старший коэффициент равен 1).
      В данном случае индекс был выбран путем вычитания индекса делителя из делимого.
    • Умножьте ранее отброшенное/суммированное число (или разделенное отброшенное/суммированное число) на коэффициенты каждого отрицательного делителя слева (начиная с самого левого); пропустить, если выброшенное/суммированное число равно нулю. Размещайте каждый продукт поверх последующих столбцов.
  5. Выполните сложение по столбцам в следующем столбце. В этом случае, .
  6. Повторите предыдущие два шага. Остановитесь, когда вы выполнили два предыдущих шага с числом непосредственно перед вертикальной чертой.
    1. Позволять .
    2. Позволять .
    3. Позволять .
  7. Выполните оставшиеся прибавления по столбцам в последующих столбцах (вычисляя остаток).
  8. Самые нижние результаты под горизонтальной чертой представляют собой коэффициенты многочленов (частное и остаток), где коэффициенты частного находятся слева от вертикальной черты, а коэффициенты остатка — справа. Эти коэффициенты интерпретируются как имеющие возрастающую степень справа налево, начиная с нулевой степени как для частного, так и для остатка.

    Интерпретируем результаты, чтобы получить:

Реализация Python

Следующий фрагмент реализует расширенное синтетическое деление в Python для произвольных одномерных полиномов:

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

Смотрите также

Рекомендации

Внешние ссылки