├── armijo.m ├── bfgs.m ├── broyden.m ├── dampnm.m ├── dfp.m ├── frcg.m ├── golds.m ├── grad.m ├── lmm.m ├── multphr.m ├── qlag.m ├── qmin.m ├── qpact.m ├── qpsubp.m ├── readme.txt ├── revisenm.m ├── sqpm.m ├── sr1.m ├── trustm.m └── trustq.m /armijo.m: -------------------------------------------------------------------------------- 1 | function mk=armijo(xk,dk ) 2 | beta=0.5; 3 | sigma=0.2; 4 | m=0; 5 | mmax=20; 6 | while (m<=mmax) 7 | if(fun(xk+beta^m*dk)<=fun(xk)+sigma*beta^m*gfun(xk)'*dk) 8 | mk=m; 9 | break; 10 | end 11 | m=m+1; 12 | end 13 | alpha=beta^mk 14 | newxk=xk+alpha*dk 15 | fk=fun(xk) 16 | newfk=fun(newxk) -------------------------------------------------------------------------------- /bfgs.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hannah-Zhou/Optimization_Algorithm/b99714ceda8c681b44a59152dc838a6a08e2c11d/bfgs.m -------------------------------------------------------------------------------- /broyden.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hannah-Zhou/Optimization_Algorithm/b99714ceda8c681b44a59152dc838a6a08e2c11d/broyden.m -------------------------------------------------------------------------------- /dampnm.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hannah-Zhou/Optimization_Algorithm/b99714ceda8c681b44a59152dc838a6a08e2c11d/dampnm.m -------------------------------------------------------------------------------- /dfp.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hannah-Zhou/Optimization_Algorithm/b99714ceda8c681b44a59152dc838a6a08e2c11d/dfp.m -------------------------------------------------------------------------------- /frcg.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hannah-Zhou/Optimization_Algorithm/b99714ceda8c681b44a59152dc838a6a08e2c11d/frcg.m -------------------------------------------------------------------------------- /golds.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hannah-Zhou/Optimization_Algorithm/b99714ceda8c681b44a59152dc838a6a08e2c11d/golds.m -------------------------------------------------------------------------------- /grad.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hannah-Zhou/Optimization_Algorithm/b99714ceda8c681b44a59152dc838a6a08e2c11d/grad.m -------------------------------------------------------------------------------- /lmm.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hannah-Zhou/Optimization_Algorithm/b99714ceda8c681b44a59152dc838a6a08e2c11d/lmm.m -------------------------------------------------------------------------------- /multphr.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hannah-Zhou/Optimization_Algorithm/b99714ceda8c681b44a59152dc838a6a08e2c11d/multphr.m -------------------------------------------------------------------------------- /qlag.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hannah-Zhou/Optimization_Algorithm/b99714ceda8c681b44a59152dc838a6a08e2c11d/qlag.m -------------------------------------------------------------------------------- /qmin.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hannah-Zhou/Optimization_Algorithm/b99714ceda8c681b44a59152dc838a6a08e2c11d/qmin.m -------------------------------------------------------------------------------- /qpact.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hannah-Zhou/Optimization_Algorithm/b99714ceda8c681b44a59152dc838a6a08e2c11d/qpact.m -------------------------------------------------------------------------------- /qpsubp.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hannah-Zhou/Optimization_Algorithm/b99714ceda8c681b44a59152dc838a6a08e2c11d/qpsubp.m -------------------------------------------------------------------------------- /readme.txt: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%非线性最优化问题主要算法Matlab程序设计%%%%%%%%%%%%%%%%%%%% 2 | 3 | %%%%%%%%%%%%%%%%%%%%%%%%线搜索技术%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 4 | 1.golds.m 【0.618法程序】 用0.618法求单变量函数在单峰区间[a,b]上的近似极小点。 5 | 2.qmin.m 【抛物线算法程序】 求函数在区间[a,b]上的局部最小值,从初始点s开始,然后在[a,s],[s,b]上进行搜索。 6 | 3.armijo.m 【Armijo准则程序】 Armijo搜索规则是许多非线性优化算法都必须执行的步骤,把它编制成可重复利用的程序模块是很有意义的。 7 | 8 | %%%%%%%%%%%%%%%%%%%%%%%%最速下降法及牛顿法%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 9 | 4.grad.m 【最速下降法程序】 基于Armijo非精确线搜索的最速下降法Matlab程序。 10 | 5.dampnm.m 【阻尼牛顿法程序】 基于 Armijo非精确线搜索的阻尼牛顿法 Matlab 程序。 11 | 6.revisenm.m 【修正牛顿法程序】修正牛顿法克服了牛顿法要求Hesse 阵正定的缺陷。 12 | 13 | %%%%%%%%%%%%%%%%%%%%%%%%共轭梯度法法%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 14 | 7.frcg.m 【FR共轭梯度法程序】 基于Armijo非精确线搜索的再开始FR共轭梯度法的Matlab程序。 15 | 16 | %%%%%%%%%%%%%%%%%%%%%%%%拟牛顿法%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 17 | 8.sr1.m 【对称秩 1 算法程序】 基于Armijo搜索的对称秩1算法的Matlab程序。 18 | 9.bfgs.m 【BFGS 算法程序】 基于Armijo搜索的BFGS算法的Matlab程序。 19 | 10.dfp.m 【DFP算法程序】 基于Armijo搜索的DFP算法的Matlab程序。 20 | 11.broyden.m 【Broyden族算法程序】 基于 Armijo 搜索的 Broyden 族算法的 Matlab 程序。 21 | 22 | %%%%%%%%%%%%%%%%%%%%%%%%信赖域方法%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 23 | 12.trustq.m 【求解子问题的光滑牛顿法程序1】 利用光滑牛顿法求解信赖域子问题, 一般适用于 (近似) Hesse 阵正定的情形。 24 | 13.trustm.m 【牛顿型信赖域方法程序】 25 | 26 | %%%%%%%%%%%%%%%%%%%%%%%%非线性最小二乘问题%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 27 | 14.lmm.m 【L-M算法程序】 利用 LM 方法求解非线性方程组F(x)= 0, 可适用于未知数的个数与方程的个数不相等的情形。 28 | 29 | %%%%%%%%%%%%%%%%%%%%%%%%罚函数法%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 30 | 15.multphr.m 【PHR乘子法程序】 可利用该程序求解约束优化问题。 31 | 32 | %%%%%%%%%%%%%%%%%%%%%%%%二次规划法%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 33 | 16.qlag.m 【Lagrange算法程序】 用拉格朗日方法求解等式约束条件的二次规划问题。 34 | 17.qpact.m 【有效集方法程序】 主要适用于求解一般约束条件下的凸二次规划问题。 35 | 36 | %%%%%%%%%%%%%%%%%%%%%%%%序列二次规划法%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 37 | 18.qpsubp.m 【求解子问题的光滑牛顿法程序2 】利用光滑牛顿法求解二次规划子问题。 38 | 19.sqpm.m 【SQP 方法程序】求解一般约束优化问题,该程序在每一迭代步调用了程序求解二次规划子问题. 39 | -------------------------------------------------------------------------------- /revisenm.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hannah-Zhou/Optimization_Algorithm/b99714ceda8c681b44a59152dc838a6a08e2c11d/revisenm.m -------------------------------------------------------------------------------- /sqpm.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hannah-Zhou/Optimization_Algorithm/b99714ceda8c681b44a59152dc838a6a08e2c11d/sqpm.m -------------------------------------------------------------------------------- /sr1.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hannah-Zhou/Optimization_Algorithm/b99714ceda8c681b44a59152dc838a6a08e2c11d/sr1.m -------------------------------------------------------------------------------- /trustm.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hannah-Zhou/Optimization_Algorithm/b99714ceda8c681b44a59152dc838a6a08e2c11d/trustm.m -------------------------------------------------------------------------------- /trustq.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hannah-Zhou/Optimization_Algorithm/b99714ceda8c681b44a59152dc838a6a08e2c11d/trustq.m --------------------------------------------------------------------------------