2014 dxdy logo

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

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




 
 Условная минимизация с нелинейными ограничениями
Сообщение08.04.2007, 23:27 
Нужно минимизировать некую целевую функцию V(a,d) от двух переменных a и d при ограничениях вида:
$\delta_1<\int\limits_{0}^{L}{\int\limits_{0}^{x}{f(x,a,d) dx dx}}<\delta_2$
Интеграл аналитически не берется. (по крайней мере в мапле и маткаде)
d>R
где \delta_1, \delta_2 , L , R -извесные константы.

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

Но это ни к чему не привело.

Каким образом можно попытаться решить задачу?
___
Заранее спасибо.

Добавлено спустя 24 минуты 34 секунды:

Предполагается, что нужно самому написать программу, например в дельфях.

Хотя, если кто подскажет, как решать в Матлабе или Маткаде, буду только благодарен. Для проверки тоже нужно...

 
 
 
 
Сообщение09.04.2007, 09:36 
Если быть более точным, то ограничения:
f(x,a,d)=$\frac {4P(x-L)} {E\pi(ax^3+bx^2+cx+d)^4}$
где b=$\frac {r_k-d-aL^3} {L^2}$
c=0
r_k = const
P = const
E = const
а целевая функция V(a,d)=\int\limits_{0}^{L}{\pi(ax^3+bx^2+cx+d)^2dx}
...

 
 
 
 
Сообщение09.04.2007, 16:15 
Есть такая книжка, товарища Д.Химмельблау: "Прикладное нелинейное программирование" (1975 года выпуска). Там описан весьма замечательный метод "скользящего допуска". Метод замечателен тем, что он - 0-го порядка, т.е. весьма неприхотлив к выбору начального приближения (основное условие - сделать диапазон изменения оптимизируемых параметров равномасштабным, посредством нехитрых преобразований). Позволяет использовать ограничения, как в виде равенств, так и в виде неравенств. Много раз использовал сам. Сходится несколько медленнее методов переменной метрики, но существенно стабильнее.

 
 
 
 
Сообщение10.04.2007, 21:21 
Спасибо. Скачал электронный вариант книги. Бегло просмотрел метод, и либо совсем мало чего понял, либо этот метод в данном случае не подходит.

Буду пробовать минимизировать методами случайного поиска...

Может быть еще кто сможет подсказать методы решения поставленной задачи?
Целесообразно ли использовать алгоритмы случайного поиска в данном случае?

 
 
 
 
Сообщение11.04.2007, 20:20 
Аватара пользователя
Минимизацию двумерных итегралов от достаточно гладких функций нужно решать в лоб. Это не 1980 год. Разбей a и d на тысячу отрезков и прогони 1000000 вариантов с распечаткой в файл значения интеграла и целевой функции. Выбери из файла необходимый вариант. Затем выбери более мелкое окно и используй или более умные алгоритмы поиска или аналогичную процедуру до указанной точности. Я имею опыт для семимерного пространства и до 10 целевых функций.

 
 
 
 
Сообщение11.04.2007, 20:47 
Ну не знаю... Я думал, что есть более лучшие методы чем "в лоб".
Ладно. 1000000 разбиений a и d.
На моем стареньком ноуте (500 MHz) Двойной интеграл при разбиении 1000x1000 считает ~1-2 секунды...
2*1000000 секунд ~ 23 дня непрерывной работы. )
Вроде ничего не напутал.

А это всего-навсего одна из подзадач в курсовой работе. )

 
 
 
 
Сообщение12.04.2007, 10:28 
Аватара пользователя
Для курсовой возможно 100х100 разбиений и решишь за приемлемое время. 1000х1000 придаст твоему курсовому элемент духовного подвига. Это любят преподаватели.

 
 
 
 
Сообщение12.04.2007, 12:29 
Аватара пользователя
Есть серьёзная библиотека, DONLP2 (на C и Фортране), для решения задачи нелинейного программирования. Там используется метод SQP. Насколько я знаю, эта библиотека используется в Матлабе. Сам пробовал, правда, на задачах попроще --- мне понравилось.

 
 
 [ Сообщений: 8 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group