写在最前:
在此只是简单在应用层面说明一下相关算法,严谨的数学知识,请大家参考最下面参考书目,后期有精力会进行细化,先占个坑。
基础知识:
通常所说的最速下降法均指欧氏度量意义下的最速下降法,最速下降法用于求解无约束的非线性规划问题,
求解的问题可以描述为:
其中函数\(f(x)\)具有一阶连续偏导数。
\(s.t.\)表示是subject to的缩写,即约束条件的意思。集合\(R^n\)表示的是\(n\)维欧式空间。
下降最快的方向为负梯度方向:
程序框图:
对于具体的求解过程,我一般喜欢用程序框图的方式来呈现:
例子:
这里给大家贴一个PPT上的手动求解的例子,通过手动求解的例子学习,有助于大家理解算法,进而去编程:
Matlab代码求解:
这里首先要说的是程序的结构:
其中,main函数为主函数去执行求解
Min_TD为最速下降算法实现,若要修改求解的函数,只需要在main函数中修改一下具体求解的表达式部分即可,
需要的可以下载下来进行学习。
(对于新手再提醒一下,main和Min_TD一定要放在同一个目录下才能正常执行哦!)
全套下载链接:包含文档、PPT、Matlab源代码等等:https://gitee.com/a_moment_of_dodge/optimization_theory_matlab
参考书目:
最优化理论与算法(第二版) 陈宝林 编著
请发表评论