用最速下降法求解无约束非线性规划问题

合集下载

最速下降法——精选推荐

最速下降法——精选推荐

最速下降法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作为一种强大的数值计算软件,在解决最优化问题方面有着广泛的应用。

本文将介绍一些Matlab中常用的最优化问题求解方法,并探讨其优缺点以及适用范围。

一. 无约束问题求解方法1. 最速下降法最速下降法是最简单且直观的无约束问题求解方法之一。

其基本思想是沿着梯度的反方向迭代求解,直到达到所需的精度要求。

然而,最速下降法的收敛速度通常很慢,特别是在局部极小值点附近。

2. 共轭梯度法共轭梯度法是一种改进的最速下降法。

它利用了无约束问题的二次函数特性,通过选择一组相互共轭的搜索方向来提高收敛速度。

相比于最速下降法,共轭梯度法的收敛速度更快,尤其适用于大规模优化问题。

3. 牛顿法牛顿法是一种基于二阶导数信息的优化方法。

它通过构建并求解特定的二次逼近模型来求解无约束问题。

然而,牛顿法在高维问题中的计算复杂度较高,并且需要矩阵求逆运算,可能导致数值不稳定。

二. 线性规划问题求解方法1. 单纯形法单纯形法是一种经典的线性规划问题求解方法。

它通过在可行域内进行边界移动来寻找最优解。

然而,当问题规模较大时,单纯形法的计算复杂度会大幅增加,导致求解效率低下。

2. 内点法内点法是一种改进的线性规划问题求解方法。

与单纯形法不同,内点法通过将问题转化为一系列等价的非线性问题来求解。

内点法的优势在于其计算复杂度相对较低,尤其适用于大规模线性规划问题。

三. 非线性规划问题求解方法1. 信赖域算法信赖域算法是一种常用的非线性规划问题求解方法。

它通过构建局部模型,并通过逐步调整信赖域半径来寻找最优解。

信赖域算法既考虑了收敛速度,又保持了数值稳定性。

2. 遗传算法遗传算法是一种基于自然进化过程的优化算法。

它模拟遗传操作,并通过选择、交叉和变异等操作来搜索最优解。

遗传算法的优势在于其适用于复杂的非线性规划问题,但可能需要较长的计算时间。

最速下降法原理及例题实例

最速下降法原理及例题实例
表 1-1 迭代次 数k
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实现非线性无约束优化的几种方法比较王娜;朱逸夫【摘要】在实际规划问题的求解过程中,优化解的真值具有不可预知性,为了寻找可用的稳定解,往往需要用不同的算法进行试算,并对所有计算结果进行甄别,这需要应用者具备良好的经验.为此,利用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套

最优化方法试卷与答案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参考答案要点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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

运筹学实习报告姓名: 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++编程计算的最优解为 : Tx x ]0329218.0,00823045.0[)3(*-==。

即转化为分数结果为:⎥⎦⎤⎢⎣⎡-==412432)3(*xx 。

满足精度要求的模为:1010736154.0||||)3(=<=εp 。

关键词:无约束非线性规划 解析法 最速下降法 梯度 模 最优解一、算法思想无约束最优化方法中的最速下降法首先需要确定其优化方向,此优化方向应该选择为f 在当前点处的负梯度方向,利用一维搜索法找出沿此方向上的最小值及其对应点,此后将该点作为新的出发点重复上述过程,直到达到允许的误差为止。

主要依据解无约束非线性规划问题的最速下降法计算步骤进行设计算法。

具体步骤如下:第1步 选取初始点0x ,给定终止误差 ε>0,令k=0;第2步 计算()k f x ∇,若()k f x ε∇≤,停止迭代,输出k x ,否则进行第3步;第3步 取()k kp f x =-∇; 第4步 进行一维搜索,求k λ,使得0()min ()k k k k k k f x p f x p λλ≥+=+,令1k k kk x x p λ+=+,k=k+1。

转第2步。

由以上计算步骤可知,最速下降法迭代终止时,求得的是目标函数驻点的一个近似点。

依据以上步骤就可以用C++编程实现最速下降法求解最优解的算法。

二、算法流程图三、程序代码#include<iostream.h> #include<math.h>double lamda(double x[2],double p[2],double a[2]) { double lam1,lam2; lam1=(pow(a[0],3)*x[0]*x[0]+pow(a[1],3)*x[1]*x[1]); lam2=-(pow(a[0]*x[0],2)+pow(a[1]*x[1],2)); double s;停()k x x *=取(0)x,1.0=εk:=0计算()()()k k pf x =-∇()?k pε≤是否求()k λ()()()()()0()()min k k k k k f x p f x p λλλ≥+=+令(1)()()()k k k k x x p λ+=+k:=k+1s=-lam2/(2*lam1);return s;}void main(){cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;cout<<"@@ 最速下降法求解最优解程序运行结果@@"<<endl;cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;cout<<endl;double lamd,x[3],a[6];double p[2],g[2],e,y,m,n;int i=0;cout<<"请输入精度e"<<endl;cin>>e;cout<<"请输入初始点x[0],x[1]的值:\n"<<endl;cin>>m;cin>>n;x[0]=m;x[1]=n;cout<<"函数通式为f(x)=a[0]x1*x1+a[1]x2*x2+a[2]x1*x2+a[3]x1+a[4]x2+a[5]"<<endl;cout<<"请依次输入函数的系数:a[0]、a[1]、a[2]、a[3]、a[4]、a[5]:"<<endl;for(i=0;i<6;i++)cin>>a[i];p[0]=(2*a[0]*x[0]+a[2]*x[1]+a[3]);p[1]=(2*a[1]*x[1]+a[2]*x[0]+a[4]);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){lamd=lamda(x,g,a);x[0]=x[0]+lamd*g[0];x[1]=x[1]+lamd*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<<"******************************************"<<endl; cout<<"第"<<i<<"次迭代结果:"<<endl; cout<<"p 的模为:"<<sqrt(g[0]*g[0]+g[1]*g[1])<<endl; cout<<"x 的值"<<x[0]<<" "<<x[1]<<endl; cout<<"******************************************"<<endl; cout<<endl; } y=(a[0]*x[0]*x[0]+a[1]*x[0]*x[1]+a[2]*x[0]*x[1]+a[3]*x[0]+a[4]*x[1]+a[5]);cout<<"此时满足精度要求的p 的模为:"<<sqrt(g[0]*g[0]+g[1]*g[1])<<endl; cout<<endl;cout<<"满足精度的最优近似结果x[1],x[2]分别为:"<<endl; cout<<"x[1]="<<x[0]<<endl; cout<<"x[2]="<<x[1]<<endl; cout<<endl; cout<<"满足进度要求所得的最优值为:"<<endl; cout<<"minf(x)="<<y<<endl; }四、例子与结果例子为“ 李占利 主编,中国矿业大学出版社出版”的《最优化理论与方法》第五章 “无约束最优化方法,5.1 最速下降法 ”例5—1。

用最速下降法求解22212)(min x x x f +=,初始迭代点⎥⎦⎤⎢⎣⎡=11)0(x ,精度为1.0=ε。

则体现在程序中很明显有:a[0]=2,a[1]=1,a[2]=a[3]=a[4]=a[5]=0;e=0.1;x[0]=x[1]=1;则程序运行结果为:即在允许的精度范围内22212)(min x x x f +=,初始迭代点⎥⎦⎤⎢⎣⎡=11)0(x ,精度为1.0=ε。

得到在精度范围内的精确最优解为:T x x ]0329218.0,00823045.0[)3(*-==,即⎥⎦⎤⎢⎣⎡-==412432)3(*x x 。

满足精度要求的模为:1010736154.0||||)3(=<=εp 。

五、结论与总结最速下降法为最优化万千方法中的一种,要想更好地利用最优化方法解决我们身边的问题,光靠这一种方法远远不够。

因此我必须要好好掌握其他的各种方法。

还有通过这次实习让我深深认识到,并不是所有的问题都能够手工完成的,我们平常接触的例题,都非常基础,那完全可以手工计算得到答案,但如果问题比较复杂时,我们是没有办法用手工完成的。

所以我们必须借助计算机来解决那些复杂的问题。

因此这就要求我们必须要熟练掌握编程技巧,要能够把实际的复杂问题通过编写程序来解决它。

还有此次用最速下降法求解最优解的程序,我编的还不够完美,还有很多不足之处,只能用于研究二元函数的最优解问题,不能进行其他的更深入的研究,所以还有很多改进的地方,以后我还要继续努力。

对于编程一定要多练、多动手操作,通过这次实习让我深深地认识到,光靠理论知识是不行的,理论知道再多,如果不动手实践的话照样编不出程序,只有在实践中,在编写程序的过程中我们才能发现自己的不足,才能知道问题出在哪儿。

所以无论学习什么编程语言,我今后一定要多动手,今后无论学习什么我都要勤动手,多动手,多写,多练。

六、参考文献[1]龚尚福,贾澎涛. C/C++语言程序设计 [M].徐州:中国矿业大学出版社,2006.12.[2]李占利,张卫国.最优化理论与方法[M].徐州:中国矿业大学出版社,2012.8.[3]范玉妹,徐尔.数学规划及其应用 [M].北京:冶金工业出版社,2009.9.[4]孙文瑜,徐成贤,朱德通. 最优化方法 [M].北京:高等教育出版社,2004.8.。

相关文档
最新文档