Метод Бэрстоу
В численном анализе метод Бэрстоу является эффективным алгоритмом поиска корней действительного многочлена произвольной степени. Алгоритм впервые появился в приложении к книге «Прикладная аэродинамика» Леонарда Бэрстоу 1920 года . [ 1 ] [ нужен неосновной источник ] Алгоритм находит корни в комплексно-сопряженных парах, используя только действительную арифметику.
см. в разделе «Алгоритм поиска корня» Другие алгоритмы .
Описание метода
[ редактировать ]Подход Бэрстоу заключается в использовании метода Ньютона для корректировки коэффициентов u и v в квадратичной системе. до тех пор, пока его корни не станут также корнями решаемого многочлена. Затем можно определить корни квадратичного уравнения и разделить многочлен на квадратное, чтобы исключить эти корни. Затем этот процесс повторяется до тех пор, пока полином не станет квадратичным или линейным и не будут определены все корни.
Полное деление полинома, который нужно решить
к дает частное и остаток такой, что
Второе подразделение к выполняется для получения частного и остаток с
Переменные и являются функциями и . Их можно найти рекурсивно следующим образом.
Квадратное равномерно делит многочлен, когда
Ценности и для которого это происходит, можно обнаружить, выбрав начальные значения и повторив метод Ньютона в двух измерениях.
пока не произойдет сближение. Таким образом, этот метод поиска нулей полиномов можно легко реализовать с помощью языка программирования или даже электронной таблицы.
Пример
[ редактировать ]Задача – определить пару корней многочлена
В качестве первого квадратичного многочлена можно выбрать нормализованный многочлен, образованный из трех старших коэффициентов функции f ( x ),
Затем итерация создает таблицу
Нет. | в | v | длина шага | корни |
---|---|---|---|---|
0 | 1.833333333333 | −5.500000000000 | 5.579008780071 | −0.916666666667±2.517990821623 |
1 | 2.979026068546 | −0.039896784438 | 2.048558558641 | −1.489513034273±1.502845921479 |
2 | 3.635306053091 | 1.900693009946 | 1.799922838287 | −1.817653026545±1.184554563945 |
3 | 3.064938039761 | 0.193530875538 | 1.256481376254 | −1.532469019881±1.467968126819 |
4 | 3.461834191232 | 1.385679731101 | 0.428931413521 | −1.730917095616±1.269013105052 |
5 | 3.326244386565 | 0.978742927192 | 0.022431883898 | −1.663122193282±1.336874153612 |
6 | 3.333340909351 | 1.000022701147 | 0.000023931927 | −1.666670454676±1.333329555414 |
7 | 3.333333333340 | 1.000000000020 | 0.000000000021 | −1.666666666670±1.333333333330 |
8 | 3.333333333333 | 1.000000000000 | 0.000000000000 | −1.666666666667±1.333333333333 |
После восьми итераций метод выдал квадратичный множитель, содержащий корни -1/3 и -3 в пределах представленной точности. Длина шага начиная с четвертой итерации демонстрирует сверхлинейную скорость сходимости.
Производительность
[ редактировать ]Алгоритм Бэрстоу наследует локальную квадратичную сходимость метода Ньютона, за исключением случаев, когда квадратичные коэффициенты кратности выше 1, когда сходимость к этому коэффициенту является линейной. Особый вид нестабильности наблюдается, когда многочлен имеет нечетную степень и только один действительный корень. Квадратичные коэффициенты, имеющие небольшое значение в этом действительном корне, имеют тенденцию расходиться до бесконечности.
![]() |
![]() |
![]() |
Изображения представляют пары . Точки в верхней полуплоскости t > 0 соответствуют линейному множителю с корнями , то есть . Точки нижней полуплоскости t < 0 соответствуют квадратичным множителям с корнями , то есть, , так в целом . Точки окрашены в соответствии с конечной точкой итерации Бэрстоу, черные точки указывают на расходящееся поведение.
Первое изображение представляет собой демонстрацию случая единственного реального корня. Второе указывает на то, что можно исправить расхождение, введя дополнительный действительный корень, ценой замедления скорости сходимости. В случае полиномов нечетной степени можно также сначала найти действительный корень, используя метод Ньютона и/или метод сокращения интервала, так что после дефляции остается полином четной степени с лучшим поведением. Третье изображение соответствует примеру выше.
Ссылки
[ редактировать ]- ^ Бэрстоу, Леонард (1920). «Приложение: Решение алгебраических уравнений с числовыми коэффициентами в случае существования нескольких пар комплексных корней» . Прикладная аэродинамика . Лондон: Лонгманс, Грин и компания. стр. 551–560.
Внешние ссылки
[ редактировать ]- Алгоритм Бэрстоу в Mathworld
- Числовые рецепты на Фортране 77 онлайн
- Пример решателя полиномиального корня (deg( P ) ≤ 10) с использованием метода Бэрстоу
- LinBairstowSolve, реализация метода Лин-Бэрстоу на C++ с открытым исходным кодом, доступная как метод библиотеки VTK.
- Онлайн-нахождение корня многочлена - метод Бэрстоу Фархада Мазлуми