![]() |
|
|
![]()
|
|
| Dr.Wisdom |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 6.1.2005 Репутация: нет Всего: 0 |
Кароче есть класс Полином, который полином (его коэфиценты) вплоть до 100-той степени.
Нужно найти его корни. Первое что пришло в голову - дихотомия, только навороченная, тоесть начиная с предпоследней производной и так далее до нулевой. Много и муторно. И медленно. Есть альтернативные варианты? И еще. Есть класс Полином2 для двумерного полинома, определяющего поверхность. Для него предыдущйи метод усложняется офигенно. Не говорю уже о Полиноме3, определяющем объем в просттранстве-времени. В общем есть какие либо методы попроще? ЗЫ общее задание загнать заданную поверхность в шар указанного радиуса. --------------------
VIVA LA RESISTANCE |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: нет Всего: 93 |
Есть более быстрые методы.
Метод Ньютона, например. Там правда, производные надо считать, но это для полинома не проблема А вообще причём здесь С++? -------------------- Да. Именно так. |
|||
|
||||
| Dr.Wisdom |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 6.1.2005 Репутация: нет Всего: 0 |
С++ тут при том, что на нем делается (С ОпенГЛ вместе)
Метод Ньютона? подумаю. PS. Че делсать с полиномом двойным (от двух переменных) для них Ньютон не предусмотрен. (а для тройных) вот такие классы полиномов
ЗЗЫ У-У-ПС. че то у меня бровзер глючит или форум млм ишор че, кароче извините за ту помуйню, что я натворил Это сообщение отредактировал(а) Dr.Wisdom - 7.10.2005, 17:33 --------------------
VIVA LA RESISTANCE |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: нет Всего: 93 |
Но с таким же успехом можно и на Паскале, и на бейсике это написать. Такую тему однозначно нужно в Алгоритмы. Это сообщение отредактировал(а) Дрон - 7.10.2005, 17:32 -------------------- Да. Именно так. |
|||
|
||||
| Hroft |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 20.10.2003 Где: Москва Репутация: нет Всего: 3 |
А как связаны дихотомия и производные? И где вообще такая задача возникла? Почти наверняка можно обойти. А метод Ньютона очень даже работает с любым числом переменных, если я не ошибаюсь. |
|||
|
||||
| Dr.Wisdom |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 6.1.2005 Репутация: нет Всего: 0 |
Дихотомия может применяться только когда на отрезке одно решение. А нули производной разделяют решения. Найти нули производной так же трудно. Ищем вторую производную. и так далее до той нули которой можем найти. Потом наверх. Ужас. С ньютоном также. Только корни ищуться проще.
--------------------
VIVA LA RESISTANCE |
|||
|
||||
| Dr.Wisdom |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 6.1.2005 Репутация: нет Всего: 0 |
Че то я не врубаюсь.
Как это метод ньютона работает со многими переменными. Полином выглядит так (мля как вставить картинку?!!) P(u,v,T) = *Сумма по i,j,k от 0 до N* (Aijk * u^i * v^j * T^k) Задача сводиться к "найти корни системы *Сумма по i,j от 0 до N* (Aij * i * u^(i-1) * v^j) = 0 *Сумма по i,j от 0 до N* (Aij * j * u^i * v^(j-1)) = 0 " Они есть везде Aijk или Aij - Матрицы или их аналоги в 3х мерном пространстве. --------------------
VIVA LA RESISTANCE |
|||
|
||||
| MBo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 10.6.2002 Репутация: 5 Всего: 18 |
Нахождение корней полинома высокой степени - численно весьма неустойчивая задача.
Можно попробовать способ через нахождение собственных значений матрицы. Для этой задачи (Eigenproblem, eigenvalues) разработаны изощренные методы. |
|||
|
||||
| Dr.Wisdom |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 6.1.2005 Репутация: нет Всего: 0 |
Ну предположем нашел я собственные значения и что?
Лямда раз, дав три ... эн. Как потом действовать. Че с ними делать? --------------------
VIVA LA RESISTANCE |
|||
|
||||
| Dr.Wisdom |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 6.1.2005 Репутация: нет Всего: 0 |
только что пришла идея.
может можно упростить эту каку сведя мою матрицу к каноническому виду? (это ты имел в виду говоря собственные значения?) тогда будет что то вроди "Cумма по i от 0 до N" (Ci* u^i * v^i * T^i) - в общем случае, а задача сведеться к "найти корни системы "Cумма по i от 0 до N" (Ci * i * u^(i-1) * v^i) = 0 "Cумма по i от 0 до N" (Ci * j * u^i * v^(i-1)) = 0 " Все проще. Только как их искать тоже черт знает. Я еще подумаю. И напишу тута потом. Может кто знает, А? --------------------
VIVA LA RESISTANCE |
|||
|
||||
| Dr.Wisdom |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 6.1.2005 Репутация: нет Всего: 0 |
В общем случае: Есть объем в пространсве-времени (4Д). Объем задан матрицей коэфицентов для полинома (где то висела уже формула). Нужно его загнать в шар указанного радиуса. Чтобы за экран не вылазил. Я его потом еще вокруг осей x,y,z,t врашать буду. Тоже не знаю пока как, но это другой вопрос и вроди чисто математический и вроди прощеи вообще не об этом речь. Ф-ла: P(u,v,T) = *Сумма по i,j,k от 0 до N* (Aijk * u^i * v^j * T^k) ЗЫ. Че то я со словом "квадратичная форма" попутал. Или нет? Каша в голове! Можно че то типа того как было указанно сделать? --------------------
VIVA LA RESISTANCE |
|||
|
||||
| MBo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 10.6.2002 Репутация: 5 Всего: 18 |
>Ну предположем нашел я собственные значения и что? Че с ними делать?
Как ни тривиально - но придется книжки читать по численным методам. |
|||
|
||||
| Dr.Wisdom |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 6.1.2005 Репутация: нет Всего: 0 |
Например. У меня есть справочники по математике. Учебники по высшей математике. По методам нету ничего. Название хотябы скажи. И автора. А лучьше ссылку. --------------------
VIVA LA RESISTANCE |
|||
|
||||
| MBo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 10.6.2002 Репутация: 5 Всего: 18 |
http://www.srcc.msu.su/num_anal/lib_na/cat/cat0.htm (на фортране)
http://alglib.sources.ru/ http://algolist.manual.ru/ книги на русском - то,что вспомнилось - Бахвалов, Калиткин, Самарский, Нэш на английском - Numerical Recipes Online - www.nr.com |
|||
|
||||
| Dr.Wisdom |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 6.1.2005 Репутация: нет Всего: 0 |
Вот так вот!!!!
Я знаю ответ на вопрос! Книга духов подсказала. Выйдя в мир духов я спросил у всеми уважаемого демона Бедариэля тот вопрос, на которые вы, cмертные ответить не смогли. Итак. Его ответ был "Метод градиента". Метод говорит: Возми точку где нибудь. Окружи ее 8-ю точками. Возми минимальную из них. Если она - центральная то уменьши вдвое растояние между точками (используемая точность) если нет, то возьми в качестве центра ту, что меньше. Повтори, пока точность не превысит заданной. Еще он посоветовал мне вариант метода Ньютона для плоскости. то же самое, только касательная береться к поверхности однисм из навороченных способов из серии "придумай от фонаря" Да сияет дух благородного демона Бедариэля во веки. --------------------
VIVA LA RESISTANCE |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |