Rozwiązywanie zadań optymalizacji 103
oraz ograniczeniach nakładanych na zmienne optymalizowane:
(9.18)
(9.19)
(9.20)
(9.21)
- 5 < a, < 5, 0 < A, < °o
Funkcja Lagrange’a ma tu następującą postać:
L(X, k) = A,2 + X~2 +
-f- /i| (~46 + ,Vj 1■ a, + ,v<) -t- -ł~An (.v, -t- .c, + a .) + + /t,(l .5 + A,A, - A-,) + +A4(-10 - A,A, “ A',) + + A^ (“35 — 2a, -t 3a, *t~ 4.ią) +
+ /ł6 (-10 - a, ) + /i? (-5 - a, ) + Ą, (-a, ) +
Rozwiązanie przykładowego zadania optymalizacji za pomocą funkcji constr()
Przykładowe zadanie minimalizacji nieliniowej funkcji celu przy spełnieniu ograniczeń równościowych i nierównościowych może być rozwiązane za pomocą funkcji constrf). Wymaga to opracowania trzech plików funkcyjnych:
• pliku definiującego funkcję celu i ograniczenia funkcyjne,
• pliku definiującego gradient funkcji celu i gradient ograniczeń,
• pliku sterującego obliczeniami optymalizacyjnymi.
Plik definiujący funkcję celu i ograniczenia funkcyjne może mieć następującą postać:
function [f,g] = optfg (x)
%funkcja celu f oraz ograniczenia g f= x(l)~2 + x(2)-3 + x(3)~4;
% ogr. funkcyjne równościowe g(1)= -46 + x(l)~2 + x(2)~2 + x(3)~2; g(2)= -10 + x(1)+x(2)+x(3);
% ogr. funkcyjne nierownosciowe g(3)= 1.5 + x(1)*x(2)-x(3) ; g (4)= -10 - x(1)*x(2) ; g ( 5)= -35 + 2 *x(1) + 3*x(2) + 4*x(3);
return
Przy tworzeniu pliku zawierającego gradient funkcji celu oraz gradient ograniczeń należy uwzględnić fakt, że gradient ten jest macierzą, w której każda kolumna odnosi się do jednego ograniczenia funkcyjnego, czyli