附有限制条件的间接平差
(46条消息) 如何理解附有限制条件的间接平差_欧阳罢笔的博客-CSDN博客_附有限制条件的间接平差
在间接平差中我们,我们由正规方程使平差准则V T P V = m i n,也就像线性回归中我们使用梯度下降找到了J的最小值,这些问题都可以简单看成在下面的图形中找到最低点,无论是正规方程还是梯度下降,都是力求导数趋近于零,此时对应的点就是最低点。
而在附有限制条件的间接平差中,我们可以理解为依然要找到这个图形的最低点,只不过我们必须在要某个条件中,比如图中的平面。这时平面和曲面有一条交线,我们就需要在这条交线上寻找最低点,这里也就是左下角的点。这就是添加了限制条件的间接平差
对间接平差附加了限制条件,就使它的收敛过程完全按照某一规范进行,这可以使得拟合的过程非常规范,但是会影响收敛速度。在优化中有无约束、线性约束和非线性约束三种优化,无约束最简单,只需要求导并令其等于零即可;在有等式约束时使用拉格朗日乘子法;在有不等约束时需要使用KKT条件。附有限制条件的间接平差就是在间接平差的基础上利用拉格朗日乘子法,关于拉格朗日乘子和KKT可以参考这篇博客。下面我们还是由一道简单的题说起
如题
首先我们肯定能想到,从A点出发,又回到A点,高程一定没有改变。可是这里呢,h = L 1 + L 2 + L 3 = − 0.006,就不对了吧,就要把这个跟0不符合的值平差掉才行。这里给了
三个未知数,所以未知数个数u = 3。由于只要知道了任意两个两点间的高差,就可以算出第三个两点之间的高差,所以必要观测数t = 2。这里我们发现未知数个数比必要观测数还多了,所以就必须设定s = u − t = 1个限制的条件才行,就不像间接平差中的必要观测数等于未知数个数。现在我们让
我们按照间接平差的要求列误差方程
计算一下
BTPB = np.array([[1,0,0,1],[0,1,0,1],[0,0,1,1],[1,1,1,0]]) x_ks = np.zeros((4,1)) BTPl_Wx = np.array([[0],[0],[0],[6]]) x_ks = np.dot(np.linalg.inv(BTPB), BTPl_Wx) print(x_ks)
[[ 2.]
[ 2.]
[ 2.]
[-2.]]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
2019-07-14 matlab的拟合函数polyfit()函数