Решение полиномов
F(y) = c0yn + c1yn-1 + ... +cn-1y + cn = 0 (1)
заключается в нахождении корней yi при известных константах (коэффициентах) ci.
Удобно считать с0=1, т.к. от него всегда можно избавиться, разделив коэффициенты в (1) на с0.
1) Как известно, при n = 2
Y2 + c1y + c2 = 0
корни равны
Y1,2 = -c1/2 + [(c1/2)2 - c2]1/2
Будем считать, что константы являются комплексными числами (действительные числа будут как частный случай).
Комплексное число, находящееся в степенной зависимости упрощается (выводится из-под степени) по формуле Муавра:
(a+ib)n = Mn*{cos[n*arccos(a/M)] + i*sin[n*arcsin(b/M)]}; (2)
где М=(a2+b2)1/2; n - любое натуральное число.
2) При n=3
y3 + с1 y2 + с2 y + с3 = 0 (3)
Для нахождения корней известна формула Кардано [2], стр.146.
К решению уравнения (3) его переводят к приведенному виду:
х3 + k1х + k2 = 0 , (4)
где х=у+с1/3, k1=c2-c12/3, k2=2c13/27-c1c2/3+c3
Кстати к формуле Кардано можно перейти от решения, похожего на решение квадратного уравнения:
х = -a/3 + (a3/27 - k2)1/3 ,
где неизвестное a находится из
a3 = 27k2/2 + (272k22/4 + 27k13)1/2
И теперь решение корня x1 примет известный вид(из формулы Кардано):
X1 = -[k2/2 + (k22/4 +k13/27)1/2]1/3 + [-k2/2 + (k22/4 +k13/27)1/2]1/3
или
X1 = u + v,
где u=[-k2/2+D1/2]1/3, v=[-k2/2-D1/2]1/3, D=(k1/3)3+(k2/2)2
Два других решения можно также получить по теореме Виета.
Однако при данном решении нахождения кубического корня при константах полинома, состоящих из комплексных чисел, решение находится не всегда.
Был найден другой вариант решения кубического уравнения, который позволяет находить решения при константах, состоящих из комплексных чисел.
Решение искалось путем согласующегося уравнения приведенного вида полинома 3-й степени:
(X + B1/X + B2)*(X + B3/X + B4) = 0 (5)
Было найдено, что (относительно уравнения (4))
B2 = - 3k2/2k1 + 3/k1 (k22/4 + k13/27)1/2
B1 = 2k1/3 + (k2B23 + k1k2B2 - k22 - 8k13/27)1/3
Теперь корень находится из выражения
X = - B2/2 + (B22/4 - B1)1/2 (6)
Остаётся рассмотреть перевод кубического уравнения с комплексными коэффициентами к приведённому виду:
y3 + (a1+iv1)y2 + (a2+iv2)y + a3+iv3 = 0
Переходим к неизвестной t:
y = t + n + im
Теперь при n= -a1/3 ; m= -v1/3 получаем приведенное уравнение с комплексными коэффициентами:
t3 + t [3n2-3m2+2a1n-2v1m+a2+i(6nm+2a1m+2v1n+v2)] +
+n3-3nm2+a1(n2-m2)-2v1nm+a2n-v2m+a3+i[3n2m-m3+v1(n2-m2)+
-2a1nm+a2m+v2n+v3] = 0,
которое и решается по формуле (5).
В результате практических решений было найдено, что например, при комплексных числах A и D:
A = n1+im1 ; D = n2+im2
нельзя отдельно выносить комплексное число из-под корня (за исключением очень простых выражений - это связано со знаками чисел):
(A3*D)1/3 ≠ A*(D)1/3
Сначала следует получить действительные числа W1 и W2:
A3*D = W1+iW2
Затем только при них выводить мнимую величину из-под корня по формуле (2).
Следует также иметь в виду (что также указано и в литературе), что выражение (2) при целом числе n > 0 образует одно решение, тогда как при 0<n<1 оно может образовывать несколько решений, например, при n = 1/3 может быть до 3-х независимых решений. Например:
Итак, в результате последнего взятия квадратного корня - уравнение (6), получается выражение типа y=r+u , в котором одно из выражений (либо r+u , либо r-u) и будет являться корнем.
Был проведен поиск данного решения уравнения - в литературе, в Интернете (например, ресурс Wikipedia.com). Такой способ - решение с комплексными коэффициентами - не указан (этой проблемой я занимаюсь не один год).
Для уравнения 3-й степени в Wikipedia.com указано 2 способа решения.
Однако в отличие от уравнений 2 и 4 степени, нахождение корней которых может предполагать комплексные коэффициенты, уравнение 3 степени в указанных в литературе (интернете) решениях не может решаться с комплексными коэффициентами.
Так например, при комплексных коэффициентах уравнения (3):
c1=8+i*8 ; c2=1+i*1 ; c3=1+i*1
корни в приведенном уравнении при решении по формуле Кардано будут:
- 7,22...-i*1,85... (u+v)
- -3,914...+i*0,753...
- -3,306...+i*1,1... ,
что является очень неточным, тогда как по предлагаемой формуле (6) корень для приведенного будет:
X1=2,60945...+i*3,013...
что приводит к корню уравнения (3) равным:
Y=-0,057215222+i*0,346426936
с точностью решения примерно 4*10-14.
По приведенному решению (6) была составлена компьютерная программа, которая подтвердила получение корней кубического уравнения с комплексными числами-коэффициентами.
3) Решение уравнения 4-й степени зависит от решения уравнения 3-й степени (кубической резольвенты).
Решение приведено, например в [2], стр.147-148, где и указана кубическая резольвента - полином 3-й степени.
От общего уравнения необходимо перейти к приведенному уравнению
x4 + p*x2 + q*x + r = 0 ,
где p, q, r - рациональные функции коэффициентов ai ;
x = y + a1/4.
Резольвента имеет вид:
Z3 + 2pz2 + (p2 - 4r)z - q2 = 0 (7)
При решении данной резольвенты приведённое уравнение 4-й степени может быть представлено так:
(x2+k1x+k2)(x2+k3x+k4)=0
где z=k32 , k4=(-q+pk3+k33)/(2k3) , k1=-k3 , k2=p-k4+k32
Отсюда легко находятся все неизвестные xi:
Затем и корни Y. В отличие от приведенной в литературе необходимости подбора знаков (относительно знака q) при корнях резольвенты (7): z1,z2,z3 , здесь этого не требуется. К тому же, при коэффициентах, составляющих комплексные числа, подбор знаков затрудняется.
Так, например, при c1=c2=c3=c4 = 1+i*1
Корни резольвенты будут
√z1=-0,00866...+i*0,4106...
√z2=1,080679...+i*0,17293...
√z3=-0,248884...+i*1,741...
Величина q=0,75+i*0,25
Приводит к корню
(√z1 +√z2 +√z3 )/2 =0,411567...+i*1,162...
В противоречии к соблюдению требования равенства произведений
√z1√z2√z3 =-q
К тому же, если например, взять здесь √z2 со знаком минус (для соблюдения последнего требования), то придти к корню не удастся.
Помимо рассмотренной выше резольвенты для решения уравнения 4-й степени была найдена ещё одна резольвента, при которой полином приводится к квадратному виду, через некую неизвестную C:
(x2 + c)2 + (p - 2c) * [x + q / (2p - 4c)]2 - q2 / (4p - 8c) + r - c2 = 0 (8)
Получается резольвента, отличная от рассмотренной выше
c3 - r*c - (p / 2) c2 = q2 / 8 - r*p / 2,
Теперь уравнение (8) преобразуется в квадратное, относительно неизвестной x:
x2 + c = + (2c - p)1/2 [x + q / (2p - 4c)]
Итак, после того, как было найдено решение полинома 3-й степени с комплексными коэффициентами, полином 4-й степени с комплексными коэффициентами также может быть решён через резольвенту (7), имеющую тоже комплексные коэффициенты.
4) Уравнение 5-й степени и выше.
Для решения уравнения 5-й степени имеется много решений частного вида данного уравнения, например, если в (1) с1=0, с3=0, а между с2 и с4 имеется связь:
c4 = с22/5
то решение будет неким подобием решения кубического уравнения:
y = -k/5 + (k5/55 - c5)1/5
где
k = [55c5/2 + (510c52/4 + 55c25)1/2]1/5
Однако, как известно, общего решения полинома в радикалах нет.
Но если взять уравнение (1) с общими действительными коэффициентами, то исходя из того, что решение лежит от -∞ до +∞, нетрудно видеть что одну из границ (верхнюю или нижнюю) можно получить из анализа знака коэффициента с5. Ведь в точке Y = 0 остатком уравнения (1) является с5. И значит, при положительном значении с5 ноль является верхней границей корня Y, а при отрицательном с5 ноль является нижней границей корня Y.
Известно, что при рассматриваемом полиноме 5-й степени c действительными коэффициентами (n=5) один из пяти корней должен быть действительным.
Был найден универсальный способ начального определения границы области, где расположен хотя бы один корень полинома, в отличие от большинства способов поиска корня на неопределенной области, что проходит только с решениями полиномов 2 - 4 степени - нахождение в радикалах.
Вторая граница получается путем поиска максимального значения подкоренных выражений коэффициентов:
V1=|c1|; V2=|c2|1/2; V3=|c3|1/3; V4=|c4|1/4; V5=|c5|1/5
где |c|=abs(c) означает абсолютную величину числа.
Пусть это будет Vi (i - от 1 до 5). Теперь, если взять корень Y в уравнении (1) равным произведению некоего k и Vi и подставить в уравнение (1), то для второй границы получим выражение:
k5=k4+k3+k2+k+1 (9)
откуда находим, что k имеет верхнюю границу 2 (точнее для 5-й степени - в пределах от 1,96 до 1,97).
Теперь вторая граница корня Y будет равна k*Vi и со знаком, противоположным знаку коэффициента c5 (граница при Y=0).
Следует иметь в виду, что корень Y будет близко отстоять от этой границы k*Vi только в случае, когда все коэффициенты ci имеют один знак, например все отрицательны, в остальных случаях корень будет принимать меньшие абсолютные значения. Так например в случае Vmax=V1=с1, и при разных знаках у c1 и c5, область решения корня будет находиться вблизи точки -sgn(c5)*|c5/c1|1/4. Выражение sgn(c5) - это знак коэффициента c5.
Таким образом, значение корня будет находиться в границах g1 и g2, где
g1 = 0,
g2 = -sgn(c5)*Vmax*k ,
Vmax - это максимальная величина из рассмотренных выше значений Vi.
K - для полинома 5-й степени можно взять = 1,97.
Теперь, после нахождения обоих границ корня Y, можно постараться получить его более точное значение. При проведении исследований по получению корней, выяснилось, что полином этой степени (а очевидно и более высших степеней) может иметь не совсем плавный ход функции (что делает трудным вести поиск корня с применением производной), и таким образом, даже в сужении границ, функция F(y) на некотором участке может не уменьшать значения, а увеличивать. Поэтому начальным приближением к корню было простое деление отрезка между границами с целью нахождения отрезка, при котором функция бы уменьшала свои значения и тем самым вела к значению корня.
Итак, для нахождения корня используются также значения функции F(y) в точках на отрезке [g1,g2], при которых F(g1)=c5, F(g2)=-sgn(c5)*W , где W - некоторая действительная, положительная величина, которую принимает функция F в точке g2. В связи с тем, что величина W может принимать очень большое значение, следующим действием следует получить значение граничных точек с приемлемыми значениями.
При решении данной задачи сначала подбирались приемлемые границы из 3-х выражений:
- g3=(g1+g2)/2, но при log(W)>10 другое: sgn(g2)*[|g2|]1/2
- в основном, при log(F(g3))>5 такое: sgn(g2)*[|g2|1/u]/100
- аналог 2-го, со значениями, полученными там.
Значение u зависит от логарифма значения полученной граничной точки.
Затем был задан итерационный способ поиска корня с обратной связью (минимизация функции F(y) на отрезке от границ, дающих положительные и отрицательные значения функции F(y)).
Всё сказанное для полинома 5-й степени можно также перенести на полином любой нечетной степени: n=2*m+1, где m - любое вещественное положительное число. Все коэффициенты ci также имеют действительные значения.
Первая граница корня также кроется в знаке последнего коэффициента: cn. Для второй границы корня также получаем величины: Vi=|ci|1/i, где i=1,2,..n
После нахождения максимальной величины Vmax, 2-я граница будет равна k*Vmax co знаком, противоположным знаку cn. Константа k=2.
Таким образом можно выявить теорему:
Теорема о границе корня нечетного полинома: Для любого полинома нечетной степени n с действительными коэффициентами, на границе значений Y от 0 до G=Zn*k*Vmax, где Zn=sgn(-cn) - противоположный знак числа последнего коэффициента, k=2, Vmax - максимальное значение из ряда Vi=|ci|1/i , i=1,2,..n , имеется хотя бы один корень.
По вышеизложенным заключениям была составлена компьютерная программа, которая решает рассматриваемые полиномы с указанием точности нахождения корня и строит график поведения функции на отрезке в границах от g1 до g2.
5) Теперь рассмотрим полиномы четной степени, при n>=6 с действительными коэффициентами.
Нетрудно видеть, что при свободном коэффициенте cn, имеющем отрицательное значение, полином, по подобию нечетных полиномов, имеет хотя бы один действительный корень, в границах, которые могут быть найдены, как и при полиноме нечетной степени.
Остается решить полиномы с положительными свободными коэффициентами cn. В частных случаях, при имеющемся в полиноме коэффициенте, который может принять отрицательное значение и который может дать максимальное значение Vmax среди остальных выражений Vk, полином может иметь также действительный корень. Смысл «может принять отрицательное значение» - это или коэффициент уже имеет отрицательное значение, или он может принять при замене Y на -Y.
Однако в общем случае корень является комплексным числом:
Y = r1 + i*r2
При подстановке этого выражения в уравнении (1) получаем, при n=2m; m=3,4,5,..
(10)
где w=Int[(2m-k)/2]; e=Int[(2m-k-1)/2]; Int[...] - взять целое от...
Отсюда видим, что получается система из двух уравнений: для действительной части и для мнимой
Re(F(y)) = F1(r1k, r22e, ak)=0
Inf(F(y)) = r2*F2(r1k-1, r22b, ak-1)=0 ,
где k=1,2,..n ; e=1,2,..w ; w=n/2 ; b=1,2,..q ; q=w-1
Или:
В системе из двух уравнений F1 и F2 с неизвестными r1 и r2, где степенная составляющая r2 принимает квадратные значения, если избавиться от неизвестной r2, то получим нечетный полином относительно переменной r1.
Так для n=6 получается полином 17-й степени с довольно длинными выражениями из коэффициентов.
После нахождения действительной части корня: r1, находится и мнимая часть: r2, что и приводит к нахождению корня Y.
Однако, при дальнейшем возрастании степени n получаются довольно длинные выражения для неизвестных r1 и r2, и были проведены дальнейшие поиски нахождения границ корней r1 и r2 в выражении (10).
Итак, остаётся найти корни полинома при чётных n>6 со свободным действительным коэффициентом cn , имеющим положительный знак. Примем n=2m, при m=3,4,5,..
Также, как и в случае n=5, будем искать максимальное значение из выражений:
V1=c1; V2=(c2)1/2; V3=(c3)1/3; ... V2m-1=(c2m-1)1/(2m-1); V2m=(c2m)1/2m
Только теперь с учётом того, что корнем Y может быть комплексное число, а также что коэффициенты ck могут быть отрицательными, получаем в общем виде ряд Vk, в котором будут и мнимые числа (с мнимой единицей i). Видим, что здесь Vmax может быть как вещественным, так и мнимым, но не выходящим из значений, аналогичным при n=5. Также для выполнения равенства нуля должен выполняться аналог выражения (9), только для степени n. Что даёт k=2.
И мы получаем в общем случае границу
G2=-k*(Vmax+i*Vmax)
Таким образом, при n=2m, m>3 корень будет находиться в границах от 0 до g2.
Также можно заключить, что вышеприведённые положения охватывают и область с комплексными значениями коэффициентов в полиномах с n>=5. Т.е. при сm , ограниченной значением (v1 + iv2)m , корень Y лежит на границе от 0 до -k*(v1+iv2) .
Т.о. по предлагаемому методу (для полиномов с действительными коэффициентами) сразу указывается ограниченная область, где находится хотя бы один корень.
После получения первых приближённых значений искомого корня можно для более точного решения применить дальше метод Ньютона:
X = x0 - F(x0)/F´(x0)
Либо немного модифицированный способ:
X = x0 + [F(x) - F(x0)]/F´(x0)
который можно охарактеризовать как «спуск» - приближение к корню по производной.
Была составленная компьютерная программа, которая позволяет находить корни полиномов по приведённым выше положениям.
СПИСОК ЛИТЕРАТУРЫ:
- Бронштейн И.Н., Семендяев К.А. Справочник по математике. М.: Наука, 1986