Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Алгоритмы > Корни полинома |
Автор: GOLD 30.12.2005, 22:56 |
Здравствуйте! При написании алгоритма (Си) у меня возникли вопросы по мат. части ![]() Требуется определить корни полинома (т.ч. комплексные). Нашел пока что только два метода решения: 1) метод приближений. Его описание (из найденного текста): берется любое первоначальное комплексное число (например z = 0 + 0i ), потом делается отклонение по действительной и мнимой части, если какое ни будь отклонение приблизится к решению оно берется за первоначальное значение для следующего шага, если нет – отклонения уменьшают, и так до тех пор пока не будет найден корень с удовлетворяющей точностью. 2)метод собственных значений. Описание лежит здесь http://alglib.sources.ru/equations/eigenpolyroots.php . Метод мне показался проще в теории, но сложнее на практике. У меня в задании две входных строки : сам полином, и зачем-то я не совсем понял зачем, интервал на котором надо найти эти корни. С полиномом все понятно - запихаю его в структуру. Труднее с методом решения. Помниться года три назад писал программу для вычисления ряда по схеме Горнера. Горнер не имеет никакого отношения к вычислению корней полинома? ![]() Подскажите мне, пожалуйста какой метод решения лучше взять для реализации, может еще какие-то есть ? Дайте ссылку может на математику или алгоритм, только, пожалуйста, не на английском языке ![]() И последнее, скажите как использовать заданный интервал нахождения корней ? Чтобы долго не искать все корни для больших степеней полинома или может есть каие-нибудь спец. методы вычислений для заданного интервала? Заранее благодарен! ![]() ![]() ![]() |
Автор: _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 |
Ну да, я знаком с темой по второй ссылке, а зачем мне Маткад по первой? ![]() Спасибо, конечно, за ответ. А то что-то глухо было. ![]() Пришлось взять метод приближений отсюдаhttp://pascal.sources.ru/cgi-bin/show.cgi?cat=incoming&id=polynom. Там на Паскале, переписал все на Си и немного адаптировал под свои нужды. Хотя, честно сказать, не доконца разобрался в работе алгоритма. Зато заработало почти сразу. |