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


Автор: GOLD 30.12.2005, 22:56
Здравствуйте! При написании алгоритма (Си) у меня возникли вопросы по мат. части smile. В книгах не нашел ничего вразумительного, а в интернете как-то скупо эта тема раскрыта (может ищу плохо).
Требуется определить корни полинома (т.ч. комплексные). Нашел пока что только два метода решения:
1) метод приближений. Его описание (из найденного текста): берется любое первоначальное комплексное число (например z = 0 + 0i ), потом делается отклонение по действительной и мнимой части, если какое ни будь отклонение приблизится к решению оно берется за первоначальное значение для следующего шага, если нет – отклонения уменьшают, и так до тех пор пока не будет найден корень с удовлетворяющей точностью.

2)метод собственных значений. Описание лежит здесь http://alglib.sources.ru/equations/eigenpolyroots.php . Метод мне показался проще в теории, но сложнее на практике.

У меня в задании две входных строки : сам полином, и зачем-то я не совсем понял зачем, интервал на котором надо найти эти корни. С полиномом все понятно - запихаю его в структуру.
Труднее с методом решения. Помниться года три назад писал программу для вычисления ряда по схеме Горнера. Горнер не имеет никакого отношения к вычислению корней полинома? smile
Подскажите мне, пожалуйста какой метод решения лучше взять для реализации, может еще какие-то есть ? Дайте ссылку может на математику или алгоритм, только, пожалуйста, не на английском языке smile
И последнее, скажите как использовать заданный интервал нахождения корней ? Чтобы долго не искать все корни для больших степеней полинома или может есть каие-нибудь спец. методы вычислений для заданного интервала?
Заранее благодарен! smile
smile smile

Автор: _hunter 3.1.2006, 11:56
ты бы книжку по мат. моделлированию взял ( если в сети найти ничего не можеш )...
http://www.nsu.ru/matlab/Exponenta_RU/educat/systemat/hanova/equation/math.asp.htm
http://forums.realcoding.net/lofiversion/index.php/t5105.html

Автор: GOLD 3.1.2006, 23:02
Ну да, я знаком с темой по второй ссылке, а зачем мне Маткад по первой? smile Я и сам знаю как там корни искать.
Спасибо, конечно, за ответ. А то что-то глухо было. smile
Пришлось взять метод приближений отсюдаhttp://pascal.sources.ru/cgi-bin/show.cgi?cat=incoming&id=polynom. Там на Паскале, переписал все на Си и немного адаптировал под свои нужды. Хотя, честно сказать, не доконца разобрался в работе алгоритма. Зато заработало почти сразу.

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