主要内容

一维半无限约束

找到的值x,减少

fx) = (x1- - - - - - 0.5)2+ (x2- - - - - - 0.5)2+ (x3.- - - - - - 0.5)2

在哪里

K 1 x w 1 w 1 x 1 因为 w 1 x 2 1 1000 w 1 50 2 w 1 x 3. x 3. 1 K 2 x w 2 w 2 x 2 因为 w 2 x 1 1 1000 w 2 50 2 w 2 x 3. x 3. 1

的所有值w1而且w2在范围内

1≤w1≤100,
1≤w2≤100。

注意,半无限约束是一维的,也就是说,向量。因为约束条件必须在这个形式中Kxw)≤0,则需要计算约束条件为

K 1 x w 1 w 1 x 1 因为 w 1 x 2 1 1000 w 1 50 2 w 1 x 3. x 3. 1 0 K 2 x w 2 w 2 x 2 因为 w 2 x 1 1 1000 w 2 50 2 w 2 x 3. x 3. 1 0.

首先,编写一个计算目标函数的文件。

函数f = myfun (x, s)%目标函数f =总和((x - 0.5) ^ 2);

第二,写一个文件mycon.m计算了非线性等式和不等式约束以及半无限约束。

函数[c,测查,K1, K2, s] = mycon (X, s)%初始采样间隔如果Isnan (s(1,1)), s = [0.2 0;0.2 0];结束%样本集w1 = 1: s (1,1): 100;w2 = 1: s (2,1): 100;%半无限约束K1 = sin(w1*X(1)).*cos(w1*X(2)) - 1/1000*(w1-50)。^ 2 -...罪(w1 * X (3)) - X (3) 1;K2 = sin(w2*X(2)).*cos(w2*X(1)) - 1/1000*(w2-50)。^ 2 -...罪(w2 * X (3)) - X (3) 1;无有限非线性约束c = [];测查= [];绘制半无限约束的图情节(w1, K1,“- - -”w2, K2,“:”)标题(“半无限约束”) drawnow

然后,调用优化例程。

x0 = (0.5;0.2;0.3);%开始猜[x, fval] = fseminf (x0, @myfun 2, @mycon);

经过八次迭代,解是

x
X = 0.6675 0.3012 0.4022

半无限约束在解处的函数值和最大值x

fval
fval = 0.0771
[c,测查,K1, K2] = mycon (x, NaN);%初始采样间隔马克斯(K1)
ans = -0.0077
马克斯(K2)
ans = -0.0812

给出了半无限约束的图。

这两个约束条件都小于或等于零,并在一个或两个点处达到零

这个图显示了两个约束中的峰值是如何位于约束边界上的。

里面的情节命令mycon.m降低计算速度。去掉这条线可以提高速度。

另请参阅

相关的话题

Baidu
map