Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лр№6 по Maple.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
1.44 Mб
Скачать

3. Исследование функции

3.1. Анализ функции на непрерывность

Проверить непрерывность функции f(x) на заданном промежутке [x1, x2] можно с помощью команды

iscont(f,x=x1..x2),

iscont (f,x=a..b, ‘closed’).

Если функция f непрерывна на этом интервале, то в поле вывода появится ответ true – (истина); если функция f не является непрерывной на этом интервале, то в поле вывода появится ответ false – (ложь). Опция ‘closed’ показывает, что конечные точки должны так же проверяться.

Если задать интервал x=-infinity..+infinity, то функция f будет проверяться на всей числовой оси. В этом случае, если будет получен ответ true, то можно сказать, что функция определена и непрерывна на всей числовой оси. В противном случае следует искать точки разрыва. Это можно сделать двумя способами:

1) с помощью команды discont (f,x)

Позволяет определить точки точки разрыва первого и второго родов. Она вычисляет все точки в пределах изменения х от – ∞ до + ∞. Результаты вычислений могут содержать особые экстра- переменные с именами вида _Zn~ и NNn~. В частности они позволяют оценить периодические нарушения непрерывности функций.

2) с помощью команды singular(f,x),

Эта команда предназначена для нахождения точек разрыва второго рода как для вещественных значений переменной, так и для комплексных.

Перед использованием этих команд их следует обязательно загрузить из стандартной библиотеки readlib(name), где name – имя любой из указанных выше команд.

Обе эти команды выдают результаты в виде перечисления точек разрыва в фигурных скобках. Тип такой записи называется set. Для того, чтобы в дальнейшем можно было использовать полученные значения точек разрыва, следует из типа set с помощью команды convert перевести их в обычный числовой тип.

Пример:

> readlib (iscont): readlib (discont):

> iscont (1/х ,х=0..1);

> iscont( 1/x, x=0..1, 'closed' );

> discont (1/x,x);

> singular(tan(x),x);

3.2. Экстремумы. Наибольшее и наименьшее значение функции

В Maple для исследования функции на экстремум имеется команда extrema(f,{cond},x,’s’),

где f – функция, экстремумы которой ищутся,

{cond} – в фигурных скобках указываются ограничения для переменной,

х – имя переменной, по которой ищется экстремум,

’s’ – в апострофах указывается имя переменной, которой будет присвоена координата точки экстремума.

Если оставить пустыми фигурные скобки {}, то поиск экстремумов будет производиться на всей числовой оси. Результат действия этой команды относится к типу set.

Пример:

> f:=(x^2+y^2)^(1/2)-z; g1:=x^2+y^2-16; g2:=x+y+z=10;

> readlib(extrema):

> extrema(f,{g1,g2},{x,y,z},'s');s;

В первой строке вывода приводятся экстремумы функции, а во второй строке вывода – точки этих экстремумов.

К сожалению, эта команда не может дать ответ на вопрос, какая из точек экстремума есть максимум, а какая – минимум.

3.3. Поиск минимумов и максимумов функции

Используются функции стандартной библиотеки:

minimize(expr) maximize(expr)

minimize(expr,vars) maximize(expr,vars)

minimize(expr,vars,infinity) maximize(expr,vars,infinity)

minimize(expr,vars,ranges) maximize(expr,vars,ranges) где vars – список переменных;

Опция infinity означает, что поиск минимумов или максимумов выполняется по всей числовой оси.

Опция ranges – позволяет задавать пределы изменения переменных при поиске.

Команды maximize и minimize обязательно должны быть загружены из стандартной библиотеки командой readlib(name), где name – имя загружаемой команды.

Пример:

> readlib(maximize):readlib(minimize):

> minimize(x^2-3*x+y^2+3*y+3);

> maximize(abs(exp(-x^2)-1/2), x=-4..4);

Координаты точек максимума или минимума можно получить, если в параметрах этих команд после переменной записать через запятую новую опцию location. В результате в строке вывода после самого максимума (минимума) функции будут в фигурных скобках указаны координаты точек максимума (минимума). Например:

> readlib(minimize): minimize(x^4-x^2, x, location);