罚函数法的基本思想是借助罚函数把约束问题转化为无约束问题,然后用无约束最优方法来求解。
构造罚函数:在可行点,辅助函数的值等于原来的目标函数值;在不可行点,辅助函数值等于原来的目标函数值加上一个很大的正数。可写成形如下式:
目标函数:
约束条件:
其相关代码如下:
clc
syms x1 x2 e; % e为罚因子
m(1)=1;c=10;a(1)=0;b(1)=0; % c为递增系数 赋初值
f=x1^2+x2^2+e*(1-x1)^2; % 构造罚函数
f0(1)=0;
%求偏导、海森阵
fx1=diff(f,‘x1‘);
fx2=diff(f,‘x2‘);
fx1x1=diff(fx1,‘x1‘);
fx1x2=diff(fx1,‘x2‘);