所花时间:235m
代码量(行):30
博客量:11
了解到的知识点:
今天呢,学习了MATLAB中的最速下降法和牛顿法,我来介绍一下这两者的区别:主要这二者都是用来解决
无约束非线性优化问题的,其中呢,涉及到的知识点有:下降速度最快的方向为负梯度方向,这里我们首先
需要进行目标函数求梯度,然后确定dk方向,然后我们可以根据curry准则求解步长因子ak,或者利用0.618
黄金分割进行求解,其中前者主要是先求梯度,然后将x点进行代入,之后对带有步长因子的方程进行求导使其
等于0,求得步长因子,如果遇到所求的步长因子不唯一,我们规定取最小正根为步长因子,之后确定新的x=x+
adk,带入梯度,求解他的模是否小于精准度,如果否,则继续重复以上的步骤,由此看来这里就会有点复杂,
繁琐,这时候我们就有了一个新的方法,牛顿法:这种方法主要是基于上一个梯度的情况下,我们进行求他的hesse
矩阵是否会影响求解的过程呢。
当然这里,我们规定如果hesse矩阵非奇异(行列式不为0),我们有Xk+1 = Xk - GK^(-1)gk,齐总GK为hesse矩阵
gk为梯度,我们对- GK^(-1)gk规定为梯度方向dk即- GK^(-1)gk = dk,两边同时乘以Gk得Gkdk = -gk这样我们
就可以求得dk步长了,因为GK hesse矩阵的逆求解比较麻烦我们才进行这种求法,求得步长之后我们就和之前最速下降法
步骤基本一致了,主要是牛顿法求解还比较快速,但是这种对于奇异矩阵是无法求解的。
然后我就简单的学习了一下matlab的编程语言,了解了矩阵以及元胞数组,其中的简单的知识,为后面的数学建模做准备,
其次,明天需要进行软件开发的继续学习了,加油慢慢来吧...