Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Алгоритмы > Корень полинома n-й степени


Автор: sultan_str 11.11.07, 14:03
Необходимо найти все корни полинома любой степени, с комплексными коэффициентами.
Что можете посоветовать? Какой метод практичнее и менее трудоемкий

Автор: shadeofgray 11.11.07, 16:03
Можно посоветовать два способа:
1. через собственные числа комплексной матрицы-компаньона
2. алгоритм Дженкинса-Трауба

Оба способа обладают очень хорошей сходимостью. К сожалению, единственная мне известная реализация алгоритма поиска собственных чисел комплексной несимметричной матрицы (необходимо для первой задачи) - это LAPACK, написано на Fortran (правда, можно ещё CLAPACK попробовать прикрутить - и будет на С). В сети где-то были реализации алгоритма Дженкинса-Трауба - можно поискать их.

Автор: sultan_str 11.11.07, 16:31
я пока сам остановился на методе секущих, и один корень я нахожу. с остальными пока проблема, т.к надо делить полином на разность z-корень.
насчет предложенного метода 1 ( также метод парной матрицы), мне не подойдёт т.к. надо будет искать спектр матрицы в форме Фробениуса...что для меня не рационально, т.к полином я решаю для Метода Леверье находя собственные значения.

Добавлено
Есть алгоритм Лаггера применимый для полиномов с комплексными коэффициетами, может кто его знает?
Он реализован в пакете Маткад кстати...

Автор: shadeofgray 12.11.07, 08:48
Цитата shadeofgray @
Есть алгоритм Лаггера применимый для полиномов с комплексными коэффициетами, может кто его знает?

В Numerical Recipes in C, глава 9.5, есть описание этого алгоритма. Ссылку для скачивания PDF-файла ищите на сайте www.nr.com

Автор: sultan_str 12.11.07, 13:58
Обязательно посмотрю эту главу. Потом отпишусь

Автор: sultan_str 12.11.07, 14:59
у меня проблема с просмотром зашифрованных pdf с www.nr.com, если нетрудно выложи главу 9 пож-та в текстовом виде. Пожалуйста :)

Автор: shadeofgray 12.11.07, 19:34
Вы скачиваете с этого адреса - http://www.nrbook.com/a/bookcpdf.php ? Там есть ссылка на плагин, который надо установить, чтобы прочитать файл. Должно работать.

Автор: sultan_str 16.11.07, 13:06
не работает, потому что там не все pdf доступны бесплатно, а тока вводные главы,на остальные надо покупать доступ.Вот так...

Автор: sultan_str 30.11.07, 16:23
Проблема наконец-то решена...причем способа решения получилось два...Один из них реализован в пакетах Maple,MathCad и др. и другой придуманный мною, но сильно зависящий от начальных приближений( хотя за частую все корни полиномов степени выше 3 лежат в круге |z|<1 и начальное приб z=0+0i подходит почти всегда). Спасибо shadeofgray, алгоритм Джекинса-Трауба я так и не отыскал, если где нибудь найдешь выложи мне интересно посмотреть ;)

Автор: amk 07.12.07, 15:35
Что за алгорпитм Джекинса-Трауба? Если это алгоритм вывделения комплексного корня алгебрагического уравнения, то я как-то написал такой алгоритм совершенно самостоятельно и без всяких ссылок (правда для случая вещественных коэффициентов, и на awk)

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)