惩罚函数的内点法.docx
- 文档编号:1081613
- 上传时间:2022-10-16
- 格式:DOCX
- 页数:7
- 大小:86.66KB
惩罚函数的内点法.docx
《惩罚函数的内点法.docx》由会员分享,可在线阅读,更多相关《惩罚函数的内点法.docx(7页珍藏版)》请在冰豆网上搜索。
惩罚函数的内点法
2013-2014
(1)专业课程实践论文
内点法
一、算法理论
内点法总是从可行域的内点出发,并保持在可行域内进行搜索,因此这种方法适用于只有不等式约束条件的问题
内点法据图计算步骤:
1.给定初,允许误差,初始参数缩小系数;
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,'x1');
fx1x2=diff(fx1,'x2');
fx2x1=diff(fx2,'x1');
fx2x2=diff(fx2,'x2');
fork=1:
100
x1=a(k);x2=b(k);e=m(k);
forn=1:
100
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
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);
end
end
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));回车完成结果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 惩罚 函数 内点法
![提示](https://static.bdocx.com/images/bang_tan.gif)