西安电子科技大学
——电子工程学院
最优化方法及应用
上
机
报
告
科 目:_______最优化方法及应用__________
任课老师:_________ ______________
姓 名:___________ ____ ___________
学 号:__________ ________________
班 级:_________ ______________
1、 问题描述(一)
用牛顿法和最速下降法求解以下优化问题:
mi
最速下降法
1)、算法程序
function min=grads()
syms x1 x2 x3 x4 p
f=(x1+10*x2)^2+5*(x3-x4)^2+(x2-2*x3)^4+10*(x1-x4)^4;
e=0.01;
k=1;
x=[-0.1 , -2.0 , 0.5 , -2.5];
df=[diff(f,x1) diff(f,x2) diff(f,x3) diff(f,x4)];
dk=-subs(df,[x1,x2,x3,x4],x);
while (norm(dk))>= e & (k<150)
f=(x1+10*x2)^2+5*(x3-x4)^2+(x2-2*x3)^4+10*(x1-x4)^4;
df=[diff(f,x1) diff(f,x2) diff(f,x3) diff(f,x4)];
dk=-subs(df,[x1,x2,x3,x4],x);
dk=subs(dk);
x=yw(x,dk) ;
k=k+1;
end
f=subs(f,[x1,x2,x3,x4],x);
disp( '初始点为: ' )
disp(' x = [-0.1 , -2.0 , 0.5 , -2.5] ' )
disp( '迭代次数为:' )
disp(k)
disp( '最小点是:' )
disp(x)
disp( '最小值是:' )
disp(f)
return
end
一维搜索(0.618法):
function m=yw(x,dk)
e=0.01;
syms x1 x2 x3 x4
f=(x1+10*x2)^2+5*(x3-x4)^2+(x2-2*x3)^4+10*(x1-x4)^4;
a=x;
b=x+dk;
while norm(b-a)>e
q1=a+0.328*(b-a);
q2=a+0.618*(b-a);
f1=subs(f,[x1,x2,x3,x4],q1);
f2=subs(f,[x1,x2,x3,x4],q2);
if f1>f2
a=q1;
else
b=q2;
end
f=(x1+10*x2)^2+5*(x3-x4)^2+(x2-2*x3)^4+10*(x1-x4)^4;
end
m=(a+b)/2;
2)、程序运行结果
3)运行结果分析:
经算得,得到的最小值为0.0094
2、 问题描述(二)
用内点法和外点法求解以下约束优化问题:
内点法
1)、算法程序
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)=0;
f=x1^3+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^3+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))^3+(b(k+1)-b(k))^2))<=0.001)&&(double(abs((f0(k+1)-f0(k))/f0(k)))<=0.001)
disp('输出最优点坐标为:')
disp('x1='),disp(a(k+1))
disp('x2='),disp(b(k+1))
disp('罚因子迭代次数k=:'),disp(k)
disp('最优值为:'),disp(f0(k+1))
break;
else
m(k+1)=c*m(k);
end
end
2)、程序运行结果
3)实验结果分析
经算得,在约束条件下的最优值为0.9999
本文档为【最优化方法及应用---最速下降法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。