И другие программы этой серии
Поэтому важно параллельно с применением функций типа roots или fzero визуализировать поведение искомых функций на том или ином отрезке значений аргумента. Максимальное содействие в этом может оказать функция fplot (name, [x0, xl]), строящая график функции с именем name на отрезке от х0 до xl.
Например, для ранее рассмотренной функции MyFunctionl с помощью вызова функции
fplot(\'MyFunctionl\',[0,pi/2])-
убеждаемся, что на отрезке от 0 до pi/2 действительно существует единственный нуль этой функции (см. рис. 4.4).
Функция fplot требует от пользователя еще меньше подготовительной работы, чем даже изученная нами ранее функция plot.
Поиск минимума функции
В системе MATLAB имеются специальные функции для поиска минимумов заданных функций. При этом возможен поиск минимума как для функции одной вещественной переменной, так и для функций многих переменных.
Для функций одной переменной их минимумы разыскивает функция fmin:
fmin( name, x0, x1 )
Здесь name представляет имя функции, у которой находятся минимумы, а х0 и xl задают отрезок поиска. Иллюстрировать работу этой функции будем на примере функции hump (переводится как «горб»), специально поставляющейся с системой MATLAB в демонстрационных целях. Эта функция задается формулой
у = 1./((х - 0.3).^2 + 0.01)+1./((х - 0.9).^2 + 0.04) - а ее график легко получается с помощью вызова функции
fplot( \'humps\', [0,3] )
Из рисунка видно, что локальный минимум этой функции существует на отрезке от 0.5 до 1.0. Попробуем найти точку минимума следующим вызовом функции fmin:
х = fmin( \'humps\', 0.5, 1.0 )
х =
0.63701067459059
Для поиска минимума функции нескольких переменных применяется функция fmins:
xmin = fmins( name, x0 )
Здесь name является именем функции нескольких переменных, для которой ищется минимум, а х0 - это вектор ее аргументов, с которого начинается поиск. Для иллюстративного примера создадим простую функцию двух переменных
function у = MyFunc2( х ) у = х(1)^2 + х(2)^2;
имеющую минимумом точку (0,0).