惩罚函数的内点法Word文档下载推荐.docx
《惩罚函数的内点法Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《惩罚函数的内点法Word文档下载推荐.docx(7页珍藏版)》请在冰豆网上搜索。
2.以为初始点,求解问题
Min
S.t.
3.若则停,得近似解;
否则令回2.
求满足
从出发,求
改变约束极值方法
输出结果
二、算法框图
三、算法程序
clc
m=zeros(1,50);
a=zeros(1,50);
b=zeros(1,50);
f0=zeros(1,50);
symsx1x2e;
m
(1)=1;
c=0.2;
a
(1)=2;
b
(1)=-3;
f=x1^2+x2^2-e*(1/(2*x1+x2-2)+1/(1-x1));
f0
(1)=15;
fx1=diff(f,'
x1'
);
fx2=diff(f,'
x2'
fx1x1=diff(fx1,'
fx1x2=diff(fx1,'
fx2x1=diff(fx2,'
fx2x2=diff(fx2,'
fork=1:
100
x1=a(k);
x2=b(k);
e=m(k);
forn=1:
f1=subs(fx1);
f2=subs(fx2);
f11=subs(fx1x1);
f12=subs(fx1x2);
f21=subs(fx2x1);
f22=subs(fx2x2);
if(double(sqrt(f1^2+f2^2))<
=0.002)
a(k+1)=double(x1);
b(k+1)=double(x2);
f0(k+1)=double(subs(f));
break;
else
X=[x1x2]'
-inv([f11f12;
f21f22])*[f1f2]'
;
x1=X(1,1);
x2=X(2,1);
end
if(double(sqrt((a(k+1)-a(k))^2+(b(k+1)-b(k))^2))<
=0.001)&
&
(double(abs((f0(k+1)-f0(k))/f0(k)))<
=0.001)
a(k+1)
b(k+1)
k
f0(k+1)
break;
else
m(k+1)=c*m(k);
4、算法实现
例1.利用内点法求解
s.t
解:
改变算法中f=x1^2+x2^2-e*(1/(2*x1+x2-2)+1/(1-x1));
回车完成结果
复制粘贴代码,回车出现结果
例2.利用内点法求解
解:
改变算法中f=x1^2-x2^2-e*(1/(x1+x2-3)+1/(-x1));
例3.利用内点法求解
改变算法中f=2*x1^2-x2^2-e*(1/(x1+4*x2)+1/(x2-x1));
例4.利用内点法求解
改变算法中f=3*x1^2+x2^2-e*(1/(2*x1+x2)+1/(x2-x1));