1.证明线性方程当系数矩阵A超定时,最小贰乘解为。
首先明白什么是系数矩阵超定:当方程数多于未知数个数时,也就是说对应系数矩阵的行数大于列数,这样该方程组被称为超定方程组。超定方程组在大多数情况下没有古典意义下的解,所以需要最小二乘解,也就是一种广义解。
最小二乘解是为了使残差最小。首先证明其充分性:假设为残差的解,存在解,使得,则假设,
因为,所以,这与原假设相悖,则是方程的解。
必要性:现在来直接求这个解。
原式写成矩阵形式:,假设这方程的第个分量为:
记
则这个多元函数进行求极值,不难发现:
即:
写成矩阵形式:
或者是。
2.调研最速下降法、牛顿法、高斯牛顿法和列文伯格—马夸尔特方法个有什么优缺点。除了我们举的Ceres库和g2o库,还有哪些常用的优化库。
最速下降法比较直观,算法十分简单,比较直观,但是缺点是这种算法比较贪心,容易呈现锯齿状下降,从而局部收敛速度下降。而牛顿法在最速下降的基础上引入二阶导数,这样就处理了最速下降法一阶导数为0的情况,但是二阶求导运算量不小。高斯牛顿法则对牛顿法进行了简化,避免了二阶求导,但是容易产生病态方程。列文伯格—马夸尔特算法在高斯牛顿法引入阻尼项使其不那么病态。
除了Ceres库和g2o库,还有NLopt库、slam++库等等。
3.为什么高斯牛顿的增量方程系数可能不正定?不正定有什么几何含义?为什么在这种情况下解就不稳定了?
因为增量方程系数是一个二阶求导的海森矩阵。举证属于一种向量到向量的映射关系的描述,这矩阵的不正定意味着增量方程对向量迭代方向的不确定。当一阶导数趋于零也就是最优点时,计算机在进行小值运算是容易出现精度缺失的情况,所以容易锯齿化,然后二阶运算会将这种震动状态放大,解就非常不稳定。
4.Dogleg是什么?它与高斯牛顿法以及列文伯格—马夸尔特法有何异同?
Dogleg属于Trust Region优化方法,即用置信域的方法在最速下降法和高斯牛顿法之间进行切换(将二者的搜索步长及方向转化为向量,两个向量进行叠加得到新的方向和置信域内的步长),相当于是一种加权求解。
5.阅读Ceres的教学材料以更好地掌握其用法。
读啊
6.阅读g2o自带文档,你能看懂它吗?
这基本看不懂,可以学学:https://www.cnblogs.com/gaoxiang12/p/5304272.html
7.更改曲线拟合实验中的曲线模型,并用Ceres和g2o优化...
改y.data.push_back里的函数就行