2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Как найти наименьшее значение ФМП в области с помощью Maple
Сообщение25.03.2012, 10:55 


08/04/09
43
Магнитогорск
Здравствуйте!

Возник такой вопрос. У меня есть некоторое условие - условие области. Например круг (в случае плоскости) $c_1^2+c_2^2<2$, или шар $c_1^2+c_2^2+c_3^2<2$ (в случае трехмерного пространства). Вообще говоря, это должно быть некоторое замкнутое выпуклое множество, т.е. такое множество, которое вместе с точками $x,y$ всегда содержит все точки $\theta x +(1-\theta)y,\theta\in [0;1]$. И в этой области нужно найти наименьшее значение функции нескольких переменных. Понятно как это делать на бумаге, однако не получается сделать в Maple 13. Пробовал использовать extrema(expr, constraints, vars, 's'), minimize(expr, opt1, opt2, ..., optn) - не получилось. Вот, как чем-то похожий на то, что мне нужно, пример - задача из Бермана №3279:
найти наименьшее значение функции $z(x,y)=x^2-y^2$ в круге $x^2+y^2\leq4$. Стационарная точка $(0;0)$ находится внутри указанного круга, но не попадает в ответ. Наибольшее и наименьшее значение достигается на границе области: максимум (=4) в точках $y=0,x=\pm 2$, наименьшее (=-4) в точках $x=0,y=\pm 2$. Можно ли эту задачу решить в Maple? Есть ли в Maple встроенные функции для этого?

 Профиль  
                  
 
 Re: Как найти наименьшее значение ФМП в области с помощью Maple
Сообщение25.03.2012, 15:57 
Заслуженный участник


12/07/07
4530
В хелпе Maple 12 и 15 к extrema написано, что ограничения должны иметь вид равенств или выражений, которые интерпретируются СКА как равенства. Поэтому эта функция не подходит.
Для поиска минимума/максимума можно воспользоваться, соответственно, функцией Minimize/Maximize пакета Optimization
Код:
> with(Optimization);
>Minimize(x^2-y^2, {x^2+y^2 <= 4});
    [-4.00000000000035794, [x = -.350360155761753937e-7, y = 2.00000000000008970]]
>Maximize(x^2-y^2, {x^2+y^2 <= 4});
    [4.00000000000035794, [x = 2.00000000000008970, y = -.350360155633444327e-7]]

Стационарную точку $(0,0)$ функция Minimize/Maximize не вернет, поскольку не в ней достигается минимум/максимум.

В 12 версии эти функции работали не очень хорошо. При решении задач приходилось поиск программировать вручную. 13-ую и 14-ую версии не пробовал. По сравнению с 12-ой версией, в 15-ой пакет Optimization переработан. Но, думаю, в реальных задачах все равно придется что-то программировать, а что-то исследовать на бумаге.

Пишите что конкретно Вам нужно, если это, конечно, не упражнения из стандартного сборника задач (которые нужно выполнять вручную на бумаге, а не при помощи пакета).

 Профиль  
                  
 
 Re: Как найти наименьшее значение ФМП в области с помощью Maple
Сообщение25.03.2012, 20:50 


08/04/09
43
Магнитогорск
GAA

конечно, я не хотел решать задачи из Бермана с помощью Maple. Просто в качестве примера привел.
А нужно найти минимум функции, скажем,
Код:
2.67133042174250318079719*10^(-24)*c[1]*c[2]-4.00699563261375477119578*10^(-24)*c[1]*c[3]+
8.87844602681129948762410*c[1]^2+33.0633418374451592244956*c[2]^2+
73.3715015218349254526146*c[3]^2+124.822856887603665211931*c[4]^2+
194.586817938088378329173*c[5]^2+279.854195826615936753352*c[6]^2-0.196594451745187968278300e-3*c[4]*c[5]+0.439503556499495502370995e-4*c[4]*c[6]-0.131242884165349280651375e-3*c[5]*c[6]+
8.01399126522750954239156*10^(-24)*c[2]*c[3]+
2.08000000000000000000000*c[1]-1.04000000000000000000000*c[2]+
.693333333333333333333337*c[3]-0.273236633476537675817676e-2*c[4]-0.720618438841097199893720e-3*c[5]-0.182407812218276317050810e-2*c[6]+13.8598991031578769608615

ну в самом примитивном случае при ограничении, например, таком
Код:
c[1]^2+c[2]^2+c[3]^2+c[4]^2+c[5]^2 <= 1

Я попробовал то, что Вы посоветовали, получается
Код:
13.7282597870405160, [c[1] = -.117137615846217722,
c[2] = 0.157273878289908610e-1,
c[3] = -0.472481357851863449e-2,
c[4] = 0.109449768403411028e-4,
c[5] = 0.185166967093809184e-5,
c[6] = 0.325897898149741580e-5]

Наверное это правильно. Буду пытаться еще использовать этот метод! Большое Вам спасибо!

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

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



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

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


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

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