智能优化算法作业

智能优化算法作业

ID:9979916

大小:340.00 KB

页数:12页

时间:2018-05-17

智能优化算法作业_第1页
智能优化算法作业_第2页
智能优化算法作业_第3页
智能优化算法作业_第4页
智能优化算法作业_第5页
资源描述:

《智能优化算法作业》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一、优化算法及其应用1.简介共轭梯度法(ConjugateGradient)是介于最速下降法与牛顿法之间的一个方法,它仅需利用一阶导数信息,但克服了最速下降法收敛慢的缺点,又避免了牛顿法需要存储和计算Hesse矩阵并求逆的缺点,共轭梯度法不仅是解决大型线性方程组最有用的方法之一,也是解大型非线性最优化最有效的算法之一。在各种优化算法中,共轭梯度法是非常重要的一种。其优点是所需存储量小,具有步收敛性,稳定性高,而且不需要任何外来参数。2.算法原理共轭梯度法是利用目标函数梯度逐步产生共轭方向作为线搜索方向的方法,每次搜索方向都是在目标函数梯度的共轭方向,搜索步长通过一维极值算法

2、确定。设二次函数为,其中为常数,为维列向量,为对称正定矩阵,用共轭梯度法求的极小点:共轭梯度法探索的第一步是沿负梯度方向。即点按方向找到,然后沿着与上一次探索方向相共轭的方向进行探索直达到最小点。令。上式的意义就是以原来的负梯度的一部分即,加上新的负梯度,构造。在上式中的选择,应使维欧氏空间中的两个非零向量与关于矩阵共轭。即因,故有若令二式相减,得12设在第次迭代中代入上式,得式中为第次迭代的最优步长。由式和式,得将式和式代入上式,得因为是一正交系,故有或故上式可简化为得用一维探索最优化方法确定,即求或用解析法,使求得。或由式,得12即又由于进行一维最优化搜索,故有由上两式

3、可求得如此,即可得到共轭梯度法的一组计算公式为3.算法步骤用共轭梯度法求无约束多维极值问题的算法步骤如下:(1)给定初始点,及精度;(2)若,停止,极小值点为,否则转步骤(3);(3)取,且置;(4)用一维搜索法求,使得,令,,转步骤5;(5)若,停止,极小值点为,否则转步骤(6);(6)若,令,转步骤(3),否则转步骤(7);12(1)令,,置,转步骤(4)。4.算法的MATLAB实现在MATLAB中编程实现的共轭梯度法函数为:功能:用共轭梯度法求解多维函数的极值。调用格式:其中,:目标函数;:初始点;:自变量向量;:目标函数取最小值时的自变量值;:目标函数的最小值。共轭

4、梯度法的MATLAB程序代码如下:function[x,minf]=minGETD(f,x0,var,eps)%目标函数:f;%初始点:x0;%自变量向量:var;%目标函数取最小值时的自变量值:x;%目标函数的最小值:minf;formatlong;ifnargin==3eps=1.0e-6;endx0=transpose(x0);n=length(var);symsl;gradf=jacobian(f,var);%梯度方向v0=Funval(gradf,var,x0);p=-transpose(v0);k=0;while1v=Funval(gradf,var,x0);t

5、ol=norm(v);iftol<=epsx=x0;break;endy=x0+l*p;12yf=Funval(f,var,y);[a,b]=minJT(yf,0,0.1);xm=minHJ(yf,a,b);x1=x0+xm*p;vk=Funval(gradf,var,x1);tol=norm(vk);iftol<=epsx=x1;break;endifk+1==nx0=x1;continue;elselamda=dot(vk,vk)/dot(v,v);p=-transpose(vk)+lamda*p;%共轭方向k=k+1;x0=x1;endendminf=Funval(f

6、,var,x);formatshort;4.例题例1.f=(x-2)^2+(y-4)^2M文件:functionf=conjugate_grad_2d(x0,t)x=x0;symsxiyiaf=(xi-2)^2+(yi-4)^2;fx=diff(f,xi);fy=diff(f,yi);fx=subs(fx,{xi,yi},x0);fy=subs(fy,{xi,yi},x0);fi=[fx,fy];count=0;whiledouble(sqrt(fx^2+fy^2))>ts=-fi;ifcount<=0s=-fi;elses=s1;end12x=x+a*s;f=subs(f

7、,{xi,yi},x);f1=diff(f);f1=solve(f1);iff1~=0ai=double(f1);elsebreakx,f=subs(f,{xi,yi},x),countendx=subs(x,a,ai);f=xi-xi^2+2*xi*yi+yi^2;fxi=diff(f,xi);fyi=diff(f,yi);fxi=subs(fxi,{xi,yi},x);fyi=subs(fyi,{xi,yi},x);fii=[fxi,fyi];d=(fxi^2+fyi^2)/(fx^2+fy^2);s1=-fi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。