Метод синтетичного ділення

Вступ

Синтетичне ділення (або правило Руффіні) — це метод ділення полінома на біном виду \((x - a)\). Він широко використовується для розкладання поліномів на множники та для спрощення розв'язання рівнянь степеня вищого за два, особливо коли їх неможливо звести до квадратних рівнянь, мономів або стандартних триномів. Коли \(a\) є коренем полінома \(P(x)\) степеня \(n\) і біном \((x - r)\) є множником \(P(x)\), ми можемо записати:

\[ P(x) = (x - r)\, Q(x) \]

де \(Q(x)\) — поліном степеня \(n – 1\).


Цей метод пропонує компактну та ефективну процедуру виконання ділення, дозволяючи уникнути повного алгебраїчного ділення в стовпчик, при цьому отримуючи частку \(Q(x)\), необхідну для подальшого аналізу або розкладання на множники.

  • Метод забезпечує швидкий і структурований спосіб ділення на \((x – r)\), що робить розкладання полінома на множники майже миттєвим після того, як було знайдено корінь.

  • Знижуючи степінь полінома на кожному кроці, синтетичний процес спрощує розв'язання рівнянь вищого степеня та природним чином виявляє додаткові корені або множники.

Хоча цей метод часто використовується разом із теоремою про раціональні корені, він не є єдиним доступним методом. Залежно від структури виразу, інші підходи — такі як записувані формули або альтернативні методи розкладання на множники — можуть запропонувати простіший або більш прямий шлях до розкладання.

Теорема про раціональні корені

Розглянемо поліном виду:

\[a_{n}x^{n} + a_{n-1}x^{n-1} + \dotsb + a_{1}x + a_{0}\]

де \(a_n, a_{n-1}, \dotsc, a_0 \in \mathbb{Z}\). Якщо поліном має раціональні корені, кожен із них має бути представимий як:

\[ r = \frac{p}{q} \]

де \(p\) — дільник вільного члена \(a_0\), а \(q\) — дільник старшого коефіцієнта \(a_n\). Цей результат, відомий як теорема про раціональні корені, дозволяє нам обмежити пошук раціональних розв'язків скінченним списком кандидатів, що визначаються виключно дільниками \(a_0\) та \(a_n\).

Теорема надає кандидатів, а правило Руффіні потім використовується для перевірки кожного з них і для виконання ділення полінома, щоразу, коли знайдено правильний корінь.

Приклад 1

Розглянемо конкретний приклад. Розглянемо поліном

\[ P(x) = x^3 - 6x^2 + 11x - 6 \]

Ми хочемо визначити його раціональні корені, використовуючи теорему про раціональні корені.
Згідно з теоремою, будь-який раціональний корінь повинен мати вигляд

\[ r = \frac{p}{q} \]

де \(p\) є дільником вільного члена \(a_0 = -6\), а \(q\) є дільником старшого коефіцієнта \(a_3 = 1\).
Оскільки єдиними дільниками 1 є \(\pm 1\), множина можливих раціональних коренів така:

\[ r \in {, \pm 1, \pm 2, \pm 3, \pm 6 ,} \]

Щоб визначити, який із цих кандидатів є фактичним коренем, ми обчислимо \(P(x)\) для кожного значення.
Перевіримо \(x = 1\):

\[ \begin{align} P(1) &= 1^3 - 6 \cdot 1^2 + 11 \cdot 1 - 6 \\[6pt] &= 1 - 6 + 11 - 6 \\[6pt] &= 0 \end{align} \]

Оскільки \(P(1) = 0\), ми робимо висновок, що \(x = 1\) є коренем полінома.


Тепер, коли ми знайшли корінь, нам потрібно побудувати наступну таблицю. У перший рядок ми вписуємо коефіцієнти початкового полінома \(P(x)\), відсортовані за степенем (якщо коефіцієнт певного степеня \(k\) відсутній, пам'ятайте, що на його місце слід вставити \(0\)). У другому рядку замість цього ми вписуємо значення кореня, який щойно знайшли, тобто \(1\). Маємо:

\begin{array}{c|ccc|c} & 1 & -6 & 11 & -6 \\ 1 &\\ \hline & & & & \ \end{array}


У першу позицію третього рядка ми ставимо значення старшого коефіцієнта (у цьому випадку третій степінь): \begin{array}{c|ccc|c} & 1 & -6 & 11 & -6 \\ 1 &\\ \hline & 1 & & & \ \end{array}


Тепер помножимо елемент, позначений як \( \overset{a}{1} \), на елемент, позначений як \( \overset{b}{1} \), щоб отримати елемент, позначений як \( \overset{c}{1} \): \begin{array}{c|ccc|c} & 1 & -6 & 11 & -6 \\ \overset{a}{1} & & \overset{c}{1} \\ \hline & \overset{b}{1} & & & \ \end{array}


Додайте елемент, позначений як \( \overset{a}{-6} \), до елемента, позначеного як \( \overset{b}{1} \), щоб отримати елемент, позначений як \( \overset{c}{-5} \): \begin{array}{c|ccc|c} & 1 & \overset{a}{-6} & 11 & -6 \\ 1 & & \overset{b}{1} \\ \hline & 1 & \overset{c}{-5} & & \ \end{array}


Повторіть процес і помножте елемент, позначений як \( \overset{a}{1} \), на елемент, позначений як \( \overset{b}{-5} \), щоб отримати елемент, позначений як \( \overset{c}{-5} \):\begin{array}{c|ccc|c} & 1 & -6 & 11 & -6 \\ \overset{a}{1} & & 1 & \overset{c}{-5} \\ \hline & 1 & \overset{b}{-5} & & \\ \end{array}


Додайте елемент, позначений як \( \overset{a}{11} \), до елемента, позначеного як \( \overset{b}{-5} \), щоб отримати елемент, позначений як \( \overset{c}{-6} \): \begin{array}{c|ccc|c} & 1 & -6 & \overset{a}{11} & -6 \\ 1 & & 1 & \overset{b}{-5} \\ \hline & 1 & -5 & \overset{c}{-6} & \end{array}


Помножте елемент, позначений як \( \overset{a}{1} \), на елемент, позначений як \( \overset{b}{6} \), щоб отримати елемент, позначений як \( \overset{c}{6} \): \begin{array}{c|ccc|c} & 1 & -6 & 11 & -6 \\ \overset{a}{1} & & 1 & -5 & \overset{c}{6} \\ \hline & 1 & -5 & \overset{b}{6} & \\ \end{array}


Додайте елемент, позначений як \( \overset{a}{-6} \), до елемента, позначеного як \( \overset{b}{6} \), щоб отримати елемент, позначений як \( \overset{c}{0} \): \begin{array}{c|ccc|c} & 1 & -6 & 11 & \overset{a}{-6} \\ 1 & & 1 & -5 & \overset{b}{6} \\ \hline & 1 & -5 & 6 & \overset{c}{0} \\ \end{array}


Коли ми доходимо до кінця таблиці та виявляємо, що остача дорівнює нулю, це означає, що ми знайшли корінь \(r\) полінома, такий, що ми можемо розкласти його наступним чином:

\[P(x) = (x-r) \cdot Q(x) \]

\(r= 1\) — це корінь, який ми знайшли на початку. \(Q(x)\) — це поліном степеня \(n-1\), коефіцієнти якого розташовані за степенем у тому ж порядку, в якому вони з'являються в третьому рядку. У нашому прикладі маємо: \[P(x) = (x-1)(x^2-5x+6)\]

Тепер ми можемо розкласти квадратний член. Числа, добуток яких дорівнює \(6\), а сума \(-5\), — це \(-2\) та \(-3\). Отже,

\[ x^2 - 5x + 6 = (x - 2)(x - 3) \]

і повне розкладання початкового полінома має вигляд

\[ P(x) = (x - 1)(x - 2)(x - 3) \]

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

Таким чином, поліном може бути повністю розкладений як

\[ P(x) = (x - 1)(x - 2)(x - 3) \]

що дозволяє відразу визначити його корені як \(1\), \(2\) та \(3\).

Обмеження

Незважаючи на свою практичність і простоту використання, правило Руффіні має певні обмеження. Стандартна версія правила Руффіні сформульована для поліномів із дійсними коефіцієнтами та дійсними лінійними дільниками. Для дільників на кшталт \( x - (a + bi) \), де \( i \) є уявною одиницею, правило Руффіні не може бути застосоване безпосередньо.

Якщо поліном має комплексні корені, правило Руффіні не може визначити або використати їх під час ділення.


Це правило передусім корисне як частковий метод обчислення частки та остачі при діленні поліномів. Однак при роботі з поліномами вищого степеня повна факторизація вимагає ітераційного застосування правила, за умови, що всі дійсні корені вже були визначені.

Для поліномів дуже високого степеня багаторазове використання правила Руффіні може бути непрактичним, якщо ще не доступний ефективний метод визначення коренів.

Практичний випадок, коли правило Руффіні не може бути застосоване

Розглянемо наступний поліном:

\[ P(x) = x^3 - 3x^2 + 4x - 4 \]

Ми хочемо поділити цей поліном на дільник:

\[ D(x) = x - (1 + i) \]

Правило Руффіні спеціально розроблене для ділення полінома \( P(x) \) на біном виду \( x - r \), де \( r \in \mathbb{R} \). Однак у цьому випадку дільник має вигляд \( x - (1 + i) \), де \( 1 + i \) є комплексним числом. Правило не передбачає механізму роботи з комплексними коефіцієнтами під час процесу ділення.

Обчислювальний аналіз

Щоб краще оцінити корисність правила Руффіні, варто розглянути, наскільки вимогливими є різні методи роботи з поліномами з обчислювальної точки зору:

  • Правило Руффіні працює за лінійний час \(O(n)\). Воно базується на простому ланцюжку додавань і множень коефіцієнтів, що робить ділення на \((x - r)\) надзвичайно швидким і легким.

  • Ділення поліномів «у стовпчик» є більш затратним, вимагаючи приблизно \(O(n^2)\) операцій. На кожному кроці воно множить і віднімає поліноми зі зменшуваним степенем, і ця повторювана структура призводить до квадратичного зростання обчислювальних витрат.

  • Факторизація поліномів є набагато складнішим завданням. Для загальних поліномів із цілими коефіцієнтами наразі не відомо жодного алгоритму з поліноміальним часом виконання. Факторизація може вимагати поєднання кількох методів, перевірки кандидатів у корені або застосування більш просунутих алгебраїчних методів.

Тут \(O(n)\) виражено за допомогою O-позначення — стандартного способу опису того, як кількість операцій зростає зі збільшенням розміру вхідних даних. У цьому випадку це означає, що обчислювальна складність зростає пропорційно степеню полінома.