惩罚函数的内点法.docx

上传人:b****2 文档编号:3330700 上传时间:2023-05-05 格式:DOCX 页数:8 大小:83.71KB
下载 相关 举报
惩罚函数的内点法.docx_第1页
第1页 / 共8页
惩罚函数的内点法.docx_第2页
第2页 / 共8页
惩罚函数的内点法.docx_第3页
第3页 / 共8页
惩罚函数的内点法.docx_第4页
第4页 / 共8页
惩罚函数的内点法.docx_第5页
第5页 / 共8页
惩罚函数的内点法.docx_第6页
第6页 / 共8页
惩罚函数的内点法.docx_第7页
第7页 / 共8页
惩罚函数的内点法.docx_第8页
第8页 / 共8页
亲,该文档总共8页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

惩罚函数的内点法.docx

《惩罚函数的内点法.docx》由会员分享,可在线阅读,更多相关《惩罚函数的内点法.docx(8页珍藏版)》请在冰点文库上搜索。

惩罚函数的内点法.docx

惩罚函数的内点法

惩罚函数的内点法

2013-2014

(1)专业课程实践论文

 

内点法

 

 

一、算法理论

内点法总是从可行域的内点出发,并保持在可行域内进行搜索,因此这种方法适用于只有不等式约束条件的问题

内点法据图计算步骤:

1.给定初

,允许误差

,初始参数

缩小系数

2.以

为初始点,求解问题

Min

S.t.

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

 

四、算法实现

例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));回车完成结果

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2