Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Nick T Гость
|
Добавлено: Вт Сен 21 2004 08:53 Заголовок сообщения: Рекурсивный алгоритм? |
|
|
Привет, всем, наверняка кто-то встречался недавно с похожей задачей, поэтому может подскажите в праильном направлении я двигаюсь или нет?
Итак, общо задача формулируется как интегрирование по N мерному объекту, где N заранее не известно. Мне кажется что именно в таких случаях правильно использовать рекурсию, НО последний раз я это делал лет 8 назад, поэтому это единственное что я еще помню, нет ли ссылок на какие либо исходники с реализацией? Еще мне кажется что именно рекурсией строятся все фракталы, но может быть у меня в голове что-то смешалось. Кроме исходников любые советы тоже приму с удовольствием к сведению. Заранее спасибо! |
|
Вернуться к началу |
|
|
droopy
Зарегистрирован: 28.07.2004 Сообщения: 168
|
Добавлено: Вт Сен 21 2004 08:57 Заголовок сообщения: |
|
|
Сформулируй четко задачу. Н мерный объект, это функция Н переменных? Насколько я помню интегрировать можно только функции. |
|
Вернуться к началу |
|
|
Гость
|
Добавлено: Вт Сен 21 2004 13:55 Заголовок сообщения: |
|
|
ну да, все верно... |
|
Вернуться к началу |
|
|
droopy
Зарегистрирован: 28.07.2004 Сообщения: 168
|
Добавлено: Вт Сен 21 2004 20:19 Заголовок сообщения: |
|
|
Поставь конкретно задачу. А то у тебя иди туда не знаю куда
принеси то не знаю что. А вообще в поиск по численным методам. |
|
Вернуться к началу |
|
|
GREA
Зарегистрирован: 14.05.2003 Сообщения: 758 Откуда: Новосибирск
|
Добавлено: Вт Сен 21 2004 21:35 Заголовок сообщения: |
|
|
Правильнее будет: интегрирование функций N-переменных, на компактном непрерывном N-мерном множестве точек(объекте).
Кстати, интегрирование может производится как по мере объема, так и поверхностной мере (что именно тебе нужно?).
Кроме того, интегрируемая функция может иметь в области определения точки неустранимого разрыва.
Вообще, можно почитать численные методы Волкова или Самарского. Общий алгоритм: Аппроксимируешь объект разбиением на некие примитивы(кубы, параболы...) мелкого размера, интеграл от которых легко посчитать аналитически. Никакой рекурсии не надо. N вложенных циклов(по каждой переменной). То есть пробегаешь все симплексы (элементарные примитивы) по N-мерному граничному кубу, проверяешь данный симплекс на вхождение в объект и интегрируешь его.
А чтобы аналитически посчитать, тут уж нужна рекурсия и синтаксический анализатор. Но обычно на практике так делают редко. |
|
Вернуться к началу |
|
|
GREA
Зарегистрирован: 14.05.2003 Сообщения: 758 Откуда: Новосибирск
|
Добавлено: Вт Сен 21 2004 21:46 Заголовок сообщения: |
|
|
У тебя верно возникнет вопрос, как реализовать N-циклов.
Через рекурсию - изврат. Интеграл будет считаться вечность. Используй стек, для реализации циклов. В стеке N-записей. Каждая запись - суть счетчик i-го цикла. |
|
Вернуться к началу |
|
|
GREA
Зарегистрирован: 14.05.2003 Сообщения: 758 Откуда: Новосибирск
|
Добавлено: Вт Сен 21 2004 21:52 Заголовок сообщения: |
|
|
В догонку: раз речь зашла о фракталах. Рекурсия применяется только в тех из них, которые базируются на аффинных преобразованиях. Например, треугольник и ковер Серпинского, кривая Коха, драконова линия.
В множествах Жулиа (Джулии) и Мандельброта рекурсия по сути отсутвует (цвет точки определяет число итераций, что ближе к циклам). |
|
Вернуться к началу |
|
|
Гость
|
Добавлено: Ср Сен 22 2004 14:43 Заголовок сообщения: |
|
|
Grea
Огромное спасибо, да вопрос был именно про реализацию N циклов! Сейчас думаю как реализовать стек, пока не придумал, но наверное смогу что-нибудь придумать.
Про фракталы, как приятно слышать знакомые названия, только Коха это все-таки снежинка ) А вот что такое драконова линия не подскажешь для общего образования? |
|
Вернуться к началу |
|
|
GREA
Зарегистрирован: 14.05.2003 Сообщения: 758 Откуда: Новосибирск
|
Добавлено: Ср Сен 22 2004 15:43 Заголовок сообщения: |
|
|
Кривая Коха, это ломаная, полученная на базе _/\_
А стек - это обычный массив, где элементов взято с запасом.
Единственные операции над ним - взять из вершины стека, и положить в вершину стека. Естественно, нужна еще переменная, показывающая число эл-тов в стеке.
И вогнать это дело в цикл и систему if, которые будут организовывать перебор по переменным.
Подробнее о фракталах на
http://home.ural.ru/~shabun/fractals/fractals.htm#gfra
А вот это вообще обалденно:
http://www.arbuz.uz/t_chaoscope.html |
|
Вернуться к началу |
|
|
Sharkky
Зарегистрирован: 10.01.2004 Сообщения: 72
|
Добавлено: Ср Сен 22 2004 19:11 Заголовок сообщения: |
|
|
Стэк - посмотри STL. Делать самому такие вещи неправильно. |
|
Вернуться к началу |
|
|
|