Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];

Вниз

Эффективный алгоритм   Найти похожие ветки 

 
ArtemESC ©   (2005-10-17 20:37) [0]

Доброго времени суток...
Не могу надыбать эффективный алгоритм нахождения корней
уравнения, представимого в виде многочлена...
Из справочника мат.анализа нашел только Xn+1 = Xn - f (x)/f"(x) -
но похоже это не то. Может кто знает?


 
fedotawa   (2005-10-17 20:43) [1]

Численными методами. См. гуугле, а также книги про лошадей с нестандартным количеством ног.


 
Lamer@fools.ua ©   (2005-10-17 20:44) [2]

>Из справочника мат.анализа нашел только Xn+1 = Xn - f (x)/f"(x)

Это метод Ньютона, если не ошибаюсь. Если производную f"(x) заменить приблизительным значением: (f(Xn) - f(Xn-1)) / (Xn - Xn-1), то получится метод секущих-хорд, если опять же не ошибаюсь.


 
имя   (2005-10-17 20:48) [3]

Удалено модератором


 
Думкин ©   (2005-10-18 05:36) [4]

> ArtemESC ©   (17.10.05 20:37)  

Почему не то? Там есть условия при которых такой итерационный способ приведет к ответу. Вы их читали?
А так конечно - найдите корень x^2+1=0.


 
ArtemESC ©   (2005-10-18 15:57) [5]

>>Думкин
Дело в том что корней может быть больше одного,
а значит после нахождения первого корня нужно
будет делить многочлены - серъезная потеря точности,
хотя даже и  не факт что найденное число является корнем
(пример: x^2+1=0). Может есть методы
проверки, имеет ли данное уравнение решение?


 
pasha_golub ©   (2005-10-18 16:06) [6]

ArtemESC ©   (18.10.05 15:57) [5]

> Дело в том что корней может быть больше одного,

Корни надо отделить. Найти такие интервалы на которых будет один и только один корень.

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

1. [a;b] є R
2. f(a) * f(b) < 0
3. f - диференциируема и строго монотонна


 
ArtemESC ©   (2005-10-18 20:18) [7]

А нет ли чего по проще?


 
MBo ©   (2005-10-19 06:18) [8]

>А нет ли чего по проще?
Да, конечно.
Найти собственные значения "companion" матрицы, для которой данный полином является характеристическим ;)


 
Думкин ©   (2005-10-19 06:53) [9]

> MBo ©   (19.10.05 06:18) [8]

Издеваешься?

> ArtemESC ©   (18.10.05 15:57) [5]

Есть круги Гершгорена. Для отделения. Хотя всегда при чесленном имеется одно - точнсть вычислений. А вот как вам такое уравнение:
(X- 1.0000000000000001)*(X+ 1.0000000000000001) = 0
Отделите?
Численное решение(любое) - это метод тыка. Суть только одна - тык тот должен быть какм ожно более удачным.

> pasha_golub ©   (18.10.05 16:06) [6]

Достаточные <> необходимые. И в достаточных другой признак применяют - с использованием той самой ненужной второй производной.


 
Думкин ©   (2005-10-19 06:55) [10]

(X- 1.0000000000000000)*(X+ 1.0000000000000002) = 0

Имелось в виду.


 
Думкин ©   (2005-10-19 06:56) [11]

Тьфу.
(X + 1.0000000000000000)*(X+ 1.0000000000000002) = 0
Так разумеется. Совсем тупеешь. :(


 
Думкин ©   (2005-10-19 06:56) [12]

Тьфу.
(X + 1.0000000000000000)*(X+ 1.0000000000000002) = 0
Так разумеется. Совсем тупеешь. :(


 
MBo ©   (2005-10-19 07:26) [13]

>Думкин ©   (19.10.05 06:53) [9]
> MBo ©   (19.10.05 06:18) [8]
>Издеваешься?
Нет. Хлопец начнет корни полинома пятнадцатой степени искать ньютоноподобными методами - и все, приплыли из-за потери точности, даже при уточнении (polishing) корней. (Хотя сам я 9-ю степень вполне успешно решал, правда, что немаловажно - для "неплохих" коэфициентов полинома )

А для Eigenvalue problem нумерикалистами наработаны изощренные методы.


 
Думкин ©   (2005-10-19 07:31) [14]

> MBo ©   (19.10.05 07:26) [13]

Это понятно. Но исходя из вопроса - вряд ли будет поиск в ту сторону направлен.


 
MBo ©   (2005-10-19 07:42) [15]

>Думкин ©   (19.10.05 07:31) [14]
>вряд ли будет поиск в ту сторону направлен.
Согласен.


 
КаПиБаРа ©   (2005-10-19 08:10) [16]

MBo ©   (19.10.05 7:26) [13]
Для неплохих коэффициентов я и 50-ую степень решал :)



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.063 c
5-1107495689
Артем К.
2005-02-04 08:41
2005.11.06
Как создать компонент, состоящий из нескольких компонет?


14-1129126547
Anatoly Podgoretsky
2005-10-12 18:15
2005.11.06
Тестирование DSL


4-1125837051
lexales
2005-09-04 16:30
2005.11.06
Перехват событий Explorer


2-1129371640
ZMaximI
2005-10-15 14:20
2005.11.06
Tray


3-1127550029
menart
2005-09-24 12:20
2005.11.06
ADO API





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский