用最速下降法求解无约束非线性规划问题
最速下降法——精选推荐
最速下降法1.最速下降⽅向函数f(x)在点x处沿⽅向d的变化率可⽤⽅向导数来表⽰。
对于可微函数,⽅向导数等于梯度与⽅向的内积,即:Df(x;d) = ▽f(x)Td,因此,求函数f(x)在点x处的下降最快的⽅向,可归结为求解下列⾮线性规划:min ▽f(x)Tds.t. ||d|| ≤ 1当 d = -▽f(x) / ||▽f(x)||时等号成⽴。
因此,在点x处沿上式所定义的⽅向变化率最⼩,即负梯度⽅向为最速下降⽅向。
2.最速下降算法最速下降法的迭代公式是x(k+1) = x(k) + λkd(k) ,其中d(k)是从x(k)出发的搜索⽅向,这⾥取在x(k)处的最速下降⽅向,即d = -▽f(x(k)).λk是从x(k)出发沿⽅向d(k)进⾏⼀维搜索的步长,即λk满⾜f(x(k) + λkd(k)) = min f(x(k)+λd(k)) (λ≥0).计算步骤如下:(1)给定初点x(1) ∈ Rn,允许误差ε> 0,置k = 1。
(2)计算搜索⽅向d = -▽f(x(k))。
(3)若||d(k)|| ≤ ε,则停⽌计算;否则,从x(k)出发,沿d(k)进⾏⼀维搜索,求λk,使f(x(k) + λkd(k)) = min f(x(k)+λd(k)) (λ≥0).(4)令x(k+1) = x(k) + λkd(k) ,置k = k + 1,转步骤(2)。
共轭梯度法1.共轭⽅向⽆约束问题最优化⽅法的核⼼问题是选择搜索⽅向。
以正定⼆次函数为例,来观察两个⽅向关于矩阵A共轭的⼏何意义。
设有⼆次函数:f(x) = 1/2 (x - x*)TA(x - x*) ,其中A是n×n对称正定矩阵,x*是⼀个定点,函数f(x)的等值⾯1/2 (x - x*)TA(x - x*) = c是以x*为中⼼的椭球⾯,由于▽f(x*) = A(x - x*) = 0,A正定,因此x*是f(x)的极⼩点。
设x(1)是在某个等值⾯上的⼀点,该等值⾯在点x(1)处的法向量▽f(x(1)) = A(x(1) - x*)。
Matlab中的最优化问题求解方法
Matlab中的最优化问题求解方法近年来,最优化问题在各个领域中都扮演着重要的角色。
无论是在工程、经济学还是科学研究中,我们都需要找到最优解来满足特定的需求。
而Matlab作为一种强大的数值计算软件,在解决最优化问题方面有着广泛的应用。
本文将介绍一些Matlab中常用的最优化问题求解方法,并探讨其优缺点以及适用范围。
一. 无约束问题求解方法1. 最速下降法最速下降法是最简单且直观的无约束问题求解方法之一。
其基本思想是沿着梯度的反方向迭代求解,直到达到所需的精度要求。
然而,最速下降法的收敛速度通常很慢,特别是在局部极小值点附近。
2. 共轭梯度法共轭梯度法是一种改进的最速下降法。
它利用了无约束问题的二次函数特性,通过选择一组相互共轭的搜索方向来提高收敛速度。
相比于最速下降法,共轭梯度法的收敛速度更快,尤其适用于大规模优化问题。
3. 牛顿法牛顿法是一种基于二阶导数信息的优化方法。
它通过构建并求解特定的二次逼近模型来求解无约束问题。
然而,牛顿法在高维问题中的计算复杂度较高,并且需要矩阵求逆运算,可能导致数值不稳定。
二. 线性规划问题求解方法1. 单纯形法单纯形法是一种经典的线性规划问题求解方法。
它通过在可行域内进行边界移动来寻找最优解。
然而,当问题规模较大时,单纯形法的计算复杂度会大幅增加,导致求解效率低下。
2. 内点法内点法是一种改进的线性规划问题求解方法。
与单纯形法不同,内点法通过将问题转化为一系列等价的非线性问题来求解。
内点法的优势在于其计算复杂度相对较低,尤其适用于大规模线性规划问题。
三. 非线性规划问题求解方法1. 信赖域算法信赖域算法是一种常用的非线性规划问题求解方法。
它通过构建局部模型,并通过逐步调整信赖域半径来寻找最优解。
信赖域算法既考虑了收敛速度,又保持了数值稳定性。
2. 遗传算法遗传算法是一种基于自然进化过程的优化算法。
它模拟遗传操作,并通过选择、交叉和变异等操作来搜索最优解。
遗传算法的优势在于其适用于复杂的非线性规划问题,但可能需要较长的计算时间。
最速下降法原理及例题实例
Xk (0.00,3.00)T (2.70,1.51)T (2.52,1.20)T (2.43,1.25)T (2.37,1.16)T (2.33,1.18)T (2.30,1.14)T (2.28,1.15)T
f (X k ) 52.00
0.34 0.09
∇f ( X k ) (−44, 24)T (0.73,1.28)T (0.80, −0.48)T (0.18, 0.28)T (0.30, −0.20)T (0.08, 0.12)T (0.15, −0.08)T (0.0算目标函数的梯度和 Hesse 阵
设d
(k )
= [ d1 , d 2 ] , ∇f ( X ( k ) ) = [ g1 , g 2 ] 得到精确一维搜索步长 αk = g1d1 + g 2 d 2 3d + d 2 2 − 2d1d 2
2 1
取X
(1)
= (0, 0)T ,则 ∇f ( X (1) ) = [ −2, 0] ,所以 d (1) = −∇f ( X (1) ) = [ 2, 0 ] ,
求单变量极小化问题:
min f ( x 0 + tp 0 ) = min f (44t , 3 − 24t )
t ≥0 t ≥0
= min(44t − 2)4 + (92t − 6)2
t ≥0
的最优解 t 0 ,由 0.618 法可得 t 0 = 0.06 ,于是
X 1 = x 0 + t 0 p 0 = (2.70,1.51)T ∇f ( X 1 ) = (0.73,1.28)T ∇f ( X 1 ) = 1.47 > ε
10 −2 ,停止计算,所以 X (9) = [ 0.988, 0.988] 作为问题的最优解。
用最速下降法求解无约束非线性规划问题
运筹学实习报告姓名: xxxxxxxxxx 学号: xxxxxxxxxxx 专业班级: xxxxxxxxxxxx 2 0 1 3年 7 月 0 4 日题目:用最速下降法求解无约束非线性规划问题 摘要:无约束最优化问题的求解方法分为解析法和直接法两大类。
解析法需要计算函数的梯度,其中最速下降法就属于解析法中的一种。
对于一个无约束非线性规划利用最速下降法求解,首先需要确定其优化方向,此优化方向应该选择为f 在当前点处的负梯度方向,利用一维搜索法找出沿此方向上的最小值及其对应点,此后将该点作为新的出发点重复上述过程,直到达到允许的误差为止。
本文通过理论的计算方法,进一步分析,最后用c++编程实现求出允许误差内的最优解。
此编程可用于计算符合下列形式的函数求最优解过程:f(x)=a[0]x1*x1+a[1]x2*x2+a[2]x1*x2+a[3]x1+a[4]x2+a[5]其中:a[i] (i=0,1,2,3,4,5) 为函数的系数。
本文以“ 李占利 主编,中国矿业大学出版社出版”的《最优化理论与方法》 第五章 “无约束最优化方法,5.1 最速下降法 ”例5—1为实例,首先利用上述迭代的方法,计算出各迭代点的函数值,梯度及其模。
然后应用c++语言编程,得到在精度范围内的精确最优解。
C++编程计算的最优解为 : T x x ]0329218.0,00823045.0[)3(*-==。
即转化为分数结果为:⎥⎦⎤⎢⎣⎡-==412432)3(*x x 。
满足精度要求的模为:1010736154.0||||)3(=<=εp 。
关键词:无约束非线性规划 解析法 最速下降法 梯度 模 最优解一、算法思想无约束最优化方法中的最速下降法首先需要确定其优化方向,此优化方向应该选择为f 在当前点处的负梯度方向,利用一维搜索法找出沿此方向上的最小值及其对应点,此后将该点作为新的出发点重复上述过程,直到达到允许的误差为止。
用Matlab实现非线性无约束优化的几种方法比较
用Matlab实现非线性无约束优化的几种方法比较王娜;朱逸夫【摘要】在实际规划问题的求解过程中,优化解的真值具有不可预知性,为了寻找可用的稳定解,往往需要用不同的算法进行试算,并对所有计算结果进行甄别,这需要应用者具备良好的经验.为此,利用Matlab工具箱中的fminunc和fminsearch命令格式,并根据牛顿法、拟牛顿法、最速下降法、阻尼牛顿法和修正牛顿法等方法,分别编程实现在经典算例中求解无约束非线性优化问题,并对计算结果进行了比较和分析.【期刊名称】《长春工程学院学报(自然科学版)》【年(卷),期】2018(019)004【总页数】5页(P95-99)【关键词】非线性规划;Matlab;无约束优化;一维搜索;搜索方向【作者】王娜;朱逸夫【作者单位】长春工程学院教务处 ,长春 130012;长春工程学院计算机技术与工程学院 ,长春 130012【正文语种】中文【中图分类】TP3910 引言非线性无约束最优化技术是一门实践性很强的方法,应用者往往要在实践中不断地总结[1-4]。
对有些应用者来说,不必要浪费了大量的时间和精力,系统而深入地学习优化算法及公式,他们只希望能够快速地找到有效的解法、合适的优化软件,并能在计算机上尽快地求出问题的解[5]。
为此本文针对非线性无约束优化模型,利用几种不同的Matlab求解非线性无约束优化问题的调用格式,或根据无约束优化的算法编程进行求解,并进行解的比较和分析,提高非线性规划模型的应用效果和能力。
1 非线性无约束优化的基本理论设无约束非线性规划的模型为minf(x),x=(x1,x2,…,xn)T∈Rn,(1)求解无约束优化问题的主要思想是下降算法:每一步都要求函数值有所下降,其迭代格式为x(k+1)=x(k)+αkd(k),即对应于点列{xk}上的函数值列{f(xk)}必须是逐渐减小的,或者至少是不增加的,因而有f(x0)≥f(x1)≥…≥f(xk)≥f(xk+1)≥…(2)我们还要求这些点列收敛于全局最优解。
第五小组_非线性规划-无约束极值问题
6 12 6 /17 ( , ) 17 17 12 /17 f ( X (1) )T f ( X (1) ) 1 0 = = = -12 f ( X (0) )T f ( X (0) ) 289 (-12, 6) 6 P (1) = -f ( X (1) ) + 0 P (0) f ( X (1) )T P (1) 17 l1 = = (1) T (1) ( P ) AP 10 X (2) = X (1) + l1 P (1) 1 = 1 6 /17 1 12 90 210 = - + = , 12 /17 289 -6 289 289
但P(i) ≠0 ,A为正定,即
a1 p(i )T AP(i ) = 0
p(i )T AP(i ) = 0 故必有ai= 0,i =1,2,L从而P(1), P(2),… P(n)线性独立
非线性规划:无约束极值问题
梯度法 共轭梯度法 变尺度法 正定二次函数极小问题
二、基本定理
1 T • 无约束极值的一个特殊情形是: min f ( x) = X AX + BT X + c 2
梯度法 共轭梯度法 变尺度法
计算步骤:
( 计算H ( k ),P k) = - H ( k )f ( X ( k ) ) ( 在P 0) 方向进行一维搜索,确定最佳步长l0
min f ( X ( k ) + lk P ( k ) ) = f ( X ( k ) + lk P ( k ) )
l
则X ( k +1) = X ( k ) + lk P ( k ) 满足精度要求,则停止迭代; 否则则重复上述步骤
最速下降法原理及例题实例
−1 1
=
G
αk
=
g1d1 + g2d2 3d12 + d22 − 2d1d2
[ ] [ ] 取 X (1) = (0, 0)T ,则 ∇f ( X (1) ) = −2, 0 T ,所以 d (1) = −∇f ( X (1) ) = 2, 0 T ,
因此
α1
=
22 3× 22
=
1 3
[ ] [ ] X (2) = X (1) + α1d (1) =
=
1 + 4x1 + 2x2 −1+ 2x1 + 2x2
∂(x2 )
∇f
(X
(1) )
=
1 −1
令搜索方向 d (1)
=
−∇f
(X
(1) )
=
−1 1
再从
X
(1) 出发,沿
d (1) 方向作一维寻优,令
步长变量为 λ
,最优步长为 λ1 ,则有
X
(1)
+
λd (1)
=
0 0
+
λ
−1 1
min f ( X ) = (x1 − 2)4 + (x1 − 2x2 )2
其中 X = (x1, x2 )T ,要求选取初始点 X 0 = (0, 3)T ,终止误差 ε = 0.1.
解:因
∇f ( X ) = [4(x1 − 2)3 + 2(x1 − 2x2 ), −4(x1 − 2x2 )]T
∇f (x∗ ) = 0源自(二)最速下降法的基本思想和迭代步骤
最速下降法又称为梯度法,是 1847 年由著名数学家 Cauchy 给出的。他是解析法中最古老的一 种,其他解析方法或是它的变形,或是受它的启发而得到的,因此它是最优化方法的基础。
非线性-无约束规划
6) 实用收敛性: )
定义最优解集如下 S* = { x | x 具有某种性质 } 例:S*={x| x---g.opt} S*={x| x---l.opt} S*={x|∇f(x)=0} S*={x| f’(x)≤β} (β为给定实数,称为阈值) 当下列情况之一成立时 当下列情况之一成立时,称算法收敛具有该性质点 之一成立时, 1°∃x(k) ∈S*; ° 2°∀k,{X(k)}任意极限点∈S* ° 任意极限点∈ 任意极限点
* ak 为最优步长。 最优步长。 则称
根据单变量的驻点条件: 根据单变量的驻点条件 d f(xk+akPk)/dak=0 (当ak=ak* 时) 以及复合函数的求导法则可得: 以及复合函数的求导法则可得:
∇f ( x
k +1 T
) P =0
k
2) 缩小区间的非精确一维搜索
(1)单峰的概念 ) 若对任意λ 若对任意 1 ,λ2, α≤ 1º 若α2 ≤
停
11. 最优步长的一维搜索 1) 精确一维搜索(假定求目标函数极小值) 假定求目标函数极小值) * ak 是在给定 k和方向 是目标函数, 设f(X)是目标函数,如果 是在给定X 是目标函数 矢量P 通过f(x)=f(xk+akPk) 的极小化而产生 矢量 k下,通过
ak* = arg ak min f ( x k + ak P k )
∂ u ∂u ∂u ∂u = cos α + cos β + cos γ ∂ l ∂x ∂y ∂r
2. 海瑟矩阵
海瑟矩阵是对称形式:
∂2 f ( X ) ∂x12 ∂2 f ( X ) 2 H ( X ) = ∇ f ( X ) = ∂x2 ∂x1 ...... ∂2 f ( X ) ∂xn ∂x1
非线性最优化计算方法与算法
毕业论文题目非线性最优化计算方法与算法学院数学科学学院专业信息与计算科学班级计算1201学生陶红学号20120921104指导教师邢顺来二〇一六年五月二十五日摘要非线性规划问题是一般形式的非线性最优化问题。
本文针对非线性规划的最优化问题进行方法和算法分析。
传统的求解非线性规划的方法有最速下降法、牛顿法、可行方向法、函数逼近法、信赖域法,近来研究发现了更多的求解非线性规划问题的方法如遗传算法、粒子群算法。
本文对非线性规划分别从约束规划和无约束规划两个方面进行理论分析。
利用最速下降法和牛顿法两种典型算法求解无约束条件非线性规划问题,通过MATLAB程序求解最优值,探讨其收敛性和稳定性。
另外给出了阻尼牛顿法,探讨其算法的收敛性和稳定性,求解无约束非线性规划比牛顿法的精确度更高,收敛速度更快。
惩罚函数是经典的求解约束非线性的方法,本文采用以惩罚函数法为核心的遗传算法求解有约束条件非线性规划问题,通过MATLAB程序求解最优值,探讨其收敛性和稳定性。
并改进遗传算法,给出适应度函数,通过变换适应度函数,提高算法的收敛性和稳定性。
关键词:非线性规划;最速下降法;牛顿法;遗传算法ABSTRACTNonlinear programming problem is the general form of the nonlinear optimization problem. In this paper, we carry on the analysis of the method and algorithm aiming at the optimization problem of nonlinear programming. The traditional methods of solving nonlinear programming problems include steepest descent method, Newton method, the feasible direction method, function approximation method and trust region method. Recent studies found more method of solving nonlinear programming problems, such as genetic algorithm, particle swarm optimization (pso) algorithm. In this paper, the nonlinear programming is analyzed from two aspects: the constraint programming and the unconstrained programming.We solve unconstrained condition nonlinear programming problem by steepest descent method and Newton's method, and get the optimal value through MATLAB. Then the convergence and stability are discussed. Besides, the damped Newton method is furnished. By discussing the convergence and stability of the algorithm, the damped Newton method has higher accuracy and faster convergent speed than Newton's method in solving unconstrained nonlinear programming problems.Punishment function is a classical method for solving constrained nonlinear. This paper solves nonlinear programming problem with constraints by using genetic algorithm method, the core of which is SUMT. Get the optimal value through MATLAB, then the convergence and stability are discussed. Improve genetic algorithm, give the fitness function, and improve the convergence and stability of the algorithm through transforming the fitness function.Key words:Nonlinear Programming; Pteepest Descent Method; Newton Method; GeneticAlgorithm目录摘要 (I)ABSTRACT .......................................................................................................................... I I 1 前言 .. (4)1.1 引言 (4)1.2 非线性规划的发展背景 (5)1.3 国内外研究现状 (5)1.4 研究主要内容及研究方案 (6)1.4.1 研究的主要内容 (6)1.4.2 研究方案 (6)1.5 研究难点 (7)2 预备知识 (8)2.1 向量和矩阵范数 (8)2.1.1 常见的向量范数 (8)2.1.2 谱范数 (9)2.2符号和定义 (9)2.3 数值误差 (10)2.4 算法的稳定性 (10)2.5 收敛性 (12)3 非线性规划模型 (13)3.1 非线性规划模型 (13)3.2 无约束非线性规划 (14)3.2.1 最速下降法 (16)3.2.2 牛顿法 (18)3.2.2 阻尼牛顿法 (18)3.3 约束非线性规划 (20)3.3.1 惩罚函数法 (21)3.3.2 遗传算法 (21)3.3.3 自适应遗传算法 (22)结论 (26)参考文献 (27)致谢 (28)附录 (29)1 前言1.1 引言我们知道最优化是一门很古老的求极值问题,最优化在求解线性规划,非线性规划,随机规划,多目标规划,非光滑规划,整数规划,几何规划等方面研究得到迅速发展。
最优化方法试卷与答案5套
《最优化方法》1一、填空题:1 •最优化问题的数学模型一般为:_____________________________ ,其中___________ 为目标函数, _____________ 为约束函数,可行域D可以表示为 _______________________________ ,若 _______________________________ ,称x*为问题的局部最优解,若 _________________________________________ 称X*为问题的全局最优解。
2 •设f(x)= 2x1 2x1X2 X i 5X2 ,则其梯度为_______________________ ,海色矩阵___________ ,令x (1,2)T,d (1,0)T,则f(x)在x处沿方向d的一阶方向导数为___________ 几何意义为________________________________________ 二阶方向导数为 ____________________ ,几何意义为_____________________________3 •设严格凸二次规划形式为:min f (x) 2x; 2x| 2x1x2s.t. 2x1x21x10x20则其对偶规划为4•求解无约束最优化问题:min f(x), x R n,设x k是不满足最优性条件的第k 步迭代点,则:用最速下降法求解时,搜索方向d k= ___________用Newton法求解时,搜索方向d k= ____________用共轭梯度法求解时,搜索方向 d k= ________________二.(10分)简答题:试设计求解无约束优化问题的一般下降算法。
三.(25分)计算题1. (10分)用一阶必要和充分条件求解如下无约束优化问题的最优解:3 2min f (x) 2x! 3为6x^2(^ x21).2. ( 15分)用约束问题局部解的一阶必要条件和二阶充分条件求约束问题:min f (x) x1x22 2s.t. c(x) % X2 1 0的最优解和相应的乘子。
最优化-刘志斌-课后习题3-5参考答案要点word版本
最优化-刘志斌-课后习题3-5参考答案要点练习题三1、用0.618法求解问题12)(min 30+-=≥t t t t ϕ的近似最优解,已知)(t ϕ的单谷区间为]3,0[,要求最后区间精度0.5ε=。
答:t=0.8115;最小值-0.0886.(调用golds.m 函数)(见例题讲解5) 2、求无约束非线性规划问题min ),,(321x x x f =123222124x x x x -++ 的最优解解一:由极值存在的必要条件求出稳定点: 1122f x x ∂=-∂,228f x x ∂=∂,332f x x ∂=∂,则由()0f x ∇=得11x =,20x =,30x = 再用充分条件进行检验:2212f x ∂=∂,2228f x ∂=∂,2232fx ∂=∂,2120f x x ∂=∂∂,2130f x x ∂=∂∂,2230f x x ∂=∂∂ 即2200080002f ⎛⎫⎪∇= ⎪ ⎪⎝⎭为正定矩阵得极小点为T *(1,0,0)x =,最优值为-1。
解二:目标函数改写成min ),,(321x x x f =222123(1)41x x x -++- 易知最优解为(1,0,0),最优值为-1。
3、用最速下降法求解无约束非线性规划问题。
2221212122)(m in x x x x x x X f +++-=其中T x x X ),(21=,给定初始点T X )0,0(0=。
解一:目标函数()f x 的梯度112122()()142()122()()f x x x x f x x x f x x ∂⎡⎤⎢⎥∂++⎡⎤⎢⎥∇==⎢⎥-++∂⎢⎥⎣⎦⎢⎥∂⎣⎦(0)1()1f X ⎡⎤∇=⎢⎥-⎣⎦令搜索方向(1)(0)1()1d f X -⎡⎤=-∇=⎢⎥⎣⎦再从(0)X 出发,沿(1)d 方向作一维寻优,令步长变量为λ,最优步长为1λ,则有(0)(1)0101Xdλλλλ--⎡⎤⎡⎤⎡⎤+=+=⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦故(0)(1)2221()()()2()2()2()f x f X d λλλλλλλλλϕλ=+=--+-+-+=-=令'1()220ϕλλ=-=可得11λ= (1)(0)(1)1011011X X d λ--⎡⎤⎡⎤⎡⎤=+=+=⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦ 求出(1)X 点之后,与上类似地,进行第二次迭代:(1)1()1f X -⎡⎤∇=⎢⎥-⎣⎦ 令(2)(1)1()1d f X ⎡⎤=-∇=⎢⎥⎣⎦令步长变量为λ,最优步长为2λ,则有(1)(2)111111X d λλλλ--⎡⎤⎡⎤⎡⎤+=+=⎢⎥⎢⎥⎢⎥+⎣⎦⎣⎦⎣⎦ 故(1)(2)2222()()(1)(1)2(1)2(1)(1)(1)521()f x f X d λλλλλλλλλϕλ=+=--++-+-+++=--=令'2()1020ϕλλ=-=可得 215λ= (2)(1)(2)2110.8111 1.25X X d λ--⎡⎤⎡⎤⎡⎤=+=+=⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦(2)0.2()0.2f X ⎡⎤∇=⎢⎥-⎣⎦ 此时所达到的精度(2)()0.2828f X ∇≈ 本题最优解11.5X *-⎡⎤=⎢⎥⎣⎦,()1,25f X *=-解二:利用matlab 程序求解首先建立目标函数及其梯度函数的M 文件 function f=fun(x)f=x(1)-x(2)+2*x(1)*x(1)+2*x(1)*x(2)+x(2)*x(2); function g=gfun(x)g=[1+4*x(1)+2*x(2),-1+2*x(1) +2* x(2) ]; 调用grad.m 文件 x0=[0,0];[x,val,k]=grad('fun','gfun',x0) 结果x=[ -1.0000 ,1.5000] val= -1.2500 k=33即迭代33次的到最优解x=[ -1.0000 ,1.5000];最优值val= -1.2500。
(最新整理)第三章无约束非线性规划
#
一维搜索——黄金分割法
2.算法步骤
用 黄 金 分 割 法 求 无 约 束 问 题 m i n f ( x ) 的 基 本 算 法 步 骤 如 下 x R
① 选 1定 a初 1始 0.区 38间 2([ba11 ,ba11 ])及 精 度 0, 计 算 试 探 点 :令
1a10.618(b1a1)
#
一维搜索——黄金分割法
黄金分割法也叫0.618法,它是基于一种区间 收缩的极小点搜索算法,当确定搜索区间 [a,b]后,我们只知道极小点包含于搜索区间 内,但是具体是哪个点,无法得知。
1.算法原理
黄金分割法的思想很直接,既然极小点包含 于搜索区间内,那么可以不断的缩小搜索区 间,就可以使搜索区间的端点逼近到极小点 。
#
最优性条件
迭代算法的步骤 第一步:给定最优解的一个初始估计,选择初始点x(0),置k 0; 第二步:如果x(k)满足最优解估计的终止条件,停止迭代; 第三步:确定下降方向d (k) ,使得目标函数f (x)从x(k)出发,沿
d (k)方向,在射线x(k) d (k) ( 0)上选取步长k,使得 f(x(k) kd (k) )<f (x(k) )
#
黄金分割法源程序
function [x,minf] = minHJ(f,a,b,eps) format long; if nargin == 3
eps = 1.0e-6; end l = a + 0.382*(b-a); u = a + 0.618*(b-a); k=1; tol = b-a; while tol>eps && k<100000
#
一维搜索——黄金分割法
a
非线性规划问题的求解方法
运行输出:
最优解 1.00012815099165 -0.00000145071779
k= 33
练习题:
1、用外点法求解下列模型
min( x12 2x22 ) s.t. x1 x2 1
2、将例子程序改写为一个较为通用的罚函数 法程序。(考虑要提供哪些参数)
2. 内点法(障碍函数法)
min f (x) s.t. gi (x) 0,i 1,2,, m
第二步:求 (k) 最优的目标函数
function r=fungetlamada(lamada) %关于lamada的一元函数,求最优步长 global x0 d=fun1gra(x0); r=2*(x0(1)-lamada*d(1))^2+(x0(2)lamada*d(2))^2; %注意负号表示是负梯度
a 1, b 1 ,a,b 为常数,通常取 a=b=2。
算法步骤
(1)给定初始点 x(0),初始罚因子 (1) , 放大系数 c>1;允许误差 e>0,设置 k=1;
(2)以 x(k-1)作为搜索初始点,求解无约束规划问题 min f (x) P(x) ,令 x(k)为所求极小点。
lamada=fminsearch(‘fungetlamada’,la mada);%求最优步长lamada
x0=x0-lamada*fun1gra(x0);%计算x0 d=fun1gra(x0);%计算梯度 k=k+1;%迭代次数
end
disp('x='),disp(x0),disp('k='),disp (k),disp('funobj='),disp(2*x0(1)^2+ x0(2)^2)
最速下降法
1.给定初始点x0,置k:=0. 2.计算xk点的梯度,若梯度小于等于事先给 定的非常小的正数 ,则终止,否则,下 一步。
3.令z k f ( x k ).
4.求使f ( x k z k )最小的 , 记为k ,即最佳步长. 令x k 1 x k k z k , 转2.
d T 2 f ( x* )d r 即: 1 2 T 2 d f ( x * )d o(2 ) 1 2 o ( ) 2 r 0 2 2 2
即当小到一定程度时, f ( x d )-f ( x ) 0
* *
也即:x*是严格局部极小点。
算法迭代步骤(求出的是极小值点)
因为x 是局部极小值点,所以当 充分小时, f ( x d )-f ( x ) 0 令 0, 取极限可知,
1 T 2 d f ( x )d 0 2
即2 f ( x )半正定
充分条件如下(即局部最优解的刻画,当满足什么 条件,所得的解就是局部最优解)
定理3:若f 是连续可微的凸函数,则x 是 min f ( x) 问题 的最优解的充分必要条件是: n x E f ( x ) 0 进一步,若f ( x)是严格凸函数,则 x 是 唯一的最优解。
(k ) (k )
lim x ( k ) x *
k
局部收敛,全局收敛
收敛速度:设序列x k 收敛到x*,若
k
lim
x k 1 - x * x x*
k
存在,
(0,1), 线性收敛; 0,超线性收敛;
若存在p, 使得 lim
k
x k 1 - x * xk x *
第一节、最速下降法
第三章非线性规划无约束问题的最优化方法
x0
0p 0
1.919877 还需要经过10次迭代才
能满足精度要求
0.003070
第三节 牛顿法
3. 牛顿法的缺点: 牛顿法要求初始解离最优解不远,若初始点选得离最优解太
远时,牛顿法并不能保证其收敛,甚至也不是下降方向。因此, 常将牛顿法与最速下降法结合起来使用。前期使用最速下降法, 当迭代到一定程度后,改用牛顿法,可得到较好的效果。 4. 修正牛顿法 基本思想: 保留了从牛顿法中选取牛顿方向作为搜索方向,摒弃其步长恒 为1的做法,而用一维搜索确定最优步长来构造算法。
2
2
0
2e2 2 3
00 21 0
03
f x3 9
第二节 最速下降法
再从x(3)点 出发,沿x3轴方向e3进行一维搜索:
0 x 3 e3 0
3
00 00 13
f x 3 e3
32
f' 0 x4 x3
3
3
0
3e3 0 0
f x4 0
第二节 最速下降法
因为 x 1
x 4 ,0故.0以1 x(4)点作为新的x(1) ,进行新一轮迭代。
0
1 33 22
f x0
p0
52 5
42
f' x0
p0 5 5 0
22
01
第三节 牛顿法
x1 x0
1 p0 3
2
3
f x1
14
12 2
0
30
12 1 2
2
f x1
所以选取 x* x 1
1 3 作为极小点。 2
第三节 牛顿法
6. 修正牛顿法的缺点: 修正牛顿法虽然比牛顿法有所改进,但也有不足之处:
最优化方法模拟试题二
《最优化方法》模拟试题二一、填空题:1.最优化问题的数学模型一般为:____________________________,其中___________称为目标函数,___________称为约束函数,可行域D 可以表示为_____________________________,若______________________________,称*x 为问题的局部最优解,若_____________________________________,称*x 为问题的全局最优解。
2.设f(x)= 2121215102x x x x x +-+,则其梯度为___________,海色矩阵___________,令,)1,1(,)0,1(T T d x -==则f(x)在x 处沿方向d 的一阶方向导数为___________,几何意义为___________________________________,二阶方向导数为___________________,几何意义为____________________________________________________________。
3.设严格凸二次规划形式为:01..2)(min 2121212221≥≥≤+--+=x x x x t s x x x x x f则其对偶规划为___________________________________________。
4.求解无约束最优化问题:n R x x f ∈),(min ,设k x 是不满足最优性条件的第k 步迭代点,则:用最速下降法求解时,搜索方向k d =___________ 用Newton 法求解时,搜索方向k d =___________ 用共轭梯度法求解时,搜索方向k d =___________________________________________________________________________。
运筹学第四章作业的参考答案
第四章作业的参考答案151P 5、判断下列函数是否为凸函数.(3)31322123222126293)(x x x x x x x x x x f ++-++=解: )(x f 的Hesse 矩阵为⎪⎪⎪⎭⎫ ⎝⎛--=∇1862662222)(2x f .)(2x f ∇的各阶主子式分别为.01862662224,07218666,03418222,086222,018,06,02=-->=>=>=-->>>因而)(2x f ∇为半正定矩阵,所以)(x f 是凸函数。
152P 9、用0.618法求以下问题的近似解5060212)(min 230+-+-=≥t t t t t ϕ已知函数的单谷区间]5.3,5.0[,要求最后区间精度8.0=ε。
解:迭代过程用下表给出:第三轮迭代开始时有ε=<=-=-8.0708.0646.1354.2a b 。
所以近似最优解为084.2*=t 。
152P 14、求以下无约束非线性规划问题的最优解.(1)2122122211620)(2)(m in x x x x x x x f --+++=解:化简目标函数,得.1620223)(21212221x x x x x x x f --++=所以,)(x f 的Hesse 矩阵为⎪⎪⎭⎫⎝⎛=∇4226)(2x f .因为)(2x f ∇是正定矩阵,所以)(x f 是凸函数。
另一方面,目标函数的梯度向量为 .)1624,2026()(1221Tx x x x x f -+-+=∇令0)(=∇x f ,即⎩⎨⎧=-+=-+01624020261221x x x x , 求得目标函数的驻点为T x )514,512(*=. 所以,原问题的最优解为T x )514,512(*=.152P 16、求最速下降法求解以下问题,要求迭代进行三轮。
(1)22212131min x x +,取初始点.)2,3(0T x =解:由题意知.),32(),()(2121T T x x x f x f x f =∂∂∂∂=∇ 第一轮迭代:T x f p )2,2()(00--=-∇=。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
又因为
p (1) (3.5552)2 (1.7792)2 3.9755 0.01
则进行第二次迭代
f ( x(1) p (1) ) (1.7776 3.5552 )2 2(0.4448 1.7792 )2 df 7.1104(1.7776 3.5552 ) 7.1168(0.4448 1.7792 ) d df 0 ,代入即可解得: (1) 0.4167 令 d
则
所以
x (2) x (1) (1) p (1) (1.7776, 0.44448) T 0.4167( 3.5552,1.7792) T (0. 2962, 0.2966)T 2x 此时, p (2) f ( x (2) ) 1 | (0.2962,0.2966)T (0.5924, 1.1864) T 4 x2
函数 f 的一个驻点可以是极小值点;也可以是极大值点;甚至也可能既不是 极小值点也不是极大值点,因此称它为函数 f 的鞍点,以上定理告诉我们, x 是 无约束问题的局部最优解的必要条件是: x 是其目标函数 f 的驻点。 定 理 3 设 f : R n R1 在 点 x R n 处 的 Hesse 矩 阵 2 f ( x ) 存 在 , 若
return s; }
void main() { double lamb,x[2],a[2],p[2],g[2],e=0.01,y; int i=0; x[0]=4.0; x[1]=4.0; cout<<"输入函数的系数:a[0],a[1]:"<<endl; for(i=0;i<2;i++) cin>>a[i]; p[0]=2*a[0]*x[0]; p[1]=2*a[1]*x[1]; g[0]=-p[0]; g[1]=-p[1]; i=0; cout<<endl; while(sqrt(g[0]*g[0]+g[1]*g[1])>e&&i<=200) { lamb=lambda(x,g,a); x[0]=x[0]+lamb*g[0]; //开始迭代将次数赋值为 0
则
所以, x (1) x (0) (0) p (0) (4, 4)T 0.2778( 8, 16)T (1.7776, 0.4448)T
2x 此时, p (1) f ( x (1) ) 1 | (1.7776, 0.4448)T (3.5552,1.7792) T 4 x2
k:=k+1
图(3-1)
利用 c++语言编程(源代码如下) :
#include<iostream.h> #include<math.h> double lambda(double x[2],double p[2],double a[2]) { double lam1,lam2; lam1=4*(pow(a[0],3)*x[0]*x; lam2=-4*(pow(a[0]*x[0],2)+pow(a[1]*x[1],2)); double s; s=-lam2/(2*lam1);
又因为
p (3) (0.2634)2 (0.1316)2 0.2944 0.01
则进行第四次迭代
f ( x(3) p (3) ) (0.1317 0.2634 )2 2(0.0329 0.1316 )2 df 0.5268(0.1317 0.2634 ) 0.5264(0.0329 0.1316 ) d df 0 ,代入即可解得: (3) 0.4168 令 d
又因为
p (4) (0.045)2 (0.0878)2 0.0986 0.01
以上仍然没有达到要求,即还需继续迭代,直到满足 p ( k ) 0.01 为止。
3.2 对原无约束非线性规划进行 c++语言编程求解
就这样无限的迭代下去,直到 p ( k ) 0.01 为止,为此,我们可以用 c++语言 编程得到,其算法设计如下图(图 3-1)
则
所以
x (4) x (3) (3) p (3) (0.1317, 0.0329) T 0.4168( 0.2634, 0.1316) T (0.0 225, 0.0219)T 2x 此时, p (4) f ( x (4) ) 1 | (0.0225,0.0219)T (0.045, 0.0878) T 4 x2
x[1]=x[1]+lamb*g[1]; p[0]=2*a[0]*x[0]; p[1]=2*a[1]*x[1]; g[0]=-p[0]; g[1]=-p[1]; i++; //cout("di %d ci mo=%f x1=%f\tx2=%f\tbuchang
a=%f\n",++i,sqrt(g[0]*g[0]+g[1]*g[1]),x[0],x[1],a); cout<<" 迭 代 次 数 为 "<<i<<" "<<sqrt(g[0]*g[0]+g[1]*g[1])<<endl<<"x "<<x[1]<<endl<<endl; } y=a[0]*x[0]*x[0]+a[1]*x[1]*x[1]; cout<<endl<<" 分 别 输 出 x[1],x[2] : "<<x[0]<<" 的 值 p 的 模 "<<x[0]<<"
x (6) (0.00162577, 0.00162577) T , p (6) 0.00727066 。
关键词:最速下降法 无约束非线性规划 最优解
一、问题重述
2 ) ,设初始点取为 用最速下降法求解无约束非线性规划问题: min( x12 2 x2
x (0) (4, 4)T ,迭代到满足允许误差 =0.01 为止的精确解。
第3步 第4步
取 p k f ( x k ) ; 进行一维搜索,求 k ,使得 f ( x k k p k ) min f ( x k p k ) ,令
k 0
x k 1 x k k p k ,k=k+1。转第 2 步。
由以上计算步骤可知,最速下降法迭代终止时,求得的是目标函数驻点的一 个近似点。
二、问题分析
2.1 无约束非线性问题的最优条件 该问题是一个无约束非线性规划问题,利用最少下降法求解该问题,无约束 非线性规划问题的最优解所要满足的必要条件和充分条件是我们设计算法的依 据,为此有以下几个定理。 定理 1 设 f: R n R1 在点 x R n 处可微,若存在 p R n ,使 f ( x )T p 0 , 则向量 p 是 f 在点 x 处的下降方向。 定理 2 设 f: R n R1 在点 x R n 处可微,若 x 是无约束问题的局部最优解, 则 f ( x ) 0 有数学分析中我们已经知道,使 f ( x) 0 的点 x 为函数 f 的驻点或平稳点。
f ( x ) 0 ,并且 2 f ( x ) 正定,则
x
是无约束非线性问题的严格局部最优解。
一般而言,无约束非线性问题的目标函数的驻点不一定是无约束非线性问题 的最优解, 但对于其目标函数是凸函数的无约束凸规划,下面定理证明了它的目 标函数的驻点就是它的整体最优解。 定理 4 设 f: R n R1 , x R n ,f 是 R n 上的可微凸函数。若有 f ( x ) 0 , 则 x 是无约束问题的整体最优解。 2.2 最速下降法的基本思想 最速下降法又称为梯度法,是 1847 年由著名数学家 Cauchy 给出的,他是解 析法中最古老的一种,其他解析方法或是他的变形,或是他的启发得到的,因此 它是最优化方法的基础。 设无约束非线性规划问题中的目标函数 f: R n R1 在点 x R n 处可微。最 速下降法的基本思想是:从当前点 x k 出发,取函数 f ( x) 在点 x k 处下降最快的方 向 作 为 我 们 收 索 方 向
用最速下降法求解无约束非线性规划问题
摘要: 无约束非线性规划问题是一类重要的数学规划问题。文主要研究了用最速 下降法也就是梯度法对无约束非线性规划问题进行求解。 对于一个无约束非线性 规划利用最速下降法求解,首先需要确定其优化方向,此优化方向应该选择为 f 在当前点处的负梯度方向,利用一维搜索法找出沿此方向上的最小值及其对应 点,此后将该点作为新的出发点重复上述过程,直到达到允许的误差为止。本文 最后利用 c++语言编程得到满足允许误差内的最优解。 本文主要对一个无约束非线性规划问题的实例,首先利用上述迭代的方法, 计算出各迭代点的函数值,梯度及其模。然后应用 c++语言编程,得到精确地最 优 解 , 需 迭 代 六 次 才 使 得 0.01 , 得 到 的 最 优 解 为
则
所以
x (3) x (2) (2) p (2) (0.2962, 0.2966) T 0.2777( 0.5924, 1.1864) T (0.1 317, 0.0329)T 2x 此时, p (3) f ( x (3) ) 1 | (0.1317, 0.0329)T (0.2634, 0.1316) T 4 x2
取x
(0)
, 0.01
k:=0
计算 p
(k )
f ( x ( k ) )
停
p(k ) ?