Кафедра телекоммуникационных систем
«Основы математического моделирования»
Лекция №6:
Минимизация функций одной или нескольких переменных
Учебные вопросы:
1.Минимизация функции одной переменной. 2.Минимизация функции нескольких
переменных без ограничений.
Рекомендуемая литература: (L#6)
1.Половко А.М., Бутусов П.Н. MATLAB для студентов. – СПб.: БХВ-Петербург, 2005. – 320 с.
2.Дьяконов В.П. MATLAB 6: учебный курс. – СПб.: Питер, 2001. – 592 с.
3.Дьяконов В.П., Круглов В. Математические пакеты расширения MATLAB. Специальный справочник.
4.Дьяконов В.П. MATLAB 6.5 SP1/7.0 + Simulink 5/6. Основы применения. Серия «Библиотека профессионала». – М.: СОЛОН. Пресс, 2005. – 800 с.
5.Дьяконов В.П. MATLAB 6.5 SP1/7 + Simulink 5/6R в математике и моделировании. Серия Библиотека профессионала. – М.: СОЛОН- Пресс, 2005. – 576 с.
6.Потемкин В. Г. Система инженерных и научных расчетов MATLAB 5.х: в 2-х т.
7.Чен К., Джиблин П. Ирвинr А. МAТLAВ в математических исследованиях: Пер. с анrл. – М.: Мир, 2001. – 346 c.
8.Ануфриев И.Е., Смирнов А.Б., Смирнова Е.Н. MATLAB 7. – СПб.: БХВ-Петербург, 2005. – 1104 с.
Введение
В основу большинства управляющих протоколов современных телекоммуникационных технологиях положено в том или ином виде решение оптимизационной задачи, связанное с нахождением экстремума (экстремумов) критерия оптимальности.
Критерий оптимальности – показатель или система показателей качества работы некоторой системы, значение которого должно быть минимизировано
(максимизировано)
(Словарь по кибернетике, 1989 г.)
Например, необходимо минимизировать среднюю доставку пакетов в сети; максимизировать производительность ТКС; минимизировать стоимость использования (аренды) сетевых ресурсов;
максимизировать доход от продажи телекоммуникационных услуг.
1. Минимизация функции одной переменной
Важная задача численных методов — поиск минимума функции f(x) в некотором интервале изменения х — от х 1 до х 2 .
Если нужно найти максимум такой функции, то достаточно поставить знак «минус» перед функцией. Для решения этой задачи используется следующая функция:
[x,fval] = fminbnd(@myfun,x1,x2) - возвращает значение х, которое является локальным минимумом функции myfun(x) на интервале x1<x<x2 , а также дополнительно возвращает значение целевой функции fval в точке минимума, где
function f = myfun(x)
f = ... % Аналитически задаваемая функция с аргументом x. Ранее (в MatLab v6 R11) использовалась функция
[x,fval] = fmin('fun',x1,x2)
Пример №1
Необходимо найти минимум функции f(x)=x3-2x-5 на интервале от 0 до 2
% optim.m clear all;
fplot('fun1',[0,2]); grid on;
title('fun1'); xlabel('x'); ylabel('f(x)');
[x,fval]=fminbnd(@fun1,0,2) % fun1.m
function f = fun1(x) f=x.^3-2*x-5
Решение: x=0.8165; fval=-
6.0887
1. Минимизация функции одной переменной
Основные команды поиска локального минимума функции:
[x,fval] = fminsearch(@myfun,x0) [x,fval] = fminunc(@myfun, x0) где x0 - начальная точка поиска;
myfun – в общем случае нелинейная функция.
Пример №2
Необходимо найти минимум функции f(x)=arctg(x3- 2x-5) на интервале от -2 до 2
clear all; fplot('fun2',[-2,2]); grid on;
title('fun2'); xlabel('x'); ylabel('f(x)');
[x,fval]=fminunc(@fun2,0) Решение:
x=0.8165; fval=-1.4080 [x,fval]=fminunc(@fun2,-1) Решение:
x =-2; fval=-1.5708
2. Минимизация функции нескольких переменных без
ограничений
Основные команды поиска локального минимума функции:
[x,fval] = fminsearch(@myfun,x0) [x,fval] = fminunc(@myfun, x0), где x – вектор.
Пример №3
Необходимо найти минимум функции
f(x)= 3X2 + 2XY + Y2+5 вблизи точки [-20, 20]
% optim.m clear all;
x0 = [20,20];
[x,fval] = fminunc(@fun3,x0)
% fun3.m function f = fun3(x)
f = 3*x(1).^2 + 2*x(1)*x(2) + x(2).^2+5;
Пример №4 (постановка задачи)
Найти такое х, что является минимумом
при условии, что