资源描述:
《改进的Newton法解决二次优化问题.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、最优化理论与算法实验报告(三)实验名称改进的Newton法解决二次优化问题实验时间姓名专业班级学号成绩一、实验目的和内容实验目的:通过实验,让学生掌握改进的Newton法解决优化问题的具体实现,同时对于具体的问题设计,让学生根据在实验中出现的数值计算结果,.理解改进的Newton法的基本思想.实验内容:(问题同实验二)请采用改进的Newton法求解终止的准则,分别用如下不同的初时结点进行迭代.1.,2.,3.二、相关背景知识介绍一、Goldstein—Price(1967)修正方案:当非正定时,采用最速下降方向替代牛顿方向.若
2、进一步将搜索方向与负梯度方向的角度准则结合起来,则有其中:,二、Goldfeld(1966)修正方案若非不正定,则用来修正.通过适当选取,可以使正定.三、代码牛顿改进算法代码:functionre=New(x,Gk,var,n)e=10^n;xk=x;gk=fgk(@f,xk,1);t=[1;0];k=0;while(norm(gk)>e)mGk=subs(Gk,var,xk);if((t'*mGk*t)>0)[LU]=lu(mGk);dk=U(L-gk);xk=xk+dk;gk=fgk(@f,xk,1);k=k+1;el
3、see=diag(mGk);f1=min(diag(mGk));f1=0.01-f1;E=eye(length(e));mGk=mGk+f1.*E;[LU]=lu(mGk);dk=U(L-gk);xk=xk+dk;gk=fgk(@f,xk,1);k=k+1;endend计算梯度的函数:functiongk=fgk(f,xk,h)if(h==1)t=f(xk);xk(1)=xk(1)+1;gk(1,1)=f(xk)-txk(1)=xk(1)-1;xk(2)=xk(2)+1;gk(2,1)=f(xk)-t;end初始化函数:s
4、ymsx1x2var=[x1,x2];f=3*x1^2+3*x2^2-x1^2*x2;A=jacobian(f,var);e=jacobian(A,var);Gk=e;n=-12;x=[0;0];目标函数:functionr=f(x)r=3*x(1)^2+3*x(2)^2-x(1)^2*x(2)一、数值结果X=[-2;4]K=2Xk=[-4.8087;3.0196]X=[1.5;1.5]K=12Xk=[-0.5;-0.4583]二、计算结果的分析与New法相互比较,在X=[1.5;1.5]处的迭代次数并未下降,反倒是在鞍点X=
5、[-2;4]处的迭代次数减少了不少,可视为将鞍面做了一个稍稍的倾斜,加快了下降速度。在算法本身上做了不少改进,曾将使用过mGk=mGk+(f1+E);但效果却不及mGk=mGk+f1.*E;好。三、计算中出现的问题,解决方法及体会改进的Newton法相对比之前的方法,的确有着很大的改进,但是有优化的方面,但是相对比较之下也有不足的方面,所以在计算的同时我们还要加大对其的改进机制,这样才能更好的去将Newton方法运用出去。教师评语指导教师:年月日实验原始数据记录