Поиск минимума функции

В системе MATLAB имеются специальные функции для поиска минимумов заданных функций [1 - 3]. При этом возможен поиск минимума как для функции одной вещественной переменной, так и для функций многих переменных. Для функций одной переменной их минимумы разыскивает функция fmin:

Fmin(name, x0, x1)

Здесь name представляет имя функции, у которой находятся минимумы, а х0 и x1 задают отрезок поиска. Иллюстрировать работу этой функции будем на примере функции hump (переводится как «горб»), специально поставляющейся с системой MATLAB в демонстрационных целях. Эта функция задается формулой:

у = 1./((х - 0.3).^2 + 0.01)+1./((х - 0.9).^2 + 0.04)

- а ее график легко получается с помощью вызова функции

fplot('humps', [0,3])

Из рис. 3.2 видно, что локальный минимум этой функции существует на отрезке от 0.5 до 1.0. Попробуем найти точку минимума следующим вызовом функции fmin:

х = fmin('humps', 0.5, 1.0)

х =

0.63701067459059

Рис.3.2

Для поиска минимума функции нескольких переменных применяется функция fmins:

xmin = fmins(name, x0)

Здесь name является именем функции нескольких переменных, для которой ищется минимум, а х0 - это вектор ее аргументов, с которого начинается поиск. Для иллюстративного примера создадим простую функцию двух переменных:

function у = MyFunc2(х),

у = х(1)^2 + х(2)^2;

имеющую минимумом точку (0,0). Этот текст надо записать в файл MyFunc2.m в текущий каталог системы MATLAB. После этого можно вызвать функцию fmins:

xmin = fmins ('MyFunc2', [1,1]); которая приближенно находит вектор xmin координат точки минимума:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: