|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Локальные и условные экстремумы функций многих переменных
Для исследования функции нескольких пременных на локальный и условный экстремум используется команда из стандартной библиотеки extrema(f,{cond},{x,y,…},'s'), где cond – ограничения для поиска условного экстремума, которые записываются в виде неравенств или равенств. После ограничений в фигурных скобках указываются все переменные, от которых зависит функция f, а затем в кавычках записывается s – имя переменной, которой будут присвоены координаты точек экстремума. Для поиска локального экстремума множество {cond} задается пустым {}. Отметим, что команда extrema выдает все критические точки, т.е. и те, в которых экстремума нет. Отсеять недающие экстремума критические точки можно с помощью подстановки этих точек в функцию, с использованием команды subs. Как и для функции одной переменной, наибольшее и наименьшее значения функции нескольких переменных можно найти командами maximize(f,{x1,…,xn},range); и minimize(f,{x1,…,xn}, range); в которых следует указывать после функции в фигурных скобках список всех переменных, от которых она зависит, и интервалы для каждой переменной, задающие область поиска наибольшего и наименьшего значений. Если требуется найти переменные, при которых линейная функция многих переменных имеет максимум (или минимум) при наложении ограничений, заданных в виде линейных равенств или неравенств нужно использовать симплекс-метод. Для этого необходимо загрузить пакет simplex, а затем воспользоваться командой maximize (или minimize), где в качестве range в фигурных скобках указывают ограничения. Пакет simplex предназначен для решения задач линейной оптимизации. После его загрузки команды maximize и minimize выдают координаты точек, при которых заданная линейная функция имеет максимум или минимум. Для поиска неотрицательных решений используется команда NONNEGATIVE. Пример. Найти экстремумы функции . [> restart: readlib(extrema): [> f:=2*x^4+y^4-x^2-2*y^2: [> extrema(f,{},{x,y},'s');s; {0, } {{ x =0, y =0}, { x = y =0}, { x = , y =0}, { x =0, y =1}, { x =0, y =-1}, { x = , y =1}, { x = , y =-1}, { x = , y =1}, { x = , y =-1}} Получилось два экстремума, поэтому очевидно, что fmax=0 и fmin=-9/8, причем максимум достигается в точке (0,0). Остальные критические точки следует проверить. В силу четности функции по обеим переменным, можно ограничиться проверкой критических точек с положительными координатами. [> subs([x=1/2,y=1],f);
[> subs([x=1/2,y=0],f);
[> subs([x=0,y=1],f); -1 Таким образом, функция имеет локальные экстремумы: f max= f (0,0)=0 и f min= f = f =-9/8. Пример. Найти наибольшее и наименьшее значения функции в прямоугольнике x = 0, y = 0, x = 1, y = 2. Замечание: заданную область удобнее записывать в виде неравенств: 0 x 1, 0 y 2. [> restart: readlib(maximize): readlib(minimize): [> f:=x^2+2*x*y-4*x+8*y: [> maximize(f,{x,y},{x=0..1,y=0..2}); [> minimize(f,{x,y},{x=0..1,y=0..2}); -4 Таким образом, функция имеет наибольшее значение fmax=17 и наименьшее значение fmin=-4. Пример. Найти условные экстремумы функции f (х, у,z) = xy + yz при x 2 + y 2 = 2, y + z = 2, x > 0, y > 0, z > 0. [>restart: readlib(extrema): f:=x*y+y*z: [>assume(x>0);assume(y>0);assume(z>0); [>simplify(extrema(f,{x^2+y^2=2,y+z=2},{x,y,z}, 's')); {min( RootOf(_Z2+4_Z+1)+ , 0), max( RootOf(_Z2+4_Z+1)+ , 2)} Несмотря на предварительное использование команды упрощения выражения simplify, полученный результат имеет не аналитический вид, однако это можно исправить, если воспользоваться командой convert. [> convert(%,radical); {min , max } [> convert(s,radical); {{x~=1,z~=1,y~=1},{x~=-1,z~=1,y~=1}, {x~= ,y~= , z~= }} В этом случае команда extrema сама определила характер экстремумов, однако, в каких точках функция имеет экстремумы, можно определить подстановкой. [> subs(s[1],f); [> subs(s[2],f); [> subs(s[3],f):convert(%,radical):simplify(%);
Таким образом, функция имеет следующие условные экстремумы: f max = f (1,1,1) = 2 и f min = f (-1,1,1) = 0; третья критическая точка является седловой.
Пример. При каких значениях переменных функция f (x, y, z) = - x + 2 y + 3 z имеет максимум, если требуется выполнение условий x + 2 y - 3 z £ 4, 5 x - 6 y + 7 z £ 8, 9 x + 10 z £ 11, а все переменные неотрицательные? [> restart: with(simplex): Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.) |