条件平差程序

合集下载

水准网条件平差程序设计毕业论文

水准网条件平差程序设计毕业论文

本科生毕业设计说明书(毕业论文)题目:水准网条件平差程序设计学生姓名:房新明学号:1072143138专业:测绘工程班级:测绘10-1班指导教师:郭义水准网条件平差程序设计摘要近年来,随着我国经济的快速发展,国家大力于投资各种铁路建设和公路建设,测绘工程的运用也越来越突出。

以水准网布设的高程控制网在各类工程中随处可见。

但观测到的数据存在着各种各样的误差,这就需要我们通过简易平差或严密平差来对数据进行处理,从而使数据能够达到工程的预期精度。

本文主要研究如何解决绘图软件行业标准的网络数据处理问题。

从水准网的结构,平差基本原理、调整模型,基本方程及其解,并对法方程组成,求解,平差值的计算及其精度评定作了介绍。

和Visual studio6.0编程软件的利用,利用C语言是程序设计的相干事情。

在今后的测量工作中,可结合实际平差方案进行平差计算。

关键词:平差模型;精度评定;程序设计Leveling Network Adjustment Program DesignAbstractIn recent years, with China's rapid economic development, the state vigorously investment in all kinds of railway construction and road construction, the use of mapping project is also more and more prominent. In order to control the network level network in various engineering in everywhere. But the observed data exist various error, this needs us through simple adjustment or rigorous adjustment for data processing, so that data to achieve the desired precision engineering.This paper mainly studies how to solve the problem of mapping software industry standard network data processing. From the structure adjustment of leveling network, the basic principle, adjustment model, basic equation and its solution, and the composition of the solution of equations, adjustment calculation and precision evaluation, gross error elimination are introduced as well. And the use of Visual Studio6.0 programming software, using C programming language is related to program design. The measurement work in the future, can be combined with the actual adjustment adjustment calculation.Key words: adjustment model;the accuracy assessment;program design目录摘要 (I)Abstract .......................................................................................................................... I I 第一章绪论 (1)1.1研究背景及意义 (1)1.2国内外研究现状 (2)1.3本文研究的具体内容 (2)第二章条件平差数学模型 (3)2.1条件平差模型 (3)2.1.2测角网条件方程 (6)2.1.3测边网条件方程 (8)2.1.4以坐标为观测值的条件方程 (11)2.2精度评定 (13)2.3条件平差的计算步骤 (17)第三章水准网的设计 (18)3.1水准测量 (18)3.1.1水准网的基本概念 (18)3.2水准网的布设 (19)3.2.1国家水准网的布设 (19)3.2.2水准网的布设要求 (20)第四章C语言介绍 (21)4.1C语言的基本概念 (21)4.2C语言的介绍 (22)4.2.1C语言的特点 (22)第五章程序设计 (24)5.1水准网条件平差和测角网条件平差实例 (24)5.1.1水准网条件平差 (24)5.1.2测角网条件平差 (27)5.2程序代码 (32)参考文献 (57)附录A:外文文献 (58)附录B:中文译文 (70)致谢 (76)第一章绪论1.1研究背景及意义施工测量工作是非常基本的,重要环节。

条件平差原理

条件平差原理

§9.1 条件平差原理在条件观测平差中,以n 个观测值的平差值1ˆ⨯n L 作为未知数,列出v 个未知数的条件式,在min =PV V T 情况下,用条件极值的方法求出一组v 值,进而求出平差值。

9.1.1基础方程和它的解设某平差问题,有n 个带有相互独立的正态随机误差的观测值 ,其相应的权阵为 , 它是对角阵,改正数为 ,平差值为 。

当有r 个多余观测时,则平差值 应满足r 个平差值条件方程为:⎪⎪⎭⎪⎪⎬⎫=++++=++++=++++0ˆˆˆ0ˆˆˆ0ˆˆˆ221122112211οοοr L r L r L r b L b L b L b a L a L a L a n n n n n n (9-1) 式中i a 、i b 、…i r (i =1、2、…n )——为条件方程的系数;0a 、0b 、…0r ——为条件方程的常项数以ii i v L L +=ˆ(i =1、2、…n )代入(9-1)得条件方程(9-2)式中a w 、b w 、……r w 为条件方程的闭合差,或称为条件方程的不符值,即(9-3) 令⎪⎪⎪⎪⎪⎭⎫⎝⎛=⨯n n n n r r r r b b b a a a A212121⎪⎪⎭⎪⎪⎬⎫++⋅⋅⋅++=++⋅⋅⋅++=++++=022110221102211r L r L r L r w b L b L b L b w a L a L a L a w n n n n n b n n a ⎪⎪⎭⎪⎪⎬⎫=++⋅⋅⋅++=++⋅⋅⋅++=++⋅⋅⋅++000221122112211r n n b n n a n n w v r v r v r w v b v b v b w v a v a v a ⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⨯n n L L L L 211⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⨯n n L L L L ˆˆˆˆ2111⨯n L nn P ⨯1⨯n V 1ˆ⨯n L 1ˆ⨯n L则(9-1)及(9-2)上两式的矩阵表达式为0ˆ0=+A LA (9-4) 0=+W AV (9-5)上改正数条件方程式中V 的解不是唯一的解,根据最小二乘原理,在V 的无穷多组解中,取PV V T = 最小的一组解是唯一的,V 的这一组解,可用拉格朗日乘数法解出。

1-2条件平差原理--条件平差的计算步骤

1-2条件平差原理--条件平差的计算步骤

得: 3ka 9 0
3.步骤三
依据
K

N
W 1
aa
计算出联系数K。
解法方程得: ka 3
C
L3
L1
A
L2
B
三角形示例图
条件平差的计算步骤
4.步骤四
由式 V P 1 AT K 计算出观测值改正数,并依据式 Lˆ L V
出观测值的平差值。
计算
1 0 0 1

Lˆ3

L3
v3
731234
条件平差的计算步骤
5.步骤五
为了检查平差计算的正确性,将平差值待入平差值条件方程式 ALˆ A0 0 ,
看是否满足方程式关系。
583115 481611 731234 180 0
3
V P1AT K 0 1 0 1 3 3
0 0 1 1
3

Lˆ1 Lˆ2


L1

L2


v1 v2


583115 481611
条件平差的计算步骤
1.步骤一
根据实际问题,确定几何模型的总观测值的个数 n,必要观测值的个数 t 及
多余观测值的个数 r=n-t,进一步列出平差值条件方程 ALˆ A0 0 或改正数条 件方程 AV W 0 。
C
L3
L1
A
L2
B
三角形示例图
以确定三角形的形状为例,对三角形中的三个 内角等精度观测,得观测值如下: L1=58°31′12″,L2=48°16′08″,L3=73°12′31″,试用条 件平差法,计算三角形各内角的平差值。

第3讲(三角网条件平差

第3讲(三角网条件平差
2012-4-25 2
第三章 条件平差
第四节
二、条件方程的列立 条件方程的种类:图形条件(内角和条件)、水平条件(圆周条件)、极条件、 条件方程的种类:图形条件(内角和条件)、水平条件(圆周条件)、极条件、 )、水平条件 )、极条件 方位角条件、边长条件、坐标条件。 方位角条件、边长条件、坐标条件。 1. 图形条件(n=15 图形条件(n=15 t=8 r=7 哪7个?) 每个三角形内角平差值和等于180 每个三角形内角平差值和等于180
sin L1 sin L4 sin L7 sin L10 sin L13 sin L1 sin L4 sin L7 sin L10 sin L13 v v cot L1 1 − cot L2 2 sin L2 sin L5 sin L8 sin L11 sin L14 ρ ′′ sin L2 sin L5 sin L8 sin L11 sin L14 ρ ′′
第三章 条件平差
第四节
三角网平差的目的 求待定点平面坐标平差值, 求待定点平面坐标平差值,并进行精度 评定。 评定。 三角网件方程个数等于多余观测个数。 条件方程个数等于多余观测个数。
r=nr=n-t
测角网、测边网、边角同测网。无 关键在于确定必要观测个数 t 。 测角网、测边网、边角同测网。 论网型多么复杂, 论网型多么复杂,都是由三角形和 大地四边形相互邻接或重叠而组成。 当网中有2个或2 大地四边形相互邻接或重叠而组成。 1.当网中有2个或2个以上已知点时 t=2 t=2倍待定点数 当网中仅具备4个必要起算数据( 当网中仅具备4个必要起算数据(一点 坐标、一条边的方位、 坐标、一条边的方位、一条边的边 2.当网中少于2个已知点时 当网中少于2 长或已知两点坐标) 称为自由 长或已知两点坐标)时,称为自由 这四个数据成为必要起算数据。 网。这四个数据成为必要起算数据。 (1)测角网 t=2倍总点数t=2倍总点数-4 多余四个必要起算数据时,成为非自由 多余四个必要起算数据时,成为非自由 网。 (2)测边或边角网 t=2倍总点数t=2倍总点数-3

水准网的条件平差

水准网的条件平差

目录目录 (1)观测误差 (2)摘要: (2)关键词: (2)引言 (3)1水准测量 (4)1.1水准测量的原理 .............................................................................. •1.2水准网...................................................................................... •2条件平差 .. (6)2.1 衡量精度的指标 (6)2.2条件平差的原理 .............................................................................. •3水准网的平差 .. (14)3.1必要观测与多余观测 (14)3.2条件方程 (14)3.3条件平差法方程式 (14)3.4条件平差的精度评定 (15)3.5水准网的条件平差 (18)致谢 (20)参考文献 (21)观测误差由观测者、外界环境引起的偶然误差学生:xxx 指导教师:xxx摘要:对一系列带有偶然误差的观测值,采用合理的的方法消除它们间的不符值,得出未知量的最可靠值;以及评定测量成果的精度。

关键词:偶然误差;观测值;精度引言测量工作中,要确定地面点的空间位置,就必须进行高程测量,确定地面点的高程。

几何水准测量是高程测量中最基本、最精密的一种方法。

通过测量仪器,工具等任何手段获得的以数字形式表示的空间信息,即观测量。

然而,测量是一个有变化的过程,受仪器、观测值、外界环境因素的影响,观测的结果与客观上存在的一个能反映其真正大小的数值,即真值(理论值),有一定的差异。

可以说在测量中产生误差是不可避免的。

所以,观测值不能准确得到,在测量上称这种差异为观测误差。

根据其对观测结果影响的性质,可将误差分为系统误差和偶然误差两种。

第三章条件平差

第三章条件平差

独立三角网
自由三角网
自由测角网
附合三角网(测角)
• 例:
∆ቤተ መጻሕፍቲ ባይዱ
α ∆
当n=35、n=22、n=35+22时,其条件式个数各为多 少?有哪些类型?
图形条件(内角和条件):
B
b1
a2
c1 D c2 a1 b3 c3 a3 b2 C
A
圆周条件(水平条件):
b1
a2
c1 a1 a3 c3
c2 b2 b3
5.1.06、 5.1.07
上节内容回顾:
改正数条件式 观测值的协方差阵 法方程
AV W 0
D P Q
2 0 1 2 0
r n n n
Naa K W 0 N aa AQ AT
r r n r
改正数方程
V P A K QA K
T
1 T
wr
T
• 则条件方程可写成:
ˆA 0 AL 0
• 以及改正数条件式:
W AL A0
AV W 0
这样一来,对于一个平差问题,我们能够得到 其数学模型:
AV W 0 D P Q
2 0 1 2 0
下面要解决的问题是: 由上述的数学模型来求改正数V。
不难发现,不能求得V的唯一解!!! 解决不唯一解的办法就是附加一个约束条件---“最小二乘估计” 即满足:
极条件(边长条件):
b1 a2
c1
a1 b3 c3
c2 b2 a3
极条件(边长条件)就是指由不同路线推算得到 的同一边长的长度应相等。
三角网的基本图形 1) 单三角形 2)大地四边形
3)中点多边形。

第五章条件平差

第五章条件平差

二、法方程及改正数方程
将V T PV min的原则作用于条件方程 。
组成新函数:
V T PV-2k T AV W
式中
r 1
k k a , kb , k r 条件方程联系数
T
对新函数求导: T T 2V P 2A k ---改正数方程
dSCD ˆ f T dL SCD ˆ SCD T 2 T ˆ f D f f QL ˆL ˆ ˆL ˆ f 0 L S CD
得测边相对中误差为: 3、大地四边形测角网
2
ˆS
CD
SCD

ˆ 0 f T QL ˆL ˆ f

F ( f1 , f 2 , f m )
T T
G ( g1 , g 2 , g m ) 有
均为m维向量函数,且 f i、g i 均为x的函数, d F G dG F T dG T dF F G dx dx dx dx
注意:当N为满秩方阵时,才有 N 1唯一存在,法方程才有唯
测方向网
测角网
测角网
三角网
测边网
测边长
测边+测方向
边角网
(导线网) 测边+测角
三、三角网的布设--从高级到低级逐级布设 四、三角网平差的方法 1。严密平差 ----遵守VTPV=min原则 ; 2。近似平差
5.3 测角网条件平差
独立网(经典自由网)---只有必要起算数据d。
非独立网(附合网)---已知条件超过必要起算数据。
3 图形条件: n=12 t=2×2+4=8 r =4 1 极条件:
v2 v1 v6 v5 v11 v10 W1 0

6 第五章 条件平差

6 第五章 条件平差

三角网的基本图形构成
单三角形; 大地四边形; 中点多边形
30
§2 条件方程
二.三角网 1.独立测角网条件方程
测角网的观测值
测角网的观测值很简单,全部是角度观测值
测角网的作用
确定待定点的平面坐标
测角网的基准
位置基准2个(任意一点坐标X0Y0) 方位基准1个(任意一边方位角α0) 长度基准1个(任意一边的边长S0)
Av f 0
V PV min
T
在满足 Av f 0 的条件下,
求函数 V PV min 的V值
T
条件 极值 问题
4
§1 条件平差原理 条件平差的步骤
5
§1 条件平差原理
列条件方程 观测值权阵
最小二乘原则
求唯一解
6
§1 条件平差原理 一.基础方程及其解
r个线性条件方程:
3 ka 3 k 2 0 6 b
写成矩阵形式:
(2)定权: 100米量距为单位权:Pi=100/Si
1/Pi=Si/100 1/P1=2, 3=3, 1/P 1/P2=3, 4=5, 1/P
2 0 Q 0 0 0 3 0 0 0 0 3 0 0 0 0 5
AV f 0 PLL diag p1 p2 p4
组、解法方程: AQAT K f 0
由改正数方程求: V P A K
T 1
ˆ 求平差值: L L V
15
§1 条件平差原理 二.条件平差的求解步骤及示例
条件平差计算步骤
16
§1 条件平差原理
例:
r 1
r 1
r个改正数条件式:
a1v1 a2 v2 an vn wa 0 b1v1 b2 v2 bn vn wb 0 r1v1 r2 v2 rn vn wr 0
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

条件平差程序#include <stdio.h>#include <math.h>#include <conio.h>#define N_max 15int n,m,r,p; //n:观测值的个数,m:待定点个数,r:多余观测值个数,p:已知高程的水准点个数float Hd[6]={0};void Choose(){int i;printf("此程序能够解决闭合水准路线、附和水准路线、支水准路线的条件平差。

\n");printf("请问已知高程的水准点个数为:(不要太多喔,~ 。

~):");scanf("%d",&p);for(i=1;i<=p;i++){printf("已知点%c点的高程为:",64+i);scanf("%f",&Hd[i]);}}void Input(float Hgao[][3]) //输入各测点的高程差以及它们之间的距离{int i;for(i=1;i<=n;i++){printf("请输入h%d的数值:",i);scanf(" %f",&Hgao[i][1]);printf("请输入S%d的数值:",i);scanf("%f",&Hgao[i][2]);}}void Equation(int A[][N_max],char Equa[][50],int asd[][6],float Hgao[][3],float W[],int flag)//输入条件方程或者求某待定点的表达式{int i,j,k,ppt;if(flag==1){ppt=r;printf("请输入%d个条件方程:\n",r);printf("如:h1+h2+h3+Ha-Hb=0.请务必使等号右边等于0,输入的时候中间不要有空格!\n");getchar();for(i=1;i<=r;i++){printf("方程%d\t",i);gets(Equa[i]);}}else{ppt=m;printf("为求得待定点的高程,请分别给出每个待定点的一个与Ha或者Hb\n以及各个高程差h之间的关系式。

\n");printf("比如,Hc=Ha-h1+h2.你只需要输入Ha-h1+h2。

中间不要有空格!\n"); for(i=1;i<=m;i++){printf("待定点%d\t\t",i);gets(Equa[i]);}}for(i=1;i<=ppt;i++){for(j=1;j<=n;j++){for(k=0;Equa[i][k]!='\0';k++){if(k==0){if(Equa[i][1]==j+48){A[i][j]=1;break;}}else{if(Equa[i][k]=='+' && Equa[i][k+2]==j+48){A[i][j]=1;break;}else if(Equa[i][k]=='-' && Equa[i][k+2]==j+48){A[i][j]=-1;break;}}}}}for(i=1;i<=ppt;i++){for(j=1;j<=p;j++){for(k=0;Equa[i][k]!='\0';k++){if(k==0){if(Equa[i][1]==64+j || Equa[i][1]==96+j){asd[i][j]=1;break;}}else{if(Equa[i][k]=='+' && (Equa[i][k+2]==64+j || Equa[i][k+2]==96+j)) {asd[i][j]=1;break;}else if(Equa[i][k]=='-' && (Equa[i][k+2]==64+j || Equa[i][k+2]==96+j)) {asd[i][j]=-1;break;}}}}}if(flag==1){for(i=1;i<=r;i++){for(j=1;j<=n;j++){W[i]+=Hgao[j][1]*A[i][j];}for(k=1;k<=p;k++){W[i]+=asd[i][k]*Hd[k];}}}}void InitialQ(float Q[][N_max],float Hgao[][3]) //初始化协因数阵{int i,j;for(i=1;i<=n;i++){for(j=1;j<=n;j++){if(i==j){Q[i][j]=Hgao[i][2];}}}}void Calculate(float Q[][N_max],float Hgao[][3],float Naa[][10],int A[][N_max]) //计算Naa {int i,j,k;float bs[10][N_max]={0};for(i=1;i<=r;i++){for(j=1;j<=n;j++){for(k=1;k<=n;k++){bs[i][j]=bs[i][j]+A[i][k]*Q[k][j];}}}for(i=1;i<=r;i++){for(j=1;j<=r;j++){for(k=1;k<=n;k++){Naa[i][j]+=bs[i][k]*A[j][k];}}}}void Realv(int A[][N_max],float Q[][N_max],float k123[],float v[]) //计算改正数方程{int i,j,k;float bs[10][N_max]={0};for(i=1;i<=n;i++){for(j=1;j<=r;j++){for(k=1;k<=n;k++){bs[i][j]+=Q[i][k]*A[j][k];}}}for(i=1;i<=n;i++){for(j=1;j<=r;j++){v[i]+=bs[i][j]*k123[j];}}}void getresult(float a[][10],float k123[]) //计算k{int i,j,k,wo;float app,temp;for(i=1;i<r;i++){wo=i;for(j=i+1;j<=r;j++){if(fabs(a[j][i]) > fabs(a[wo][i]))wo=j;}if(wo!=i){for(k=i;k<=r+1;k++){temp=a[i][k];a[i][k]=a[wo][k];a[wo][k]=temp;}}for(j=i+1;j<=r;j++){app=a[j][i]/a[i][i];for(k=i;k<=r+1;k++){a[j][k]-=app*a[i][k];}}}k123[r]=a[r][r+1]/a[r][r];for(i=r-1;i>=1;i--){for(j=i+1;j<=r;j++){a[i][r+1]-=a[i][j]*k123[j];}k123[i]=a[i][r+1]/a[i][i];}}void Solution(float Naa[][10],float W[],float k[],int A[][N_max],float Q[][N_max],float v[]) {int i;if(r==1){k[1]=(-1)*W[1]/Naa[1][1];Realv(A,Q,k,v);}else{for(i=1;i<=r;i++){Naa[i][r+1]=(-1)*W[i];}getresult( Naa, k);Realv(A,Q,k,v);}}void Answer(float Hgao[][3],float v[],float W[],float Point[],int flag) //输出答案{int i,j,k,Asd[N_max][6]={0};int a123[10][N_max]={0};char che[N_max][50];printf("改正数方程的解为:\n");for(i=1;i<=n;i++){printf(" v[%d] ",i);}putchar('\n');for(i=1;i<=n;i++){printf("%f ",v[i]);}putchar('\n');printf("平差后各高差值:\n");for(i=1;i<=n;i++){printf(" h[%d] ",i);}putchar('\n');for(i=1;i<=n;i++){printf("%f ",Hgao[i][1]+v[i]);}putchar('\n');Equation( a123, che, Asd, Hgao, W, flag);printf("\n平差后各待定点的高程如下:\n待定点\t ");for(i=1;i<=m;i++)printf("%d\t ",i);printf("\n ");for(i=1;i<=m;i++){for(j=1;j<=n;j++){if(a123[i][j]!=0){Point[i]+=(Hgao[j][1]+v[j])*a123[i][j];}for(k=1;k<=p;k++){Point[i]+=Asd[i][k]*Hd[k];}printf("%f\t ",Point[i]);}}void main(){int t,flag=1;float k[10],v[N_max]={0},Point[N_max]={0};int A[10][N_max]={0},asd[N_max][6]={0};float Hgao[N_max][3],W[10]={0};float Q[N_max][N_max]={0},Naa[10][10]={0}; char Equa[N_max][50];printf("\t\t");putchar(16);putchar(16);printf(" 欢迎使用"); putchar(17);putchar(17);putchar('\n');Choose();printf("请输入观测值个数n:"); scanf("%d",&n);printf("请输入必要观测值个数t:"); scanf("%d",&t);r=n-t;printf("请输入待定点的个数m:"); scanf("%d",&m);Input(Hgao);InitialQ(Q,Hgao);Equation( A, Equa, asd, Hgao, W, flag);flag=0;Calculate(Q,Hgao,Naa,A);Solution( Naa, W, k, A, Q, v);Answer( Hgao, v, W, Point, flag);printf("\n\n程序已结束。

相关文档
最新文档