09-1惩罚函数的内点法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2013-2014 (1) 专业课程实践论文

内点法

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

内点法据图计算步骤:

1.给定初()D x int 0∈,允许误差0〉ε,初始参数0r 1〉缩小系数1k ),1,0(=∈β;

2.以)1-k (x 为初始点,求解问题

Min )()(f x B r x k +

S.t. D int x ∈

3.若ε〈)()(k k x B r 则停,得近似解)(k x ;否则令1,r 1k +==+k k r k β回2.

求满足)0()0(x ,.....,2,1,0)(g 的m i x i =< ;;ρρ⇒⇒00k

从)(k x 出发,求

))(()(f ),(min ),(1)1(x g x x G x G i m i i k ∑=++==φρρρ

0~)}({max )1(+k i i x g )1()()1(0)()(x ++⇒-+k k k k x x x a )(f ~)(f )()1(k k x x + 1~ερ 1(k)1)(k ||~ x -x ||ε+k =+⇒1k ;ραρ

改变约束极值方法 输出结果

clc

m=zeros(1,50);

a=zeros(1,50);

b=zeros(1,50);

f0=zeros(1,50);

syms x1 x2 e;

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');

for k=1:100

x1=a(k);x2=b(k);e=m(k);

for n=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=[x1 x2]'-inv([f11 f12;f21 f22])*[f1 f2]';

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(a bs((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. 利用内点法求解22

21min x x + s.t 02221

≤-+x x 011≤+-x

解:改变算法中f=x1^2+x2^2-e*(1/(2*x1+x2-2)+1/(1-x1)); 回车完成结果 复制粘贴代码,回车出现结果

0 0

3 .t s min 12122

21≤-≤-+-x x x x x

解:改变算法中f=x1^2-x2^2-e*(1/(x1+x2-3)+1/(-x1)); 回车完成结果

0 0

4 .t s 2min 122122

21≤-≤+-x x x x x x

解:改变算法中f=2*x1^2-x2^2-e*(1/(x1+4*x2)+1/(x2-x1)); 回车完成结果

0 0

2 .t s 3min 122122

21≤-≤++x x x x x x

解:改变算法中f=3*x1^2+x2^2-e*(1/(2*x1+x2)+1/(x2-x1)); 回车完成结果

相关文档
最新文档