优化设计-混合惩罚函数法-MATLAB编程
优化设计-混合惩罚函数法-MATLAB编程
优化设计-混合惩罚函数法-MATLAB编程
内点法容易处理具有不等式约束条件的优化问题,⽽外点法则容易处理具有等式或不等式约束条件的优化问题。内点法和外点法有各⾃的优缺点,如将两者结合起来,则可以更好地同时处理既具有等式约束条件,⼜具有不等式约束条件的优化问题,这就是混合惩罚函数法,简称混合法。
混合惩罚函数的含义是:对于初始点x(0)已满⾜不等式约束的约束函数项,⽤内点法的泛函形式;反之,采⽤外点法的泛函形式。混合法兼备了内点法和外点法两种功能,它可以根据初始点的具体况,进⾏⾃动排项。
MATLAB代码
MATLAB代码:
%%能运⾏出结果,但是感觉整个函数还是外点法在起作⽤,最终结果并不满⾜约束条件clear all;clc
syms x1 x2 x;
f=x1^2+x2^2-x1*x2-10*x1-4*x2+60;%原函数
羊杂汤怎样做g1=x1-6;g2=x2-8;g3=x1+x2-11;%约束条件转换函数
e1=0.001;%梯度法最优值收敛精度
e2=0.001;%混合法收敛精度
D=1;%差值
k=1;
A(k)=11;B(k)=11;%A,B分别记录x1,x2点,初始点为[0,0]
r(k)=1;a=2;%r为惩罚因⼦,a为递增系数
孕妇泡脚禁忌
%%循环
while D>e2 %罚因⼦迭代收敛条件
x1=A(k);x2=B(k);
%判断点在不在可⾏域内,来选择外点惩罚函数活塞式
if x1-6>0
u1=1;
el
u1=0;
end
if x2-8>0
u2=1;诗经硕鼠
el
u2=0;
end
if x1+x2-11>0
u3=1;
古代四大名著el
u3=0;
cad配置要求end
纯净的意思%约束问题转换后的新⽬标函数
F=f+r(k)*u1*g1^2+r(k)*u2*g2^2+r(k)*u3*g3^2-1/r(k)*(log10(-g1)+log10(-g2)+log10(-g3)); %单纯形法求F的最优解xr
minx=minfunction(F,x1,x2,e1);
A(k+1)=minx(1,1);B(k+1)=minx(2,1);
D=double(sqrt((A(k+1)-A(k))^2+(B(k+1)-B(k))^2));
r(k+1)=a*r(k);
k=k+1;
神牛谷
end
A(k)
B(k)
double(subs(f))