![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 18.11.2012
Сообщений: 7
|
![]()
Мне нужна больше консультационная помощь в этом вопросе, написать я сам хочу. Методов поиска корней есть много, но в каждом какая-нибудь заковырка: то делить полиномы нужно( а это жесть какая-то, не представляю как это можно написать), то границы какие-нибудь нужны, как в методе бисекции. Вобщем даже не знаю, с чего начать. Пока у меня только конструктор простенький, метод, возвращающий степень многочлена и оператор показа/изменения коэффициента при заданной степени. Подскажите, какой метод поиска корней все же использовать, желательно максимально простой, потому что это вообще мое первое знакомство с классами, я много чего еще не понимаю
![]() Ну и еще пара сопутствующих вопросов: Для меня стало открытием, что в пространстве имен std есть уже встроенный список std::list, а именно туда я должен записать корни полинома своего. Подскажите как с ним общаться, или хотя бы как задать в поисковике запрос, мне и там найти ничего не удалось. Стоит ли мне отдельно писать методы поиска корней для степеней < 5? Там ведь скорее всего будет выигрыш по времени по сравнению с численными способами, имеет ли смысл так делать? |
![]() |
![]() |
![]() |
#2 | |||
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]() Цитата:
Цитата:
Также Шилдт или любой другой приличный справочник по C++. Цитата:
Ну, как легко задаваемый, хоть и нестрогий, вариант: метод случайной точки (берёте упомянутые z и -z, если в них знаки разные - метод дихотомии; если одинаковые - раз за разом берёте случайную точку на интервале от -z до z, пока знак в ней не окажется другим или не будет проведено "достаточно много" испытаний). |
|||
![]() |
![]() |
![]() |
#3 | |
Регистрация: 18.11.2012
Сообщений: 7
|
![]() Цитата:
Беда в том, что нужно все корни найти. Что-то подобное я читал на википедии, метод бисекции, только там нужно знать границы отрезка по оси х, в пределах которого лежат все корни. |
|
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#5 | |
Регистрация: 18.11.2012
Сообщений: 7
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]()
Гм... по здравом размышлении, там не максимум, а 2*max.
Соображение очень простое: |x|^n>|a_m|*|x|^m при |x|^(n-m)>|a_m| или |x|>|a_m|^(1/(n-m)). Далее, (2*max)^n = max^n+n*max^n+... >= max^n+max*max^(n-1)+max^2*max^(n-2) >= |a_(n-1)|*max^(n-1)+...+|a_0|. То есть, первый член по модулю заведомо превосходит сумму всех остальных, и при увеличении x ситуация уже не изменится - нулей дальше нет. По сути, это отражение того факта, что полином степени n с некоторого момента оказывается больше любого полинома степени (n-1). |
![]() |
![]() |
![]() |
#7 |
Регистрация: 18.11.2012
Сообщений: 7
|
![]()
ну...вроде бы понял, можно закрыть) не знаю, как тут спасибо сказать, скажу пока так, если напишите - отблагодарю
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программа для приближенного вычисления величины(С++) | Andrew_stud | Помощь студентам | 3 | 15.10.2012 23:11 |
2 в n-ной степени на Delphi | Murman_men | Помощь студентам | 15 | 28.10.2011 21:01 |
Как извлечь корень N-ной степени из Х ?? | kazzz | Общие вопросы Delphi | 2 | 21.03.2011 18:24 |
Решение полинома n-ой степени(регрессия) | Angel-A | Microsoft Office Excel | 3 | 08.06.2009 11:22 |
Программа для перевода из 16-ной с/c в 2-ную | fult | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 05.05.2009 21:57 |