Page 254 - 6197
P. 254
Функція fun приймає вектор і повертає скалярну величину
f. Функції, які обчислюють нелінійні обмеження у вигляді
нерівностей c 0x і нелінійні обмеження-рівності
c 0x , повинні бути оформлені як вектор-функції, тобто
eq
величина с є вектором змінної x , який містить нелінійні
нерівності, відповідно Ceq є вектор, який містить нелінійні
рівності, що залежать від x . Nonlcon приймає вектор x і
повертає два вектора с і Ceq. Функції fun і nonlcon
повинні бути оформлені у вигляді окремого М-файлу і
записані як функції аргументу x . Аргумент x0 визначає
стартову точку, з якої починається ітераційний процес.
Матриці A Aeq та вектори b,beq формуються так же, як
і для функції linprog.
Приклад 4.23. На прикладі задачі, яка наведена у розділі 3
(приклад 3.4), покажемо техніку застосування вбудованої
функції fmincon для розв’язування задачі нелінійного
програмування. Отже, розв’язуємо задачу
2
min : R x x 2x
1 2
за умови, що
2
g x x x 2 0 ,
1 1 2
g x x 2x 4 0 .
2 1 2
Перше із двох обмежень, які утворюють допустиму
область, нелінійне, а друге – лінійне. Цю обставину врахуємо,
подаючи задачу у такому вигляді, як це прийнято у системі
2
MatLab: f R x x 2x , A 1 2 , b 4 ,
2
1
2
[]
c x x x 2, c .
1
eq
2
Тепер створимо файл-програму для розв’язання
сформованої задачі у системі MatLab.
%=====================================
254