1.2.Визначення екстремумів функцій декілька змінних
Пошук мінімуму функції декілька змінних виконує функції fminsearch і fminunc. Визначати екстремуми цільової функції декілька змінних доцільно в такому порядку.
Побудувати лінії рівня графіка цільової функції (двох змінних).
Лінії рівня цільової функції допомагають визначити початкову точку екстремуму, оскільки вживані алгоритми оптимізації реалізують пошук локальних мінімумів цільової функції.
Для побудови ліній рівня цільової функції можна використовувати такий код:
xs1 = % задати вектор зміни змінній 1;
xs2 = % задати вектор зміни змінній 2;
[x1,x2] = meshgrid(xs1,xs2);
z = % ввести код обчислення цільової функції
[C,h] = contour(x1, x2,z);
grid on
Створити m-файл, що виконує обчислення значень цільової функції двох змінних.
Можна створити файл, наприклад, з ім'ям fun2. Функція fun2 приймає векторний аргумент x і повертає скаляр – значення цільової функції в точці x:
function f = fun2(x)
f = ... % обчислює значення функції в точці x.
При зверненні до цільової функції використовується покажчик на неї
x = fminsearch(@fun2,. . .)
Задати параметри рішення задачі оптимізації:
допустиме відхилення від точного рішення – 10–8.
відображення результатів на кожній ітерації.
Значення решти параметрів – за умовчанням. Параметри оптимізації задають командою optimset, варіанти використання цієї команди див. help optimset.
Знайти рішення екстремальної задачі, використовуючи функцію fminsearch.
Можливий варіант програми має вигляд
clear, clc
x0 = % початкова точка (вектор)
options = optimset(. . .);
[x,fval] = fminsearch(@fun,x0,options);
fprintf(. . . ) % виведення значень x і fval
Використовуйте функцію fprintf для форматного виведення значень x і fval. Запишіть значення полий структури output.
Позначити на графіці ліній рівня цільової функції точки екстремумів. Для цього можна використовувати функцію plot і команду hold on
Побудувати графік зміни значення цільовій функції.
Графік треба побудувати залежно від кількості ітерацій до, тобто f(k). Для побудови графіка можна використовувати результати виводу в командне вікно відповідних значень на кожній ітерації. Ці результати одночасно можна записати у файл текстового формату, вставивши в програму команди
diary('имя_файла'), diary on
перед рядком виклику функції fminsearch. Вивід у файл закінчується після виконання в програмі команди diary off.
Знайти рішення тієї ж екстремальної задачі, використовуючи функцію fminunc.
Побудувати графік зміни значення цільовій функції залежно від кількості ітерацій тобто f(k).
Зробити висновки за завданням.
- 1.Порядок виконання роботи
- 1.1.Визначення екстремумів функцій однієї змінної
- 1.2.Визначення екстремумів функцій декілька змінних
- 1.3.Рішення задачі лінійного програмування
- 2.Вказівки по оформленню роботи
- До записки пояснення повинні бути прикладені файли програми matlab на електронном носієві ксерокопії роботи до захисту не допускаються Література