Корни полинома
От: Reunion  
Дата: 23.02.05 05:58
Оценка:
Всем привет!

Есть полином произвольной степени вида an*x^n+...+a1*x+a0=0, ai может быть натуральным, комплексным, либо равным нулю. Надо найти все n корней (пусть повторяются либо будут комплексными, их должно быть ровно n) и записать все в комплексной форме (т.е. получить массив комплексных чисел). Скорость работы алгоритма не важна, желательно чтобы был небольшим в реализации. Подскажите пожалуйста алгоритм нахождения всех n корней для заданного полинома (название, ссылку на реализацию и т.д.).

Заранее спасибо.
Re: Корни полинома
От: shadeofgray  
Дата: 23.02.05 09:12
Оценка:
http://www.srcc.msu.su/num_anal/lib_na/cat/cat41.htm

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

Сначала изучаем комментарии к алгоритму http://alglib.manual.ru/equations/eigenpolyroots.php

Там приведено описание метода, ищущего корни полинома, как собственные числа матрицы. Но этот метод только для полинома с вещественными коэффициентами.

Затем идем по ссылке http://www.srcc.msu.su/num_anal/lib_na/cat/cat572.htm и находим алгоритм для поиска собственных чисел комплексной матрицы и применяем его по приведенной выше схеме.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.