Локальные и условные экстремумы функций многих переменных.
Лабораторная работа 4.
IV. Математический анализ: дифференциальное исчисление функции одной и многих переменных.
1. Вычисление пределов.
2. Дифференцирование.
3. Дифференциальное исчисление функции многих переменных.
4. Исследование функции.
§1. Вычисление пределов
В Maple для некоторых математических операций существует по две команды: одна прямого, а другая – отложенного исполнения. Имена команд состоят из одинаковых букв за исключением первой: команды прямого исполнения начинаются со строчной буквы, а команды отложенного исполнения – с заглавной. После обращения к команде отложенного действия математические операции (интеграл, предел, производная и т.д.) выводятся на экран в виде стандартной аналитической записи этой операции. Вычисление в этом случае сразу не производится. Команда прямого исполнения выдает результат сразу.
Для вычисления пределов имеются две команды:
1) прямого исполнения – limit(expr,x=a,par), где expr – выражение, предел которого следует найти, a – значение точки, для которой вычисляется предел, par – необязательный параметр для поиска односторонних пределов (left – слева, right – справа) или указание типа переменной (real – действительная, complex – комплексная).
2) отложенного исполнения – Limit(expr,x=a,par), где параметры команды такие же, как и в предыдущем случае. Пример действий этих команд:
> Limit(sin(2*x)/x,x=0);
> limit(sin(2*x)/x,x=0);
С помощью этих двух команд принято записывать математические выкладки в стандартном аналитическом виде, например:
> Limit(x*(Pi/2+arctan(x)),x=-infinity)=
limit(x*(Pi/2+arctan(x)), x=-infinity);
Односторонние пределы вычисляются с указанием параметров: left – для нахождения предела слева и righ – справа. Например:
> Limit(1/(1+exp(1/x)),x=0,left)=
limit(1/(1+exp(1/x)),x=0,left);
> Limit(1/(1+exp(1/x)),x=0,right)=
limit(1/(1+exp(1/x)), x=0,right);
Задание 1.
1. Вычислить предел . Наберите:
> Limit((1-x)*tan(Pi*x/2),x=1)=
limit((1-x)*tan(Pi*x/2),x=1);
2. Найти односторонние пределы и . Наберите:
> Limit(arctan(1/(1-x)),x=1,left)=
limit(arctan(1/(1-x)), x=1, left);
> Limit(arctan(1/(1-x)),x=1,right)=
limit(arctan(1/(1-x)),x=1, right);
Дифференцирование
Вычисление производных.
Для вычисления производных в Maple имеются две команды:
1) прямого исполнения – diff(f,x), где f – функция, которую следует продифференцировать, x – имя переменной, по которой производится дифференцирование.
2) отложенного исполнения – Diff(f,x), где параметры команды такие же, как и в предыдущей. Действие этой команды сводится к аналитической записи производной в виде . После выполнения дифференцирования, полученное выражение желательно упростить. Для этого следует использовать команды simplify factor или expand, в зависимости от того, в каком виде вам нужен результат.
Пример:
> Diff(sin(x^2),x)=diff(sin(x^2),x);
Для вычисления производных старших порядков следует указать в параметрах x$n, где n – порядок производной; например:
> Diff(cos(2*x)^2,x$4)=diff(cos(2*x)^2,x$4);
Полученное выражение можно упростить двумя способами:
> simplify(%);
> combine(%);
Дифференциальный оператор.
Для определения дифференциального оператора используется команда D(f) – f-функция. Например:
> D(sin);
cos
Вычисление производной в точке:
> D(sin)(Pi):eval(%);
-1
Оператор дифференцирования применяется к функциональным операторам
> f:=x-> ln(x^2)+exp(3*x):
> D(f);
Задание 2.
1. Вычислить производную
> Diff(sin(2*x)^3-cos(2*x)^3,x)=
diff(sin(2*x)^3-cos(2*x)^3,x);
2. Вычислить . Наберите:
> Diff(exp(x)*(x^2-1),x$24)=
diff(exp(x)*(x^2-1),x$24):
> collect(%,exp(x));
3. Вычислить вторую производную функции в точках x=p/2, x=p.
> y:=sin(x)^2/(2+sin(x)): d2:=diff(y,x$2):
> x:=Pi; d2y(x)=d2;
x:=p d2y(p)=1
> x:=Pi/2;d2y(x)=d2;
х:=
§3. Дифференциальное исчисление функций многих переменных
Большинство задач дифференциального исчисления функций многих переменных решается в Maple теми же командами, что и для функций одной переменной, только с указанием дополнительных параметров.
Частные производные.
Для вычисления частных производных функции f(x1,…, xm) используется уже хорошо известная вам команда diff. В этом случае эта команда имеет такой формат: diff(f,x1$n1,x2$n2,…, xm$nm), где x1,…, xm – переменные, по которым производится дифференцирование, а после знака $ указаны соответствующие порядки дифференцирования. Например, частная производная записывается в виде: diff(f,x,y).
Задание 3.
1. Найти и функции .
> f:=arctan(x/y):
>D iff(f,x)=simplify(diff(f,x));
> Diff(f,y)=simplify(diff(f,y));
.
2. Найти все частные производные 2-го порядка функции .
> restart; f:=(x-y)/(x+y):
> Diff(f,x$2)=simplify(diff(f,x$2));
> Diff(f,y$2)=simplify(diff(f,y$2));
> Diff(f,x,y)=diff(f,x,y);
.
§4. Исследование функции
Исследование функции необходимо начинать с нахождения ее области определения, но, к сожалению, это трудно автоматизируемая операция. Поэтому при рассмотрении этого вопроса приходится решать неравенства (см. тему II). Однако, ответить на вопрос, определена ли функция на всей числовой оси, или нет, можно исследовав ее на непрерывность.
Непрерывность функции и точки разрыва.
Проверить непрерывность функции f(x) на заданном промежутке [x1,x2] можно с помощью команды iscont(f,x=x1..x2). Если функция f непрерывна на этом интервале, то в поле вывода появится ответ true – (истина); если функция f не является непрерывной на этом интервале, то в поле вывода появится ответ false – (ложь). В частности, если задать интервал x=-infinity..+infinity, то функция f будет проверяться на всей числовой оси. В этом случае, если будет получен ответ true, то можно сказать, что функция определена и непрерывна на всей числовой оси. В противном случае следует искать точки разрыва. Это можно сделать двумя способами:
1) с помощью команды discont(f,x), где f – функция, исследуемая на непрерывность, x – переменная. Эта команда пригодна для нахождения точки разрыва первого и второго родов.
2) с помощью команды singular(f,x), где f – функция, x – переменная. Эта команда годится для нахождения точек разрыва второго рода как для вещественных значений переменной, так и для комплексных.
Перед использованием этих команд их следует обязательно загрузить из стандартной библиотеки readlib(name), где name– имя любой из указанных выше команд.
Обе эти команды выдают результаты в виде перечисления точек разрыва в фигурных скобках. Тип такой записи называется set. Для того, чтобы в дальнейшем можно было использовать полученные значения точек разрыва, следует из типа set с помощью команды convert перевести их в обычный числовой тип.
Задание 4.1.
1. Найдите точки разрыва функции
> readlib(iscont): readlib(discont):
> iscont(exp(1/(x+3)),x=-infinity..+infinity);
false
Это означает, что функция не является непрерывной. Поэтому следует найти точки разрыва с помощью команды:
> discont(exp(1/(x+3)),x);
{-3}
Ответ наберите в текстовом режиме в новой строке:
“Точка разрыва x=-3.”
2. Найти точки разрыва функции
> readlib(singular):
> iscont(tan(x/(2-x)),x=-infinity..infinity);
false
> singular(tan(x/(2-x)),x);
{x=2},{x=2 }
Здесь _N – целые числа. Ответ наберите в текстовом режиме в новой строке:
“Точки разрыва: x=2 и x=2p(2n+1)/(p(2n+1)-2).”
Экстремумы. Наибольшее и наименьшее значение функции.
В Maple для исследования функции на экстремум имеется команда extrema(f,{cond},x,’s’) , где f- функция, экстремумы которой ищутся. В фигурных скобках {cond} указываются ограничения для переменной, х – имя переменной, по которой ищется экстремум, в апострофах ’s’ – указывается имя переменной, которой будет присвоена координата точки экстремума. Если оставить пустыми фигурные скобки {}, то поиск экстремумов будет производиться на всей числовой оси. Результат действия этой команды относится к типу set. Пример:
> extrema(arctan(x)-ln(1+x^2)/2,{},x,’x0’);x0;
{{x=1}}
В первой строке вывода приводится экстремум функции, а во второй строке вывода – точка этого экстремума.
К сожалению, эта команда не может дать ответ на вопрос, какая из точек экстремума есть максимум, а какая – минимум. Для нахождения максимума функции f(x) по переменной х на интервале используется команда maximize(f,x,x=x1..x2), а для нахождения минимума функции f(x)по переменной х на интервале используется команда minimize(f, x, x=x1..x2). Если после переменной указать ’infinity’или интервал
x=-infinity..+infinity, то команды maximize и minimize будут искать, соответственно, максимумы и минимумы на всей числовой оси как во множестве вещественных чисел, так и комплексных. Если такие параметры не указывать, то поиск максимумов и минимумов будет производиться только во множестве вещественных чисел. Пример:
> maximize(exp(-x^2),x);
Недостаток этих команд в том, что они выдают только значения функции в точках максимума и минимума, соответственно.
В версии пакета аналитических вычислений Maple6 этот недостаток команд maximize и minimize устранен. Координаты точек максимума или минимума можно получить, если в параметрах этих команд после переменной записать через запятую новую опцию location. В результате в строке вывода после самого максимума (минимума) функции будут в фигурных скобках указаны координаты точек максимума (минимума). Например:
> minimize(x^4-x^2, x, location);
, { , }
В строке вывода получились координаты минимумов и значения функции в этих точках.
Задание 4.2.
1. Найти max и min .
> y:=(x^2-1/2)*arcsin(x)/2+x*sqrt(1-x^2)/4-
Pi*x^2/12:
> extrema(y,{},x,'s');s;
После выполнения этих команд найдены экстремумы функции и точки экстремумов. Порядок следования x–координат экстремумов во второй строке вывода соответствует порядку следования значений экстремумов в первой строке вывода. Таким образом, найдены экстремумы в точках (0,0) и (1/2, –p/24+ ). Осталось выяснить, какая из них является максимумом, а какая – минимумом. Для этого используйте команды maximize и minimize.
> ymin:= minimize(y,x=0..1/2);
> ymax:= maximize(y,x=0..1/2);
Ответ наберите в текстовом режиме в новой строке:
“Экстремумы: , .”
Для набора математических символов и греческих букв в текстовом режиме следует нажать кнопку со значком суммы на Панели инструментов. В появившейся строке ввода формул ниже Панели инструментов следует набирать обычные команды Maple,после чего нажать Enter. Например, для отображения формулы следует набрать в строке ввода формул sqrt(3).
Для возвращения в текстовый режим снова следует нажать на кнопку с буквой «Т».
Поэтому порядок набора второй формулы в ответе такой:
§ находясь в текстовом режиме, набрать: miny(x)=y(1/2)= ;
§ нажать на кнопку
§ в строке ввода формул набрать: -Pi/24+sqrt(3)/16
§ нажать Enter;
§ вернуться в текстовый режим.
2. Найдите наибольшее и наименьшее значение на интервале . Наберите:
> f:=x^2*ln(x):
maximize(f,x=1..2);
> minimize(f,x=1..2);
Ответ наберите в текстовом режиме в новой строке:
”Наибольшее значение: , наименьшее значение min f(x)=0“
3. Найти экстремумы функции и установить их характер с помощью второй производной. Наберите:
> restart:y:=x^3/(4-x^2): readlib(extrema):
readlib(maximize): readlib(minimize):
> extrema(y,{},x,'s');s;
{ }
{{x=0},{ },{ }}
Получено два экстремума и три критические точки. Исследование можно продолжить с помощью второй производной:
> d2:=diff(y,x$2): x:=0: d2y(x):=d2;
d2y(0):=0
> x:=2*sqrt(3):d2y(x):=d2;
> x:=-2*sqrt(3):d2y(x):=d2;
Так как , то в точке x=0 нет экстремума; так как , то в точке будет max; так как , то в точке будет min. Перейдите в текстовый режим и запишите ответ в виде:
“Максимум в точке ( ), минимум в точке ( )”.
Локальные и условные экстремумы функций многих переменных.
Для исследования функции на локальный и условный экстремум используется команда из стандартной библиотеки extrema(f,{cond},{x,y,…},'s'), где cond – ограничения для поиска условного экстремума, которые записываются в виде равенств. После ограничений в фигурных скобках указываются все переменные, от которых зависит функция f, а затем в кавычках записывается s – имя переменной, которой будут присвоены координаты точек экстремума. Если ограничений не указывать, то будет производиться поиск локального экстремума.
К сожалению, команда extrema выдает все критические точки, то есть и те, в которых экстремума нет. Отсеять недающие экстремума критические точки можно с помощью непосредственной подстановки этих точек в функцию, например, оператором subs.
Так же, как и для функции одной переменной, наибольшее и наименьшее значения функции многих переменных вычисляются командами maximize(f,{x1,…,xn},range), и minimize(f,{x1,…,xn}, range), где следует указывать после функции в фигурных скобках список всех переменных, от которых она зависит, а затем интервалы для каждой переменной, указывающие область поиска наибольшего и наименьшего значений.
Если требуется найти переменные, при которых линейная функция многих переменных имеет максимум (или минимум) при выполнении определенных ограничений, заданных в виде линейных равенств или неравенств, то следует использовать симплекс-метод. Для этого сначала необходимо загрузит пакет simplex, а затем воспользоваться командой maximize (или minimize), где теперь в качестве range можно указывать в фигурных скобках ограничительную систему неравенств. Пакет simplex предназначен для решения задач линейной оптимизации. После его загрузки команды maximize и minimize меняют свое действие. Теперь эти команды выдают координаты точек, при которых заданная линейная функция имеет максимум или минимум. При этом допускается дополнительная опция для поиска только неотрицательных решений NONNEGATIVE
Контрольные задания.
При выполнении контрольных заданий студенту необходимо подставить вместо буквенных параметров индивидуальные анкетные характеристики:
- число букв в полном имени студента,
- число букв в отчестве студента,
- число букв в фамилии студента.
В отчете на титульном листе необходимо обязательно указать, какие анкетные данные использовались при выполнении контрольных заданий (имя, отчество, фамилия).
Задания.
1. Вычислите пределы
а) б) в)
2. Найти пределы функции при и при .
3. Найти .
4. Найти все частные производные 2 – ого порядка функции
a) . б)
5. Найти точки разрыва функции .
6. Найти экстремумы функции
а) б)
в) на отрезке [-10;10]