2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Оптимизация в Mathematica.
Сообщение20.10.2012, 07:25 


23/08/12
53
Здравствуйте!

Написал на форум экспоненты, но что-то так никто мне не ответил. Спрошу здесь. Проблема возникла с пакетом Mathematica.

Мне нужно оптимизировать ОЧЕНЬ большую функцию с помощью NMaximize или FindMaximum, без разницы чем. Дело в том, что если я эту функцию выпишу заранее, Математика мне ее очень-очень долго будет считать, а потом ее не сможет оптимизировать (проверено). Поэтому я хочу, как водится, сделать функцию как func = Function[vars, body], а затем чтобы мне NMaximize сразу подставлял уже начальные значения в нее и считал численно. То есть чтобы не хранить эту функцию заранее, а вычислять численно уже в самой процедуре максимизации.

Это функция правдоподобия с рекурсией, то есть текущие наблюдения связаны с предыдущими, поэтому если ее заранее выписывать, из-за рекурсии получиться МОНСТР. А если вычислять рекурсию по-ходу, получая уже числа, а не нарастающее выражение, то максимизация должна облегчиться (я надеялся, что она хотя-бы начнется).

Проблема в том, что и в этом случае мне максимизирующие процедуры не считают. Просто ступор, и все.

.nb файл залил на народ, вот ссылка: http://narod.ru/disk/62665515001.c9d7fb ... CH.nb.html

Могу так же код здесь выложить, если надо. Очень нужна помощь, спасибо!

 Профиль  
                  
 
 Re: Оптимизация в Mathematica.
Сообщение20.10.2012, 08:56 
Заслуженный участник


25/02/11
1797
Если попробовать подставить в функции какие-нибудь небольшие числа, например,
Код:
egarchseq[{1, 2, 3, 4}]

дает огромные значения, а
Код:
LLF[{1, 2, 3, 4}]

не считает. Оба выдают ошибку
Код:
General::ovfl: Overflow occurred in computation. >>

Можно для начала оттестировать все это на каких-нибудь не очень длинных данных, Length[x]=10, скажем.

 Профиль  
                  
 
 Re: Оптимизация в Mathematica.
Сообщение20.10.2012, 12:00 


23/08/12
53
Попробовал протестировать на Length[x]=10, считает очень долго и не сходится почему-то.

Пытаюсь бороться с Overflow[], но не учень успешно. Добавил в тело функции следующую строку:

If[LLF == Indeterminate || Overflow[] || Underflow[], 10000, LLF]

Должно было помочь и функция возвращала бы по крайней мере 10000, но все равно возвращает Indeterminate.

Вот обновленный файл. Не понимаю, в чем дело.
http://narod.ru/disk/62701259001.fe5580 ... CH.nb.html

PS: А вообще, по ощущениям, что лучше, оптимизационные функции из Mathematica или MatLab'овский fmincon/fminunc?

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group