欢迎来到天天文库
浏览记录
ID:12943370
大小:293.50 KB
页数:9页
时间:2018-07-19
《数学规划_(最速下降法,c语言编程)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数学规划课程设计题目:用最速下降法求解无约束非线性规划问题姓名:学号:成绩:2011年6月8用最速下降法求解无约束非线性规划问题摘要:无约束非线性规划问题是一类重要的数学规划问题。文主要研究了用最速下降法也就是梯度法对无约束非线性规划问题进行求解。对于一个无约束非线性规划利用最速下降法求解,首先需要确定其优化方向,此优化方向应该选择为f在当前点处的负梯度方向,利用一维搜索法找出沿此方向上的最小值及其对应点,此后将该点作为新的出发点重复上述过程,直到达到允许的误差为止。本文最后利用c++语言编程得到满足允许误差内的最优解。本文主要对一个无
2、约束非线性规划问题的实例,首先利用上述迭代的方法,计算出各迭代点的函数值,梯度及其模。然后应用c++语言编程,得到精确地最优解,需迭代六次才使得,得到的最优解为,。关键词:最速下降法无约束非线性规划最优解8一、问题重述用最速下降法求解无约束非线性规划问题:,设初始点取为,迭代到满足允许误差=0.01为止的精确解。二、问题分析2.1无约束非线性问题的最优条件该问题是一个无约束非线性规划问题,利用最少下降法求解该问题,无约束非线性规划问题的最优解所要满足的必要条件和充分条件是我们设计算法的依据,为此有以下几个定理。定理1设f:在点处可微,若
3、存在,使,则向量p是f在点处的下降方向。定理2设f:在点处可微,若是无约束问题的局部最优解,则有数学分析中我们已经知道,使的点x为函数f的驻点或平稳点。函数f的一个驻点可以是极小值点;也可以是极大值点;甚至也可能既不是极小值点也不是极大值点,因此称它为函数f的鞍点,以上定理告诉我们,是无约束问题的局部最优解的必要条件是:是其目标函数f的驻点。定理3设f:在点处的Hesse矩阵存在,若,并且正定,则是无约束非线性问题的严格局部最优解。一般而言,无约束非线性问题的目标函数的驻点不一定是无约束非线性问题的最优解,但对于其目标函数是凸函数的无约
4、束凸规划,下面定理证明了它的目标函数的驻点就是它的整体最优解。定理4设f:,,f是上的可微凸函数。若有,则是无约束问题的整体最优解。2.2最速下降法的基本思想8最速下降法又称为梯度法,是1847年由著名数学家Cauchy给出的,他是解析法中最古老的一种,其他解析方法或是他的变形,或是他的启发得到的,因此它是最优化方法的基础。设无约束非线性规划问题中的目标函数f:在点处可微。最速下降法的基本思想是:从当前点出发,取函数在点处下降最快的方向作为我们收索方向,由的Taylor展示知,略去的高阶无穷小项不计,可见取时,函数值下降的最多,于是,我
5、们可以够造出最速下降法的迭代步骤。2.3无约束非线性规划问题的迭代步骤解无约束非线性规划问题的最速下降法计算步骤第1步选取初始点,给定终止误差>0,令k=0;第2步计算,若,停止迭代,输出,否则进行第3步;第3步取;第4步进行一维搜索,求,使得,令,k=k+1。转第2步。由以上计算步骤可知,最速下降法迭代终止时,求得的是目标函数驻点的一个近似点。三、问题求解3.1对原无约束非线性规划迭代首先进行第一次迭代8则令,即=0,解得:所以,此时,又因为则进行第二次迭代则令,代入即可解得:所以此时,又因为则进行第三次迭代则令,代入即可解得:所以此
6、时,又因为则进行第四次迭代8则令,代入即可解得:所以此时,又因为以上仍然没有达到要求,即还需继续迭代,直到满足为止。3.2对原无约束非线性规划进行c++语言编程求解就这样无限的迭代下去,直到为止,为此,我们可以用c++语言编程得到,其算法设计如下图(图3-1)停取,k:=0计算是否求令k:=k+18图(3-1)利用c++语言编程(源代码如下):#include#includedoublelambda(doublex[2],doublep[2],doublea[2]){doublelam1,lam2
7、;lam1=4*(pow(a[0],3)*x[0]*x[0]+pow(a[1],3)*x[1]*x[1]);lam2=-4*(pow(a[0]*x[0],2)+pow(a[1]*x[1],2));doubles;s=-lam2/(2*lam1);returns;}voidmain(){doublelamb,x[2],a[2],p[2],g[2],e=0.01,y;inti=0;x[0]=4.0;x[1]=4.0;cout<<"输入函数的系数:a[0],a[1]:"<>a[i];p[0]
8、=2*a[0]*x[0];p[1]=2*a[1]*x[1];g[0]=-p[0];g[1]=-p[1];i=0;//开始迭代将次数赋值为0cout<
此文档下载收益归作者所有