Одномерные ограничения полу-Бога

Найдите значения x , которые минимизируют

f (x) = (x 1 – 0.5)2 + (x 2 – 0.5)2 + (x 3 – 0.5)2

где

K1(x,w1)=sin(w1x1)cos(w1x2)11000(w150)2sin(w1x3)x31,K2(x,w2)=sin(w2x2)cos(w2x1)11000(w250)2sin(w2x3)x31,

для всех значений w 1 и w 2 в областях значений

1 ≤ w 1 ≤ 100,
1 ≤ w 2 ≤ 100.

Обратите внимание на то, что полубесконечные ограничения одномерны, то есть, векторы. Поскольку ограничения должны быть в форме Ki (x, wi) ≤ 0, необходимо вычислить ограничения как

K1(x,w1)=sin(w1x1)cos(w1x2)11000(w150)2sin(w1x3)x310,K2(x,w2)=sin(w2x2)cos(w2x1)11000(w250)2sin(w2x3)x310.

Во-первых, запишите файл, который вычисляет целевую функцию.

function f = myfun(x,s)
% Objective function
f = sum((x-0.5).^2);

Во-вторых, запишите файл mycon.m это вычисляет нелинейное равенство и ограничения неравенства и полубесконечные ограничения.

function [c,ceq,K1,K2,s] = mycon(X,s)
% Initial sampling interval
if isnan(s(1,1)),
   s = [0.2 0; 0.2 0];
end
% Sample set
w1 = 1:s(1,1):100;
w2 = 1:s(2,1):100;

% Semi-infinite constraints 
K1 = sin(w1*X(1)).*cos(w1*X(2)) - 1/1000*(w1-50).^2 -...
       sin(w1*X(3))-X(3)-1;
K2 = sin(w2*X(2)).*cos(w2*X(1)) - 1/1000*(w2-50).^2 -...
       sin(w2*X(3))-X(3)-1;

% No finite nonlinear constraints
c = []; ceq=[];

% Plot a graph of semi-infinite constraints
plot(w1,K1,'-',w2,K2,':')
title('Semi-infinite constraints')
drawnow

Затем вызовите стандартную программу оптимизации.

x0 = [0.5; 0.2; 0.3];      % Starting guess
[x,fval] = fseminf(@myfun,x0,2,@mycon);

После восьми итераций решение

x
x =
    0.6675
    0.3012
    0.4022

Значение функции и максимальные значения полубесконечных ограничений в решении x

fval
fval =
    0.0771

[c,ceq,K1,K2] = mycon(x,NaN); % Initial sampling interval
max(K1)
ans =
   -0.0077
max(K2)
ans =
   -0.0812

График полубесконечных ограничений производится.

Этот график показывает, как peaks в обоих ограничениях находится на границе ограничений.

Команда plot в mycon.m замедляет расчет. Удалите эту линию, чтобы улучшить скорость.

Смотрите также

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте