如何理解条件平差

您所在的位置:网站首页 pdf如何选文字 如何理解条件平差

如何理解条件平差

2024-03-05 17:56| 来源: 网络整理| 查看: 265

为什么要平差,我们知道是因为我们测量的数据(在有多余观测的条件下)产生了矛盾。比如我们测一个三角形,如果只测了两个角,我们知道第三个角一定是180度减前两个角的和。但是如果我们测了三个角,但三个角加起来不等于180度,那就说明测得有误差,我们就需要用一些手段进行平差,消除这些误差 平差最主要的两种是间接平差和条件平差,它们的区别可以参考这里,间接平差使用的比条件平差多得多。简单的说条件平差就是以公理为条件构造条件方程,条件平差不含有独立参数,表示为观测量的隐函数形式,再使用最小二乘即可。但是方程的公理性质不容易找齐,而且这些公理之间必须是互相独立的,要保证列出的方程组无关,所以使用起来比较不容易列齐条件方程。而间接平差是先建立近似的模型,然后来找到真正的模型与近似模型间的改正数,使其平方和最小即可 还是以一个题来说,这是学校平差课的实验题,现在看着当年写的报告,不知道写的什么**玩意儿,只能重新思考了

如题(就看第一个问就行了) 在这里插入图片描述

我们看题中要求得 P 1 P_{1} P1​、 P 2 P_{2} P2​和 P 3 P_{3} P3​的高,必要观测只需要3条边的高差观测值,比如由 P 1 = H A + h 1 P_{1}=H_{A}+h_{1} P1​=HA​+h1​、 P 2 = H A + h 2 P_{2}=H_{A}+h_{2} P2​=HA​+h2​、 P 3 = H B + h 4 P_{3}=H_{B}+h_{4} P3​=HB​+h4​只要事实上我们测了 h 1 h_{1} h1​、 h 2 h_{2} h2​和 h 3 h_{3} h3​就行了,但是我们一共测了7条边,所以这里我们的必要观测数 t = 3 t=3 t=3,总的观测数 n = 7 n=7 n=7,所以我们多余观测数为 r = n − t = 4 r=n-t=4 r=n−t=4。在条件平差中,有多少的多余观测,就需要多少的条件方程,所以这里我们需要4个条件方程 现在我们来看图找公理。最容易想到的是,从一个点出去转一圈回来,高程不变嘛,所以根据此我们应该可以得到下面几个公式是正确的(注意,这些公式要是无关的),但是我们测的数据加起来却不是这样的 h 1 − h 2 + h 5 = 0 h 5 + h 6 − h 7 = 0 h 3 − h 6 − h 4 = 0 h 1 − h 3 + H A − H B = 0 h_{1}-h_{2}+h_{5}=0\\ h_{5}+h_{6}-h_{7}=0\\ h_{3}-h_{6}-h_{4}=0\\ h_{1}-h_{3}+H_{A}-H_{B}=0 h1​−h2​+h5​=0h5​+h6​−h7​=0h3​−h6​−h4​=0h1​−h3​+HA​−HB​=0 这里我们根据下面两个公式化简一下。这里的第一个公式就是我们上面的条件方程,只是上面是理论的,没有写上加上 A 0 A0 A0才为零;下面的式子中 L ^ \hat{L} L^表示改正后的值, V V V是改正数,也就是真实值等于测量值加上改正值 A L ^ + A 0 = 0 L ^ = L + V A\hat{L}+A^{0}=0\\ \hat{L}=L+V AL^+A0=0L^=L+V 得到了 A V + W = 0 AV+W=0 AV+W=0,此即为条件平差的函数模型, W W W是之前我们算出的闭合差(也就是走一圈回到原点的高程差,这里让改正数和等于闭合差可以看成这样,比如第一个公式,我们需要 h 1 + v 1 − ( h 2 + v 2 ) + h 5 + v 5 = 0 h_{1}+v_{1}-(h_{2}+v_{2})+h_{5}+v_{5}=0 h1​+v1​−(h2​+v2​)+h5​+v5​=0,推出 v 1 − v 2 + v 5 + ( h 1 − h 2 + h 5 ) = 0 v_{1}-v_{2}+v_{5}+(h_{1}-h_{2}+h_{5})=0 v1​−v2​+v5​+(h1​−h2​+h5​)=0,我们计算可以得到 W 1 = h 1 − h 2 + h 5 = 7 W_{1}=h_{1}-h_{2}+h_{5}=7 W1​=h1​−h2​+h5​=7,其他类似),现在我们按照这个形式列出条件方程(注意,单位是毫米mm) v 1 − v 2 + v 5 + 7 = 0 v 5 + v 6 − v 7 + 7 = 0 v 3 − v 6 − v 4 + 3 = 0 v 1 − v 3 + H A − H B − 4 = 0 v_{1}-v_{2}+v_{5}+7=0\\ v_{5}+v_{6}-v_{7}+7=0\\ v_{3}-v_{6}-v_{4}+3=0\\ v_{1}-v_{3}+H_{A}-H_{B}-4=0 v1​−v2​+v5​+7=0v5​+v6​−v7​+7=0v3​−v6​−v4​+3=0v1​−v3​+HA​−HB​−4=0 这下我们就可以开始算了,先把知道的矩阵列出来,首先是 A A A和 W W W阵,还可以把权阵 P P P列出来,根据对应路线的长度,设2km为单位权,得到 A = [ 1 − 1 0 0 1 0 0 0 0 0 0 1 1 − 1 0 0 1 − 1 0 − 1 0 1 0 − 1 0 0 0 0 ] W = [ 7 7 3 4 ] P = [ 2 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 1 ] A= \left[ \begin{matrix} 1 ; -1 ; 0 ; 0 ; 1 ; 0 ; 0\\ 0 ; 0 ; 0 ; 0 ; 1 ; 1 ; -1\\ 0 ; 0 ; 1 ; -1 ; 0 ; -1 ; 0\\ 1 ; 0 ; -1 ; 0 ; 0 ; 0 ; 0 \end{matrix} \right] W= \left[ \begin{matrix} 7\\ 7\\ 3\\ 4 \end{matrix} \right] \\P= \left[ \begin{matrix} 2 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0\\ 0 ; 2 ; 0 ; 0 ; 0 ; 0 ; 0\\ 0 ; 0 ; 1 ; 0 ; 0 ; 0 ; 0\\ 0 ; 0 ; 0 ; 1 ; 0 ; 0 ; 0\\ 0 ; 0 ; 0 ; 0 ; 2 ; 0 ; 0\\ 0 ; 0 ; 0 ; 0 ; 0 ; 2 ; 0\\ 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 1 \end{matrix} \right] A=⎣⎢⎢⎡​1001​−1000​001−1​00−10​1100​01−10​0−100​⎦⎥⎥⎤​W=⎣⎢⎢⎡​7734​⎦⎥⎥⎤​P=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡​2000000​0200000​0010000​0001000​0000200​0000020​0000001​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤​ 现在我们的目标依旧没变,使得 V T P V = m i n V^{T}PV=min VTPV=min,因为我们使用了条件方程,就像附有条件的间接平差,代价函数 V T P V V^{T}PV VTPV限制在了条件之中,所以这里要用到拉格朗日乘子法,得到的新的代价为 Φ = V T P V − 2 K T ( A V + W ) \Phi=V^{T}PV−2K^{T}(AV+W) Φ=VTPV−2KT(AV+W),同样的我们要将 Φ \Phi Φ对 V V V求导,并等于零,即 ∂ ( Φ ) ∂ ( V ) = 2 V T P − 2 K T A = 0 V = − P − 1 A T ( A P − 1 A T ) − 1 W \frac{\partial(\Phi)}{\partial(V)}=2V^{T}P−2K^{T}A=0\\ V=-P^{-1}A^{T}(AP^{-1}A^{T})^{-1}W ∂(V)∂(Φ)​=2VTP−2KTA=0V=−P−1AT(AP−1AT)−1W 推导的过程可以参考这里,现在我们就可以计算一下了,先输入数据,查看一下数据的维度

A = np.array([[1,-1,0,0,1,0,0], [0,0,0,0,1,1,-1], [0,0,1,-1,0,-1,0], [1,0,-1,0,0,0,0]]) W = np.array([7,7,3,-4]).T.reshape(4,1) P = np.array([[2,0,0,0,0,0,0], [0,2,0,0,0,0,0], [0,0,1,0,0,0,0], [0,0,0,1,0,0,0], [0,0,0,0,2,0,0], [0,0,0,0,0,2,0], [0,0,0,0,0,0,1]]) print(A.shape) print(W.shape) print(P.shape)

这里输出为

(4, 7) (4, 1) (7, 7)

好,现在开始写方程计算

Q = np.linalg.inv(P) Naa = np.dot(np.dot(A, Q), A.T) K = np.dot(np.linalg.inv(Naa), W) V = -np.dot(np.dot(Q, A.T), K) print(V)

得到结果,这里从上到下分别对应 v 1 v_{1} v1​到 v 7 v_{7} v7​

[[-0.42696629] [ 2.7752809 ] [-4.42696629] [-0.26966292] [-3.79775281] [-1.15730337] [ 2.04494382]]

现在我们改成一下 h 1 h1 h1、 h 2 h2 h2和 h 5 h5 h5,然后再算一下 h 1 − h 2 + h 5 = 0 h1-h2+h5=0 h1−h2+h5=0是否成立 h 1 ^ = h 1 + v 1 = 1.358573034 h 2 ^ = h 2 + v 2 = 2.011775281 h 5 ^ = h 5 + v h = 0.653202247 \hat{h_{1}}=h_{1}+v_{1}=1.358573034\\ \hat{h_{2}}=h_{2}+v_{2}=2.011775281\\ \hat{h_{5}}=h_{5}+v_{h}=0.653202247 h1​^​=h1​+v1​=1.358573034h2​^​=h2​+v2​=2.011775281h5​^​=h5​+vh​=0.653202247 现在计算得到 h 1 − h 2 + h 5 = 0 h1-h2+h5=0 h1−h2+h5=0,对了完毕收工。现在再把这道题的答案算了 P 1 = H A + h 1 + v 1 = 457.596573 P 2 = H A + h 2 + v 2 = 458.2497753 P 3 = H B + h 4 + v 4 = 456.5977303 P_{1}=H_{A}+h_{1}+v_{1}=457.596573\\ P_{2}=H_{A}+h_{2}+v_{2}=458.2497753\\ P_{3}=H_{B}+h_{4}+v_{4}=456.5977303 P1​=HA​+h1​+v1​=457.596573P2​=HA​+h2​+v2​=458.2497753P3​=HB​+h4​+v4​=456.5977303



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3