首页 > 编程知识 正文

matlab求二元函数的最小值,最速下降法matlab求最优解

时间:2023-05-06 02:10:16 阅读:137031 作者:4995

写在最前面:

这里简单地在应用层面上说明相关算法。 严密的数学知识,请参考底部的参考文献。 后期会有细分的能量,所以会先打孔。

基础知识:

通常,最速下降法是指欧氏度量意义上的最速下降法,最速下降法用于求解无约束非线性规划问题。

要解决的问题,可以编写如下。

[begin{array}{l}

begin{array}{*{20}{c}}

{}}{}

end{Array}minquadf(x )

begin{array}{*{20}{c}}

{}}{}

end{array}s.t.quad ; x in {R^n}

end{array}

() ) ) )。

其中,函数(f(x ) )具有1次连续偏导数。

(s.t.) )是subject to的缩写,即约束的含义。 集合(r(n )表示) (n )维欧式空间。

下降最快的方向是负梯度方向:

[ { d ^ { (k ) k}}=-(nablaf ) x ^ { (k ) } ) d ^ { (k ) k}}=-(nablaf ) x ^ { (k ) ) ) ) ) ) ) )。

() ) ) )。

程序框图:

对于具体的求解过程,我一般喜欢用程序框图来表达。

示例:

在此贴上用PPT上的手解开的例子。 通过手工解答的例子学习,有助于理解算法并进行编程:

解析Matlab代码:

首先,说明程序的结构。

其中,主函数作为主函数执行求解

Min_TD是最速下降算法的实现,修改求解函数只需修改main函数中具体求解公式的部分即可。

需要的东西可以下载学习。

(对于初学者,main和Min_TD必须放在同一个目录中才能正常运行哦。 )

参考文献:

优化理论与算法(第二版)陈宝林编著

优化理论Matlab

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。