Иллюстрированный самоучитель по Mathematica

         

Оптимизационные задачи



Поиск максимального и минимального чисел в списке

В практике математических прикладных вычислений важная роль принадлежит оптимизационным задачам, например таким, как поиск минимальных и максимальных значений функций одной или нескольких переменных. Mathematica дает разнообразные возможности решения задач оптимизации — от поиска элементов списка с минимальным или максимальным значением до поиска локальных и даже глобальных минимумов функций, заданных аналитически.

Для поиска максимального и минимального значений ряда чисел, входящих в список, система Mathematica предоставляет следующие средства:



  • Max [xl, х2,...]— возвращает наибольшее значение из xi;
  • Max[{xl, x2,...}, {yl,...},...] — выбирает наибольший элемент из нескольких списков;
  • Min[xl, x2,...] — возвращает наименьшее значение из xi;
  • Min[{xl, x2,...}, {yl,...},...] — выбирает наименьший элемент из нескольких списков.

Следующие примеры показывают действие этих простых функций.

Ввод (In) Вывод(Out)
Мах[1,5,2,6.5,3,4] 6.5
Мах[{1,3,2},{4,5,6},{9,8,7}] 9
Min[1,5,2,6.5,-3,4] -3
Min[{1,3,2},{4,5,6},{9,8,7}] 1

Поиск локального минимума аналитической функции

Если нужен поиск локального минимума некоторой аналитической функции, используется функция FindMinimum [ f, {х, х0 } ], которая выполняет поиск локального минимума функции f, начиная со значения х=х0, и возвращает его значение.

Для указания градиента минимизируемой функции используется опция Gradient.

Приведем примеры применения функции FindMinimum:

FindMinimum[-хЕхр[-2 х] , {х, 1}]

{-0.18394, {х^ 0.5}}

FindMinimum[-хЕхр[-2 х] , {х, 0.2, 6, 1}]

{-0.18394, {х^ 0.5}}

FindMinimum [-5 xExp[-x/2] (2 + Sin[3x]), {х, 1}]

{-7.17833, {х^ 0.783139}}

FindMinimum[-5xExp[- x/2] (2 + Sin[3 x]) , {x, 3}]

(-10.6299, {x^ 2.5805}}

FindMinimum[-5xExp[- x/2] (2+Sin[3x]), {x, 4}]

{-6.79134, {x^ 4.6179}}

FindMinimum[l00 (y-x2)2+ (1 -x)2, {x, 0}, {y, 0},

AccuracyGoal-»Automatic]

{9.90511X10-13, {x->l., y^ 0.999999}}

Эти примеры показывают, что выбирая разные начальные значения х, можно найти ряд минимумов функции f(x), разумеется, если таковые имеют место. Если необходимо разыскивать локальные максимумы, достаточно перед функцией поставить знак «минус» или умножить ее на -1.



Содержание раздела