Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Endfunction




Вопрос № 11

Поиск минимума функции y=f(x) на интервале [ a, b]

Функция [f1,xopt]=optim(costf,x0) возвращает локальный минимум функции costf.

Функция возвращает минимум функции (значение f1) и точку, в которой этот минимум достигается (xopt).

Главной особенностью функции optim является структура функции costf, которая должна быть такой:

function [f,g,ind]=costf(x,ind)

f=gg(x);//функция, минимум которой мы ищем

g=numdiff(gg,x); //градиент функции f

Если возвращаемое сформированной функцией costf значение ind равно 2, 3 или 4, то функция costf обеспечивает поиск минимума, т.е. в качестве результата функции optim возвращается f и xopt. Если ind=1, то в функции optim ничего не считается, условие ind<0 означает, что минимум f(x) не может быть оценен, а ind=0 прерывает оптимизацию. Вообще говоря, значение параметра ind является внутренним параметром для связи между optim и costf, для использования optim необходимо помнить, что параметр ind должен быть определен в функции costf.

Пример: найти минимум функции .

Решение. Построим график функции для определения интервалов [ a, b], на которых находятся экстремумы этой функции.

-->x=-3:.1:3; y=x.^4-3*x.^2-5*x-4; plot(x, y); xgrid()

Из графика видно, что это отрезок [1, 2]. Набираем в окне редактора и отправляем на выполнение файл

function [f,g,r]=z(x,r)

f=x.^4-3*x.^2-5*x-4

g=4*x.^3-6*x-5

endfunction

x0=1;

[fmin,xmin]=optim(z,x0)

Получаем

--> xmin =

1.5233402

fmin =

- 13.193373

Возможен другой вариант, без ручного вычисления производной:

function y=gg(x)

y=x.^4-3*x.^2-5*x-4;

endfunction

function [f,g,r]=z(x,r)

f=gg(x)

g=numdiff(gg,x)

endfunction

x0=1;

[fmin,xmin]=optim(z,x0)

 

xmin =

1.5233402

fmin =

- 13.193373

В случае функции двух переменных:

(Поиск минимума функции Розенброка )

clc

x0=[-2;2];

function y=gg(x)

y=100*(x(2)-x(1)^2)^2+(1-x(1))^2;

endfunction

function [f,g,r]=z(x,r)

f=gg(x)

g=numdiff(gg,x)

endfunction

[fmin,xmin]=optim(z,x0)

xmin =

0.9999955

0.9999910

fmin =

2.010D-11

 




Поделиться с друзьями:


Дата добавления: 2015-03-29; Просмотров: 323; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.006 сек.