导线网平差程序设计

合集下载

导线网平差及精度评定程序设计平差

导线网平差及精度评定程序设计平差

导线网平差及精度评定程序设计平差问题描述背景:导线网平差及精度评定程序设计平差是在测量和测绘工作中常用的一种技术方法。

它是通过对导线网观测数据进行处理和计算,得出导线网的平差结果,并评定其精度,以确保测量结果的准确性和可靠性。

背景:导线网平差及精度评定程序设计平差是在测量和测绘工作中常用的一种技术方法。

它是通过对导线网观测数据进行处理和计算,得出导线网的平差结果,并评定其精度,以确保测量结果的准确性和可靠性。

目的:本文档旨在介绍导线网平差及精度评定程序设计平差的背景和目的。

通过对平差方法和流程的解释,使读者了解导线网平差的基本原理和操作步骤,并了解如何评定导线网平差结果的精度。

这将有助于测量和测绘工作中平差的正确实施,并对测量数据进行科学的分析和解释。

目的:本文档旨在介绍导线网平差及精度评定程序设计平差的背景和目的。

通过对平差方法和流程的解释,使读者了解导线网平差的基本原理和操作步骤,并了解如何评定导线网平差结果的精度。

这将有助于测量和测绘工作中平差的正确实施,并对测量数据进行科学的分析和解释。

目的:本文档旨在介绍导线网平差及精度评定程序设计平差的背景和目的。

通过对平差方法和流程的解释,使读者了解导线网平差的基本原理和操作步骤,并了解如何评定导线网平差结果的精度。

这将有助于测量和测绘工作中平差的正确实施,并对测量数据进行科学的分析和解释。

目的:本文档旨在介绍导线网平差及精度评定程序设计平差的背景和目的。

通过对平差方法和流程的解释,使读者了解导线网平差的基本原理和操作步骤,并了解如何评定导线网平差结果的精度。

这将有助于测量和测绘工作中平差的正确实施,并对测量数据进行科学的分析和解释。

请注意:本文档仅供参考和研究使用,不可用于商业目的或作为法律依据。

建议在实际应用中,根据具体情况和专业要求,进行适当的调整和改进。

请注意:本文档仅供参考和研究使用,不可用于商业目的或作为法律依据。

建议在实际应用中,根据具体情况和专业要求,进行适当的调整和改进。

使用 PA2005 软件进行导线精密平差

使用 PA2005 软件进行导线精密平差

使用PA2005 软件进行导线精密平差,具体步骤如下:1 录入数据:录入已知点I25 和I24 真实坐标,并设置为起始边,其余点属性设置为00:2 平差向导,设计计算方案:3 平差计算:4 闭合差计算:5 控制网平差报告:控制网平差报告计算软件:南方平差易2005网名:计算日期:2015-11-5观测人:王宁宁记录人:王冬计算者:熊猛猛检查者:测量单位:备注:平面控制网等级:城市二级,验前单位权中误差:1.41(s)已知坐标点个数:4未知坐标点个数:13未知边数:14最大点位误差[A5] = 0.0425 (m)最小点位误差[A11] = 0.0206 (m)平均点位误差= 0.0344 (m)最大点间误差= 0.0312(m)最大边长比例误差= 4626平面网验后单位权中误差= 4.21 (s)[边长统计]总边长:1900.251(m),平均边长:135.732(m),最小边长:90.917(m),最大边长:194.692(m)[闭合差统计报告]序号:<1>:附合导线路径:[ADJ2-ADJ1-A11-A10-A9-A8-A7-A6-I64-A5-A4-A3-A2-A1-I23-I24-I25]角度闭合差=-44.00(s),限差=±10.92(s)fx=0.006(m),fy=0.068(m),fd=0.068(m)总边长[s]=1900.251(m),全长相对闭合差k=1/27966,平均边长=135.732(m)[方向观测成果表][平面点位误差表]5.3.7 坐标转换参数计算已知点录入:计算结果:可由DX、DY、R 和DK 值算得四参数为:a=DK*COSR=0.999868617;b=DK*sinR=-0.016392281;c=DX=3788038.6761196m ;d=DY=512640.380192 5588m。

导线平差计算方案设置-16页文档资料

导线平差计算方案设置-16页文档资料

导线平差计算方案设置一、导线类型:1.闭、附合导线(图1)2.无定向导线(图2)3.支导线(图3)4.特殊导线或网(见数据输入一节),该选项适用于所有的导线,但不计算闭合差。

而且该类型不需要填写未知点数目。

当点击表格最后一行时自动添加一行,计算时删除后面的空行。

5.坐标导线。

指使用全站仪直接观测坐标、高程的闭、附合导线。

6.单面单程水准测量记录计算。

指仅进行单面读数且仅进行往测而无返测的水准测量记录计算。

当数据中没有输入“中视”时可以用作五等、等外水准等的记录计算。

当输入了“中视”时可以用作中平测量等的记录计算。

说明:除“单面单程水准测量记录计算”仅用于低等级的水准测量记录计算外,其它类型选项都可以进行平面及高程的平差计算,输入了平面数据则进行平面的平差,输入了高程数据则进行高程的平差,同时输入则同时平差。

如果不需进行平面的平差,仅计算闭、附合高程路线,可以选择类型为“无定向导线”,或者选择类型为“闭附合导线”但表格中第一行及最后一行数据(均为定向点)不必输入,因为高程路线不需定向点。

二、概算1.对方向、边长进行投影改化及边长的高程归化。

2.应选择相应的坐标系统,以及Y坐标是否包含500KM。

选择了概算时,Y坐标不应包含带号。

三、平面计算设置(一)、等级:选择等级,以便根据《工程测量规范》自动进行限差等的设置。

不同的规范,或者相同的规范但不同的版本可能技术要求不同,请在软件进行自动设置后做必要的检查,如有不符,可以自行设置。

(二)、近似平差与严密平差的选择及近似平差的方位角、边长是否反算1.近似平差:程序先分配角度闭合差再分配坐标增量闭合差,即分别平差法。

2.严密平差:按最小二乘法原理平差。

3.《工程测量规范》规定:一级及以上平面控制网的计算,应采用严密平差法,二级及以下平面控制网,可根据需要采用严密或简化方法平差。

当采用简化方法平差时,应以平差后坐标反算的角度和边长作为成果。

《城市测量规范》规定:四等以下平面控制网可采用近似平差法和按近似方法评定其精度。

图根导线结点网平差软件设计及实现

图根导线结点网平差软件设计及实现
目( 1 1 G 0 0 4 1 )
Hale Waihona Puke 城市勘测
2 0 1 3年 1 2月
( 2 ) 闭合差 检核 功能 闭合 差 的检核 主要包 括 三个方 面 : 角度 闭合 差 、 坐
借助 M i c r o s o t f O f i f c e Wo r d 2 0 0 3的 O L E组 件实 现
制点测量的效率 , 相 比传统的三角测量、 G P S 静态测量
等 方式 更加 轻 松 、 迅 捷 。同 时 , 随 着城 市 的发 展 , 高 楼 大 厦越 来 越 多 , 卫 星信号 的遮挡也 影 响了 G P S — R T K 的测量 , 因此 “ R T K+ 全站仪” 的 测 量 模 式 很 好 地解 决
2 0 1 3年 1 2月 第 6期




De c . 2 01 3
Ur b a n Ge o t e c h n i c a l I n v e s t i g a t i o n& S u r v e y i n g
No . 6
文章编号 : 1 6 7 2 — 8 2 6 2 ( 2 0 l 3 ) 0 6 — 1 4 3 — 0 4
了数字 化地 形 图测 量 中 图根 控 制 网 的测 绘 工作 , 采 用
读取 观测数据、 已知点 数据 、结点信息文件 搜索起算 点到结点、结点到结点的线路 检查观测数据 、 已知 点数据等
上 述测 量模 式测 设 的 导线 控 制 网灵 活 多 变 , 为 了对 图
根导线结点网的成果计算 , 编写 了一套 自动化高 的平
中图分类号 : P 2 0 9
文 献标 识码 : B

数据结构课程设计——导线网平差程序的设计与实现

数据结构课程设计——导线网平差程序的设计与实现

数据结构课程设计——导线网平差程序的设计与实现设计二:导线网平差程序的设计与实现一、设计目的立足于《数据结构与测绘软件开发》这一课程的课堂教学及其实验课程设计,为着实提高学生基于计算机辅助的方式切实解决工程实际问题的动手能力,通过本实习,一方面,使学生深入了解课堂所学知识,另一方面,通过实践掌握测绘行业软件设计与开发的基本方法,深刻掌握矩阵运算、曲线/曲面拟合的数值解法,掌握不同类型的典型测绘软件设计方法,使得学生初步具备编写测绘软件常用算法的能力以及开发中小规模测绘专业软件的能力。

有导线网如图,观测了14条边长和16个转折角,已知测角精度10βδ''=,测边精度为1.0()()S S m mm δ=。

已知A 、B 、C 、D 、E 、F 点的坐标(无误差),如下表:表1 已知点数据点号 X(m) Y(m)A 5256.953 4520.068B 5163.752 4281.277C 3659.371 3621.210D 4119.879 3891.607E 4581.150 5345.292F 4851.5545316.953表2 角度观测值编号角度观测值(° ′ ″)编号角度观测值(° ′ ″)1 163 45 04 9 169 10 302 64 58 37 10 98 22 043 250 18 11 11 94 53 50 4 103 57 34 12 111 14 235 83 08 05 13 79 20 18三、关键问题描述3.1 未知点近似坐标计算平面控制网进行平差计算时需要计算未知点的近似坐标1.坐标计算公式1、2点的坐标已知,并观测了1-2、1-3的夹角,根据这些数据可以求出3号点坐标根据1、2两点的坐标,可以反算出1、2方向的方位角T12,3号点的坐标为++=++=)sin()cos(121313121313ααT S y y T S x x式子中S13为观测边长,α为观测角度 2.计算流程从读入的数据循环计算未知点的坐标,已计算出的坐标当做已知坐标的点处理参加下次计算,以此类推,逐步计算出未知点的坐标3.实现算法CMatrix CPlaneNetAdjust::XYJS() { CMatrix _XYJS(Pnumber,2); double T12; for(int i=0;i0&&xy[k2].Y>0) { T12=GetT12(k1,k2); } double s12=Gets12(k1,k2); double s13=Gets12(k1,k3); double T13=T12+guancejiao[i].Guancezhi; double dx=s13*cos(T13); double dy=s13*sin(T13); xy[k3].X=xy[k1].X+dx; xy[k3].Y=xy[k1].Y+dy; } for(int i=0;i<="" bdsfid="103" double="" p="" temp1="xy[i].X;" temp2="xy[i].Y;" {="">}return _XYJS;}3.2 误差方程列立1.理论分析平面控制网的误差方程都是非线性方程,必须引入参数近似值将误差方程线性化,取X的充分近似值 0X ,x ?是微小量,在按台劳公式展开时可以略去二次和二次以上的项,而只取至一次项,于是可对非线性平差值观测方程式线性化,于是有如下的式子对于观测角的改正数有对于边长观测值的改正数有2.实现算法如下:CMatrix CPlaneNetAdjust::B() { CMatrix _B1(Lnumber,Pnumber*2); double a; double b; double c; double d; double m; double n; double m1; double n1; for(int i=0;i<="">D A D A D B D B DA DB X X Y Y X X Y Y L ??arctan ??arctan 1-----=-=αα()()22??S AD A D Y Y X X -+-=kjkjk k jk jk j jk jkj jk jk jk y S Y x S Y y S X x S Y ?)(?)(?)(?)(?200200200200"??+??-??-??+=ρρρραδh jhjh h jh jh j jh jh j jh jh jh y S Y x S Y y S X x S Y ?)(?)(?)(?)(?200 200200200"??+??-??-??+=ρρρραδ)(?)("?)("?)("?)("?)("?)("?)(" )("00200200200200200200200200i jk jh h jh jhh jh jh j jh jh j jh jh k jk jkk jk jk j jk jk j jk jk i L y S X x S Y y S X x S Y y S X x S Y y S X xS Y v ---??+?-?-?-+?-?-?-=ααρρρρρρρρi k jkjkk jk jk j jk jk j jk jk i l y S Y x S X y S Y x S X v -?+?+?-?-=000000000jki i S L l -=2002000)()(j k j k jk Y Y X X S -+-=_B1.setValue(i,2*k1,0);_B1.setValue(i,2*k1+1,0);}else{_B1.setValue(i,2*k1,a);_B1.setValue(i,2*k1+1,b);}if(k2<knpnumber)< bdsfid="148" p=""></knpnumber)<> {_B1.setValue(i,2*k2,0);_B1.setValue(i,2*k2+1,0);}else{_B1.setValue(i,2*k2,-a);_B1.setValue(i,2*k2+1,-b);}}for(int i=0;i<tnumber;i++)< bdsfid="160" p=""></tnumber;i++)<>{const double p=206.265;int k1=cezhan[i];int k3=huoshi[i];int k2=qianshi[i];double dx12=xy[k2].X-xy[k1].X;double dy12=xy[k2].Y-xy[k1].Y;double dx13=xy[k3].X-xy[k1].X;double dy13=xy[k3].Y-xy[k1].Y;c=(p*dx13/Gets12(k1,k3)/Gets12(k1,k3)-p*dx12/Gets12(k1,k2)/Gets12(k1,k2));c=-c;d=-p*dy13/Gets12(k1,k3)/Gets12(k1,k3)+p*dy12/Gets12(k1,k2)/Get s12(k1,k2);d=-d;m=-p*dy13/Gets12(k1,k3)/Gets12(k1,k3);m=-m;n=p*dx13/Gets12(k1,k3)/Gets12(k1,k3);n=-n;m1=p*dy12/Gets12(k1,k2)/Gets12(k1,k2);m1=-m1;n1=-p*dx12/Gets12(k1,k2)/Gets12(k1,k2);n1=-n1;if(k1<knpnumber)< bdsfid="183" p=""></knpnumber)<> {_B1.setValue(i+Snumber,2*k1,0);_B1.setValue(i+Snumber,2*k1+1,0);}else if(k1>=knPnumber){_B1.setValue(i+Snumber,2*k1,c);_B1.setValue(i+Snumber,2*k1+1,d);}if(k2<knpnumber)< bdsfid="194" p=""></knpnumber)<> {_B1.setValue(i+Snumber,2*k2,0);_B1.setValue(i+Snumber,2*k2+1,0);}else if(k2>=knPnumber){ _B1.setValue(i+Snumber,2*k2,m1); _B1.setValue(i+Snumber,2*k2+1,n1); } if(k3=knPnumber) { _B1.setValue(i+Snumber,2*k3,m); _B1.setValue(i+Snumber,2*k3+1,n); } }CMatrix _B(Lnumber,2*(Pnumber-knPnumber)); for(int i=0;i<_B1.getRow();i++) { for(int j=2*knPnumber;j<2*Pnumber;j++) { double temp=_B1.getValue(i,j); _B.setValue(i,(j-2*knPnumber),temp); } } return _B;}3.3 法方程构建与解算1.理论分析误差方程系数构成法方程2.实现代码①计算LCMatrix CPlaneNetAdjust::L() { CMatrix _L(Lnumber,1); double l; double s; double s0; for(int i=0;i<="" bdsfid="209" const="" cout<<l<l x B V -=?0?=-Pl B x PB B TTmin =PV V T V L L +=?20σ20?σPV V T double A13; double A;int k1=cezhan[i]; int k2=huoshi[i]; int k3=qianshi[i];A12=GetT12(k1,k2); A13=GetT12(k1,k3); A=GetA(k1,k2,k3); l=A13-A12; if(l<0) { l=pi+l; }if(l>=pi) { l=l-pi; }l=l-A;//cout<<rad_dms(a12)<<" "<<rad_dms(a)<<"<="" "<<rad_dms(a13)<<"="" bdsfid="220" p=""></rad_dms(a12)<<">"<<rad_dms(l)<<endl;< bdsfid="222" p=""></rad_dms(l)<<endl;<>_L.setValue(i+Snumber,0,rad_dms(l));} return _L; }②计算权阵PCMatrix CPlaneNetAdjust::P() { CMatrix _P(Lnumber,Lnumber); for(int i=0;i<="" p="" {="">temp=temp=Cjwucha*Cjwucha/(1*sqrt(bianchang[i].Len))/( 1*sqrt(bianchang[i].Len)); _P.setValue(i,i,temp); } for(int i=Snumber;i<="">3.4 精度估计1.单位权中误差间接平差与条件平差虽采用了不同的函数模型,但它们是在相同的最小乘原理下进行的,所以两法的平差结果总是相等的,这是因为在满足条件下的V 是唯一确定的,故平差值不因方法不同而异。

闭合导线平差程序设计

闭合导线平差程序设计
进行角度闭合差调整时,将闭合差反符号平均分 配到各观测角,剩余误差(残差)分配到转折角较大的 几个观测角中;进行坐标增量闭合差调整时,采用与 对应边长成正比例的原则来计算坐标增量的改正数, 残差分配到边长较大的坐标增量中。 2闭合导线平差计算公式
角度闭合差垢龋邶理
角度闭合差(图根导线)的允许值:廊允=±,,、/i
fy=-fy+Y坐标增量 d=d+边长 endscan
thisform.1abel21.caption=dltrim(strOCx,7,3))
万方数据
32
·北京测绘·
2008年第3期
thisforrmlabel21.visible=.t. th厶form./abel22.caption---alhrim(str(fy,7,3)) th函form./abel22.visible=.t. 料计算导线全长闭合差 f=-round(sqrt弧2+:75,乞),3) x=int(d/s9 k=str(1,1)+’,/,’+alltrim(str(x)) thisform.1abel23.caption--alhrim(strOC,,7,3)) thisform./abel23.visible=.t. thisform.1abel24.caption=k thisform.1abel24.visible=.L -t计算坐标增量改正值 丘1=0 fyl=0 /f int(x)<2000
北京:科学出版社,2004
The Design of Procedure About Closed Traverse Adjustment
Abstract:This paper designs the traverse adjustment procedure on traverse approximate adjustment principle and Visual FoxPr06.0 developing platform.The procedure can accomplish the contmUed adjustment of level control and height control of closed traverse,and it gab also make result of adjustment into all kinds of file forms according to the different demands, meanwhile,it can draw the picture of the traverse. Key words:Closed Traverse;Adjustment:Procedure Design;Application

导线网平差及精度评定程序设计平差

导线网平差及精度评定程序设计平差

导线网平差及精度评定程序设计平差引言导线网平差是测量领域中的一项重要工作,它对于保证测量结果的准确性和可靠性具有重要意义。

本文将介绍导线网平差的基本原理和流程,并且设计一个用于导线网平差及精度评定的程序。

程序设计平差流程数据预处理•导入原始测量数据:从测量仪器或文件中导入导线网的原始测量数据。

数据应包括导线长度、角度观测值以及观测仪器的精度等信息。

•数据格式检查:对导入的测量数据进行检查,确保数据的完整性和准确性。

•数据转换:将角度观测值转换为弧度制,便于后续计算。

•建立导线网模型:根据导线的连接关系,建立导线网的拓扑模型。

进行平差计算•确定已知点:根据实际情况,选取导线网中已知点,作为平差计算的基准点。

•建立平差方程:根据导线网模型和已知点的观测值,建立平差方程组。

•进行平差计算:使用最小二乘法或其他适当的方法,求解平差方程组,得到未知点的坐标和精度估计。

•检查计算结果:对平差结果进行检查,确保计算的准确性。

精度评定•计算精度指标:根据计算结果和观测数据的精度,计算导线网的精度指标,如相对误差、中误差等。

•统计分析:对计算结果进行统计分析,得出导线网的整体精度评定。

•生成报告:将计算结果和精度评定结果输出到报告中,方便用户阅读和使用。

程序设计考虑用户界面设计在程序设计过程中,为了方便用户使用,需要设计一个用户友好的界面。

该界面应允许用户导入原始测量数据、选择计算参数、查看计算结果和精度评定结果等。

可以使用图形界面或命令行界面来实现。

程序性能优化导线网平差是一项计算量较大的工作,特别是在处理大规模的导线网时。

为了提高程序的运行效率,可以采用一些优化技术,如矩阵运算优化、并行计算等。

同时,还可以合理选择数据结构和算法,减少计算和存储的开销。

错误处理和异常处理在程序设计中,要考虑到可能出现的数据错误和计算异常情况,为程序添加相应的错误处理和异常处理机制。

当程序发生错误或异常时,应给出合适的提示和错误信息,方便用户及时发现和解决问题。

【免费下载】导线网平差算例

【免费下载】导线网平差算例

闭合差计 算与检核
平差
平差报告的 生成和输出
实例 1 符合导线实例
这是一条符合导线的测量数据和简图,A、B、C 和 D 是已知坐标点,2、3 和 4 是
待测的控制点。
原始测量数据如下:
测站点 角度(°′″) 距离(米)
B
A
2
3
4
C
D
导线图如下:
85.30211
254.32322
.04333
272.20202
测站 3 的观测信息
以 4 号点为测站点,以 3 号点为定向点时,照准 C 点的数据输入如下图“测站 4 的观测信息”所示:
测站 4 的观测信息
说明:①数据为空或前面已输入过时可以不输入(对向观测例外) ②在电子表格中输入数据时,所有零值可以省略不输。
以上数据输入完后,点击菜单“文件\另存为”,将输入的数据保存为平差易数据 格式文件(格式内容详见附录 A): [STATION] (测站信息) B,10,8345.870900,5216.602100 A,10,7396.252000,5530.009000 C,10,4817.605000,9341.482000 D,10,4467.524300,8404.762400 2,00 3,00 4,00
导线网平差算例
用平差易软件做控制网平差的过程
第一步:控制网数据录入 第二步:坐标推算 第三步:坐标概算 第四步:选择计算方案 第五步:闭合差计算与检核 第六步:平差计算 第七步:平差报告的生成和输出
作业流程图:
控制网数 据的录入
坐标推算
是否 概算
是 坐标概算
否 选择计算方案
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷资,配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高与中带资负料荷试下卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试,.卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试交写5、卷底重电保。要气护管设设装线备备置敷4高、调动设中电试作技资气高,术料课中并3中试、件资且包卷管中料拒含试路调试绝线验敷试卷动槽方设技作、案技术,管以术来架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内 纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

用Excel编写导线平差计算程序

用Excel编写导线平差计算程序

能 为 : 若 M 5 + G6 大 于 360 度 则 M 6 =M 5 + G 6 2 *3. 14 159 2 654, 否则 M 6= M 5+ G 6� 因E 中三角函数是以弧度为单位计算的, 所 以必须将以度分秒输入的角度转换成弧度 � 这就需要 将度分秒分开, 然后才能化成弧度 �例如 C6 单元格 为: =IF(B 6=" ", 180 , IN T(B 6))其中 B 6 为以度分秒为单 位的角度 �该语句意为: 若 B 6 是空格, 即未观测, C6 值为 180 度, 否则为观测角的整度值 �其中 180 度是 为在本站未观测的情况下预设的角度, 其目的是为在 后续的计算中把方位角传递下去, 从而保证整个程序 在逻辑上的完整性 � 程序编辑完成后,应对输入区外的所有单元格 进行再 设置, 在 " 设置单元 格格式 " 菜 单下, 选定 "保 护" 子菜单下的 " 锁定 " 和 " 隐藏 " , 并在 " 工具 " 子菜单 "保护 " 中的 " 保护工作表 " 下, 用密码进行保护, 从而 确保程序在使用过程中不被修改或破坏 � E 引入了 "宏 " 程序的概念, 其优点在于 : 当
问题提出及解决办法 在城市日常平面控制测量中,导线是大量运用 的方法之一 � 多年来, 大家在各种计算机上, 利用多 种语言编写了大量的相关测量程序,但是随着时间 的 推移, PC 1500 等便 携机及 老款电脑 处于淘汰 状 况,以往的计算机语言所编写的程序也越来越显现 出他们的缺陷和不足, 不再适应现在新的要求, 所以 用通用软件编写相关程序就显得尤为重要 � 经过努 力, 用E 编写的导线平差 计算程序已编辑完 毕, 投入 运行, 一年多的应 用表明: 它 计算方便 , 成果表 结构合理 , 达到了我们预期的 目的 , 适宜一般人员掌 握利用 � 核心问题的解决及技巧 测量平差计算传统上是以表格为基本框架进行 的, E 也沿用了这一模式, 所不同的是它每一个单 成功的地方, 是 其精髓 元格都有函数 , 公式的编辑 , 计算功能, 这样整个表格 就有 了生命力, 这正是 E

导线网平差程序设计.ppt

导线网平差程序设计.ppt
维护阶段的关键任务是,通过各种必要的维护活动使系统持久地满 足用户的需要。通常有四类维护活动:
– 改正性维护,也就是诊断和改正在使用过程中发现的软件错误
– 适应性维护,即修改软件以适应环境的变化
– 完善性维护,即根据用户的要求改进或扩充软件使它更完善
– 预防性维护,即修改软件为将来的维护活动预先做准备。
• 1.4.4 螺旋模型
– 软件风险:
• 产品交付给用户之后用户可能不满意 • 到了预定交付日期软件而可能还没开发出来 • 实际开发成本可能超出预算 • 产品完成前一些关键的开发人员可能离开 • 产品投入市场之前已经有功能相近、价格更低的软件先行投入
– 构建原型是一种能使某些类型的风险降至最低的方法。 – 螺旋模型的基本思想:使用原型及其他方法来尽量降低风险,即
非功能需求:它描述了系统展现给用户的行为和执行的操 作等。它包括产品必须遵从的标准、规范和合约;外部界 面的具体细节;性能要求;设计或实现的约束条件及质量 属性。
需求分析的数据要求
• 任何一个软件系统本质上都是信息处理系 统,系统必须处理的信息和系统应该产生 的信息在很大程度上决定了系统的面貌, 对软件设计有深远影响。
– 在需求分析阶段确定的系统逻辑模型是以后设计和实现目标系统 的基础,因此必须准确完整地体现用户的要求。
–软件开发
④总体设计
➢这个阶段必须回答的关键问题是:“概括地说, 应该如何解决这个问题?”。总体设计阶段的 第一项主要任务就是应该考虑几种可能的解决 方案。
➢结构设计的一条基本原理就是程序应该模块化, 也就是一个大程序应该由许多规模适中的模块 按合理的层次结构组织而成。总体设计阶段的 第二项主要任务就是设计软件的结构,也就是 确定程序由哪些模块组成以及模块间的关系。 通常用层次图或结构图描绘软件的结构。

(整理)导线测量平差教程—计算方案设置

(整理)导线测量平差教程—计算方案设置

计算方案的设置一、导线类型:1.闭、附合导线(图1)2.无定向导线(图2)3.支导线(图3)4.特殊导线及导线网、高程网(见数据输入一节),该选项适用于所有的导线,但不计算闭合差。

而且该类型不需要填写未知点数目。

当点击表格最后一行时自动添加一行,计算时删除后面的空行。

5.坐标导线。

指使用全站仪直接观测坐标、高程的闭、附合导线。

6.单面单程水准测量记录计算。

指仅进行单面读数且仅进行往测而无返测的水准测量记录计算。

当数据中没有输入“中视”时可以用作五等、等外水准等的记录计算。

当输入了“中视”时可以用作中平测量等的记录计算。

说明:除“单面单程水准测量记录计算”仅用于低等级的水准测量记录计算外,其它类型选项都可以进行平面及高程的平差计算,输入了平面数据则进行平面的平差,输入了高程数据则进行高程的平差,同时输入则同时平差。

如果不需进行平面的平差,仅计算闭、附合高程路线,可以选择类型为“无定向导线”,或者选择类型为“闭附合导线”但表格中第一行及最后一行数据(均为定向点)不必输入,因为高程路线不需定向点。

二、概算1.对方向、边长进行投影改化及边长的高程归化,也可以只选择其中的一项改正。

2.应选择相应的坐标系统,以及Y坐标是否包含500KM。

选择了概算时,Y坐标不应包含带号。

三、等级与限差1.在选择好导线类型后,再选择平面及高程的等级,以便根据《工程测量规范》自动填写限差等设置。

如果填写的值不符合您所使用的规范,则再修改各项值的设置。

比如现行的《公路勘测规范》的三级导线比《工程测量规范》的三级导线要求要低一些。

2.导线测量平差4.2及以前版本没有设置限差,打开4.2及以前版本时请注意重新设置限差。

四、近似平差与严密平差的选择及近似平差的方位角、边长是否反算1.近似平差:程序先分配角度闭合差再分配坐标增量闭合差,即分别平差法。

2.严密平差:按最小二乘法原理平差。

3.《工程测量规范》规定:一级及以上平面控制网的计算,应采用严密平差法,二级及以下平面控制网,可根据需要采用严密或简化方法平差。

实验三-利用matlab程序设计语言完成某工程导线网平差计算

实验三-利用matlab程序设计语言完成某工程导线网平差计算

实验三利用mat lab程序设计语言完成某工程导线网平差计算实验数据;某工程项目按城市测量规范(CJJ8-99)不设一个二级导线网作为首级平面控制网,主要技术要求为:平均边长200cm,测角中误差±8,导线全长相对闭合差<1/10000,最弱点的点位中误差不得大于5cm,经过测量得到观测数据,设角度为等精度观测值、测角中误差为山=±8秒,鞭长光电测距、测距中误差为m二± Vsmm,根据所学的‘误差理论与测量平差基础'提出一个最佳的平差方案,利用matlab完成该网的严密平差级精度评定计算;平差程序设计思路:1采用间接平差方法,12个点的坐标的平差值作为参数.利用matlab进行坐标反算,求出已知坐标方位角;根据已知图形各观测方向方位角;2计算各待定点的近似坐标,然后反算出近似方位角,近似边. 计算各边坐标方位角改正数系数;3确定角和边的权,角度权Pj=1 ;边长权Ps=100/S;4计算角度和边长的误差方程系数和常数项,列出误差方程系数矩阵 B,算出Nbb=B’ PB,W=B’ Pl,参数改正数 x=inv(Nbb)*W;角度和边长改正数V=Bx-l; 6建立法方程和解算x,计算坐标平差值,精度计算;程序代码以及说明:s10=;s20=;s30=;s40=;s50=;s60=;s70=;s80=;s90=;s100=;s110=;s120=;s130=;s140=; %已知点间距离Xa=;Ya二;Xb=;Yb=;Xc=;Yc=;Xd=;Yd=;Xe=;Ye=;Xf=;Yf=; %已知点坐标值a0=atand((Yb-Ya)/(Xb-Xa))+180;d0=atand((Yd-Yc)/(Xd-Xc));f0=atand((Yf-Ye)/(Xf-Xe))+360; %坐标反算方位角a1=a0+(163+45/60+4/3600)-180a2=a1+(64+58/60+37/3600)-180;a3=a2+(250+18/60+11/3600)-180;a4=a3+(103+57/60+34/3600)-180;a5=d0+(83+8/60+5/3600)+180;a6=a5+(258+54/60+18/3600)-180-360;a7=a6+(249+13/60+17/3600)-180;a8=a7+(207+32/60+34/3600)-180;a9=a8+(169+10/60+30/3600)-180;a10=a9+(98+22/60+4/3600)-180;a12=f0+(111+14/60+23/3600)-180;a13=a12+(79+20/60+18/3600)-180;a14=a13+(268+6/60+4/3600)-180;a15=a14+(180+41/60+18/3600)-180; %推算个点方位角 aa=[a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a12 a13 a14 a15]'X20=Xb+s10*cosd(a1);X30=X20+s20*cosd(a2);X40=X30+s30*cosd(a3);X50a=X40+s40*cosd(a4);X60=Xd+s50*cosd(a5);X70=X60+s60*cosd(a6);X80=X70+s70*cosd(a7);X90=X80+s80*cosd(a8);X100=X90+s90*cosd(a9);X50c=X100+s100*cosd(a10);X130二Xf+s110*cosd(a12);X140=X130+s120*cosd(a13);X150=X140+s130*cosd(a14);X50e=X150+s140*cosd(a15); %各点横坐标近似值X0=[X20 X30 X40 X60 X70 X80 X90 X100 X130 X140 X150 X50a X50c X50e]'Y20=Yb+s10*sind(a1);Y30=Y20+s20*sind(a2);Y40=Y30+s30*sind(a3);Y50a=Y40+s40*sind(a4);Y60=Yd+s50*sind(a5);Y70=Y60+s60*sind(a6);Y80=Y70+s70*sind(a7);Y90=Y80+s80*sind(a8);Y100=Y90+s90*sind(a9);Y50c=Y100+s100*sind(a10);Y130=Yf+s110*sind(a12);Y140=Y130+s120*sind(a13);Y150=Y140+s130*sind(a14);Y50e=Y150+s140*sind(a15); %个点从坐标近似值Y0=[Y20 Y30 Y40 Y60 Y70 Y80 Y90 Y100 Y130 Y140 Y150 Y50a Y50c Y50e]'P=[X0 Y0];X50=(X50a+X50c+X50e)/3Y50=(Y50a+Y50c+Y50e)/3s4二sqrt((Y40-Y50)"2+(X40-X50厂2);si二sqrt((Y100-Y50厂2+(X100-X50厂2);s14二sqrt((Y150-Y50)"2+(X150-X50厂2);A1=[cosd(a1) cosd(a2) cosd(a3) cosd(a4) cos(a5) cosd(a6) cosd(a7) cosd(a8) cosd(a9) cosd(a10) cosd(a12) cosd(a13) cosd(a14) cosd(a15)]';B11=[sind(a1) sind(a2) sind(a3) sind(a4) sin(a5) sind(a6) sind(a7) sind(a8) sind(a9) sind(a10) sind(a12) sind(a13) sind(a14) sind(a15)]';s=blkdiag(s10,s20,s30,s4,s50,s60,s70,s80,s90,s10',s110,s120,s130,s14);a=*inv(s)*B11b=*inv(s)*A1ab4=atand((Y50-Y40)/(X50-X40))+180;ab10=atand((Y50-Y100)/(X50-X100));ab14=atand((Y50-Y150)/(X50-X150))+360;m4=ab4-a3+180;m10=ab10-a9+180;m11=ab4-ab10;m15=ab14-a14+180;m16=ab10-ab14+360;m04=103+57/60+34/3600;m010=98+22/60+4/3600;m011=94+53/60+50/3600;m015=180+41/60+18/3600;m016=ab10-ab14+360;l=[0 0 0 m4-103-57/60-34/3600 0 0 0 0 0 m10-98-22/60-4/3600 m11-94-53/60-50/3600 0 0 0 m15T80-41/60T8/3600m16-103-23/60-8/3600 0 0 0 s40-s4 0 0 0 0 0 s100-s1 0 0 0 s140-s14]';e1=(abs(X20-Xb))/s10;e2=(abs(X30-X20))/s20;e3=(abs(X40-X30))/s30;e4=(abs(X50-X40))/s4;e5=(abs(X60-Xd))/s50;e6= (abs(X70-X60))/s60;e7=(abs(X80-X70))/s70;e8=(abs(X90-X80))/s80;e9=(abs(X100-X90))/s90;e10=(abs(X50-X100))/s1;e11=(abs(X130-Xf))/s110;e12=(abs(X140-X130 ))/s120;e13=(abs(X150-X140))/s130;e14=(abs(X50-X150))/s 14;e=[e1 e2 e3 e4 e5 e6 e7 e8 e9 e10 e11 e12 e13 e14]' m1=(abs(Y20-Yb))/s10;m2=(abs(Y30-Y20))/s20;m3=(abs(Y40-Y30))/s30;m4=(abs(Y50-Y40))/s4;m5=(abs(Y60-Yd))/s50;m6= (abs(Y70-Y60))/s60;m7=(abs(Y80-Y70))/s70;m8=(abs(Y90-Y80))/s80;m9=(abs(Y100-Y90))/s90;m10=(abs(Y50-Y100))/s1;m11=(abs(Y130-Yf))/s110;m12=(abs(Y140-Y130 ))/s120;m13=(abs(Y150-Y140))/s130;m14=(abs(Y50-Y150))/s 14;m=[m1 m2 m3 m4 m5 m6 m7 m8 m9 m10 m11 m12 m13 m14]' % 以上为求得误差方程系数B=[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0%系数矩阵B0 0 ]P=blkdiag(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,100/s10,100/s 20,100/s30,100/s40,100/s50,100/s60,100/s70,100/s80,100/ s90,100/s100,100/s110,100/s120,100/s130,100/s140); %定义权矩阵Nbb二B'*P*BW=B'*P*l;x=inv(Nbb)*WV=B*x-l;inv(Nbb);Y=V'*P*V;O二sqrt(Y/6)*3600 %精度评定计算结果:平差值坐标X:+003 *Qx1= Qy1= Qx2= Qy2= ……Qx15= Qy15=。

导线平差的程序设计与实现-毕业论文

导线平差的程序设计与实现-毕业论文

山西水利职业技术学院实习报告题目导线平差的程序设计与实现姓名:孟国娇学号:专业:工程造价1139报告提交日期:山西水利职业技术学院设计任务书学院:土建工程系专业年级:工程造价2011 学生姓名:孟国娇任务下达日期:2012年 2 月20日毕业设计日期:2012年3月12日至2012年6月13日毕业设计题目:导线平差的程序设计与实现毕业设计主要内容和要求:主要内容:(1)测量平差的研究背景及意义;(2)测量平差概述;(3)Excel在单一附和导线近似平差中的应用;(4)Excel在单一附和导线条件平差中的应用;(5)导线网的间接平差理论;(6)导线网平差的结构和函数设计与实现。

设计要求:(1)毕业设计要充分发挥主观能动性,积极思考,主动实践;(2)毕业设计撰写结构要严整,叙述清楚,理论分析适当,数据可靠,研究方法合理,结论正确,论文格式符合规范;(3)研究成果要有一定的实用或参考价值。

院长签字:指导教师签字:摘要随着测绘科学技术的不断发展,在测量数据的处理中产生很多种平差的方法。

在本文中,导线网的近似平差和条件平差的一些简单计算可通过Excel表编制计算公式和编程实现,我们只需在已编好的Excel表中稍作调整和公式修改,并输入已知数据,最终就可得到所需的平差结果,这为测量的内业工作提供了服务和参考;导线网的间接平差程序是利用C++编程实现的,我们需要将导线网的已知数据信息按照特定的规则输入到dat文本中,利用C++程序读取文本数据信息后,对其进行一系列的平差计算,最终获得平差后的结果,并以dat文本的形式输出且保存,这样就可为测量工作提供一定的参考,还能为测绘数据的管理带来帮助。

关键词:导线平差;Excel;C++;程序目录1绪论...............................................................................................................................................1.1研究背景及意义.................................................................................................................1.2国内外研究状况.................................................................................................................1.3本文研究的具体内容.........................................................................................................1.4平差程序相关说明.............................................................................................................1.4.1平差程序计算特点..................................................................................................1.4.2平差程序的基本要求..............................................................................................1.4.3平差程序的结构化设计..........................................................................................1.4.4平差程序模块化......................................................................................................1.4.5平差程序的数据结构.............................................................................................. 2测量平差.......................................................................................................................................2.1测量平差概述.....................................................................................................................2.1.1测量平差..................................................................................................................2.1.2测量平差的函数模型..............................................................................................2.2最小二乘原理.....................................................................................................................2.3条件平差原理.....................................................................................................................2.3.1条件平差的数学模型..............................................................................................2.3.2条件平差原理..........................................................................................................2.3.3条件平差的计算步骤..............................................................................................2.3.4精度评定..................................................................................................................2.4间接平差原理.....................................................................................................................2.4.1间接平差的数学模型..............................................................................................2.4.2间接平差的的一般原理..........................................................................................2.4.3按间接平差法求平差值的计算步骤......................................................................2.4.4精度评定.................................................................................................................. 3Excel在导线平差中的应用.........................................................................................................3.1 Excel在平差中的应用基础...............................................................................................3.1.1 引言.........................................................................................................................3.1.2Excel在平差中的基本应用操作函数...................................................................3.1.3 核心问题的解决及技巧.........................................................................................3.1.4 三角函数在Excel中的处理方法..........................................................................3.1.5 小结.........................................................................................................................3.2Excel在附和导线近似平差中的应用..............................................................................3.2.1 单一附和导线近似平差.........................................................................................3.2.2单一附和导线近似平差实例..................................................................................3.3 Excel在导线网条件平差中的应用...................................................................................3.3.1单一附合导线条件平差..........................................................................................3.3.2边角权的确定及单位权中误差..............................................................................3.3.3单一附和导线条件平差实例.................................................................................. 4导线网的间接平差程序设计与实现 ...........................................................................................4.1矩阵的相关函数.................................................................................................................4.1.1矩阵相乘..................................................................................................................4.1.2矩阵转置..................................................................................................................4.1.3矩阵求逆..................................................................................................................4.1.4矩阵输出..................................................................................................................4.1.5设置实数输出精度..................................................................................................4.2平差中的重要函数.............................................................................................................4.2.1角度制与弧度制的相互转化..................................................................................4.2.2测量正反算函数......................................................................................................4.2.3近似坐标计算..........................................................................................................4.3导线网的平差理论.............................................................................................................4.3.1平差概述..................................................................................................................4.3.2边角网的最小二乘平差..........................................................................................4.4间接平差的结构与函数设计.............................................................................................4.4.1间接平差..................................................................................................................4.4.2结构与函数设计......................................................................................................4.5导线网平差的程序应用.....................................................................................................4.5.1平面网数据的输入格式..........................................................................................4.5.2导线网平差程序应用实例...................................................................................... 5结论与展望 ...................................................................................................................................5.1Excel在导线平差中的应用..............................................................................................5.1.1Excel在导线近似平差中的应用...........................................................................5.1.2Excel在导线网条件平差中的应用.......................................................................5.2C++在导线平差中的应用 .................................................................................................5.3测量平差的展望................................................................................................................ 参考文献........................................................................................................................................... 致谢. (54)1绪论1.1研究背景及意义测量工作是工程施工非常基础、重要的环节,对工程设计、工程施工、工程的验收都发挥着指导性、不可替代的作用。

导线网条件平差计算

导线网条件平差计算

感谢您的观看
汇报人:XX
实例总结和经验教训
实例分析:介绍 具体的导线网条 件平差计算实例, 包括数据来源、 计算过程和结果
分析
总结:对实例分 析的结果进行总 结,提炼出导线 网条件平差计算 的关键技术和方

经验教训:分享 在实例分析过程 中遇到的问题和 解决方法,以及 可以改进和优化
的地方
实例应用:探讨 实例分析结果在 实际工程中的应 用,以及如何根 据实际情况调整 和改进计算方法
精度分析和误差处理
精度分析:通过对比实际测量数据和计算结果,评估平差计算的准确性和可靠性。 误差处理:对测量过程中产生的误差进行修正,以提高平差计算的精度。 实例分析:通过具体实例展示精度分析和误差处理在导线网条件平差计算中的应用。 注意事项:强调在进行精度分析和误差处理时应注意的事项,以确保计算结果的准确性。
软件测试和性能评估
测试目的:验证软件是否符合 设计要求和功能需求
测试方法:单元测试、集成测 试、系统测试和验收测试
性能评估指标:处理速度、精 度、可靠性、可扩展性和可维 护性
评估工具:负载测试、压力测 试和性能分析工具
导线网条件平差 计算的未来发展
导线网条件平差计算技术的发展趋势和方向
智能化:随着人 工智能技术的不 断发展,导线网 条件平差计算将 更加智能化,能 够自动识别和解
决各种问题。
自动化:未来导 线网条件平差计 算将更加自动化, 减少人工干预, 提高计算效率和
精度。
精细化:随着测量 技术和数据处理技 术的发展,导线网 条件平差计算将更 加精细化,能够对 各种复杂情况进行
精确处理。
集成化:未来导 线网条件平差计 算将与其他测量 技术进行集成, 形成更加完整的 测量系统,提高 测量精度和效率。

附合导线平差程序设计报告

附合导线平差程序设计报告

《测量平差程序》课程设计(报告)学生姓名:罗正材学号:1108030128专业:2011级测绘工程指导教师:肖东升目录一、前言 (3)二、平差程序的基本要求 (3)三、平差程序模块化 (3)图1四、平差中的重要函数(一)、角度制与弧度制的相互转化C/C++程序设计中,关于角度的计算以弧度制为单位,而在测量以及具体工作中我们通常习惯以角度制为单位。

这样,在数据处理中,经常需要在角度制与弧度制之间进行相互转化。

这里,我们利用C/C++数学函数库math.h中的相关函数完成这两种功能。

这里,我们使用double类型数据表示角度制数和弧度制数。

例如:123度44分58.445秒,用double类型表示为123.4458445,其中分、秒根据小数位确定。

在角度制与弧度制的转化中,涉及如下图2所示的两个环节。

度.分秒度弧度图21.角度化弧度函数double d_h(double angle) //角度化弧度{ double a,b;angle=modf(angle,&a);//a为提取的度值(int类型),angle为分秒值(小数)angle=modf(angle*100.0,&b); // b为提取的分值(int类型),angle为秒值(小数)return (a+b/60.0+angle/36.0)*(PI+3.0E-16)/180.0;}2.弧度化角度函数double h_d(double angle) //弧度化角度{ double a,b,c;angle=modf(angle*180.0/(PI-3.0E-16),&a);angle=modf(angle*60.0,&b);angle=modf(angle*60.0,&c);return a+b*0.01+c*0.0001+angle*0.0001;}其中,函数modf(angle,&a)为C语言数学库函数,返回值有两个,以引用类型定义的a 返回angle的整数部分,函数直接返回值为angle的小数部分。

导线网平差程序源代码

导线网平差程序源代码

程序源代码C语言程序:#include <windows.h>#include <stdarg.h>#include <stdio.h>#include <stdlib.h>#include<math.h>#define PI 3.1415926535898#define p 206264.806247#define MAX 50//矩阵的乘法运算MatrixMutiply(double Matrix1[MAX][MAX],double Matrix2[MAX][MAX],double MatrixResult[MAX][MAX],int m1,int m2,int m3){int i,j,k;double Sum;for(i=0;i<m1;i++){for(j=0;j<m3;j++){/*按照矩阵乘法的规则计算结果矩阵的i*j元素*/Sum=0;for(k=0;k<m2;k++)Sum+=Matrix1[i][k]*Matrix2[k][j];MatrixResult[i][j]=Sum;}}//return MatrixResult;}//矩阵的转置运算MatrixT(double Matrix1[MAX][MAX],double T[MAX][MAX],int m1,int m2) {//m1,m2分别是矩阵的行列数int i,j;//double T[50][50];for(i=0;i<m1;i++){for(j=0;j<m2;j++){T[j][i]=Matrix1[i][j];}}//return T;}//矩阵的逆运算void swap(double a,double b){double c=a;a=b;b=c;}double DinV(double A[50][50],int n) //n代表阶数{int i,j,k;double d;int JS[50],IS[50];for (k=0;k<n;k++){d=0;for (i=k;i<n;i++)for (j=k;j<n;j++){if (fabs(A[i][j])>d){d=fabs(A[i][j]);IS[k]=i;JS[k]=j;}}if (d+1.0==1.0)return 0;if (IS[k]!=k)for (j=0;j<n;j++)swap(A[k][j],A[IS[k]][j]);if (JS[k]!=k)for (i=0;i<n;i++)swap(A[i][k],A[i][JS[k]]);A[k][k]=1/A[k][k];for (j=0;j<n;j++)if (j!=k) A[k][j]=A[k][j]*A[k][k];for (i=0;i<n;i++)if (i!=k)for (j=0;j<n;j++)if (j!=k) A[i][j]=A[i][j]-A[i][k]*A[k][j];for (i=0;i<n;i++)if (i!=k) A[i][k]=-A[i][k]*A[k][k]; }for (k=n-1;k>=0;k--){for (j=0;j<n;j++)if (JS[k]!=k) swap(A[k][j],A[JS[k]][j]);for (i=0;i<n;i++)if (IS[k]!=k)swap(A[i][k],A[i][IS[k]]);}}//将度分秒连写的角度化为弧度值double jd_hd(double D,double F,double M){//int dd=(int)((int)B/10000); //提取度值//int ff=(int)(((int)B-dd*10000)/100); //提取分值//double mm=B-dd*10000-ff*100;//提取秒值double B;B=(D*3600.0+F*60.0+M)/p;//角度化弧度return B;}main(){double D,F,M,sigma_beta=2.0,sigma_s;//scanf("%f%f%f",&D,&F,&M);//printf("%f",jd_hd(D,F,M));doublebeta[50],alf[50],alfo[50],s[50],so[50],Xo[50],Yo[50],B[50][50]={0.0},L[50][50],P[50][50 ]={0.0},c[50][50]={0.0},wx=0.0;//此处为Xo Yo,B矩阵赋初值为零beta代表夹角,alf方位角,alfo方位角近似值,s距离观测值,so距离近似值//Xo Yo坐标近似值,B[50][50]误差矩阵,L[50]为L矩阵,P[50][50]为权阵,c[1][30]代表限制条件的系数阵,w代表限制条件常数项doubleNbb[50][50],Ncc[50][50],W[50][50],Ks,xgu[50][50],Xgu[30][1],Ygu[30][1],V[50][50],sigma_gu,Q[50][50],sigma_xy[50][50];alf[0]=PI;alfo[0]=PI;int i,j,m1,m2,m3;//将测量数据导入,并存入相应数组FILE *fp3;char strline[100]; //读取文件每行的bufferint du[100],fen[100],miao[100];double bian[100];i=0,j=1;if((fp3=fopen("D:\\111\\测量数据.txt","r"))==NULL) //文件位置和文件名{printf("文件不存在!");return 0;}while(!feof(fp3)) //判断文件是否已到末尾{fgets(strline,100,fp3); //读取一行sscanf(strline,"%d %d %d %lf",&du[i],&fen[i],&miao[i],&bian[i]); //从文件读取到的一行数据分别存放在两个数组中i++;}fclose(fp3);while(1){//printf("\n%d\t%d\t%d\t%lf",du[j],fen[j],miao[j],bian[j]);beta[j-1]=jd_hd(du[j],fen[j],miao[j]);s[j-1]=bian[j];j++;if(j>=i){break;}}Xo[0]=5000.0;Yo[0]=5000.0;Xo[15]=5000.0;Yo[15]=5000.0;so[0]=s[0];//用来求未知点坐标近似值for(i=1;i<15;i++){alf[i]=alf[i-1]+beta[i]-PI;if(alf[i]>=(2*PI)){alf[i]=alf[i]-2*PI;}Xo[i]=Xo[i-1]+s[i-1]*cos(alf[i-1]);Yo[i]=Yo[i-1]+s[i-1]*sin(alf[i-1]);//printf("X=%f\t",Xo[i]);}for(i=1;i<15;i++){//求近似距离so[i]=sqrt((Yo[i+1]-Yo[i])*(Yo[i+1]-Yo[i])+(Xo[i+1]-Xo[i])*(Xo[i+1]-Xo[i]));//求近似方位角,分象限进行讨论if((Yo[i+1]-Yo[i])>0&&(Xo[i+1]-Xo[i])>0)//第一象限{alfo[i]=atan((Yo[i+1]-Yo[i])/(Xo[i+1]-Xo[i]));}else if((Yo[i+1]-Yo[i])>0&&(Xo[i+1]-Xo[i])<0)//第二象限{alfo[i]=atan((Yo[i+1]-Yo[i])/(Xo[i+1]-Xo[i]))+PI;}else if((Yo[i+1]-Yo[i])<0&&(Xo[i+1]-Xo[i])>0)//第三象限{alfo[i]=atan((Yo[i+1]-Yo[i])/(Xo[i+1]-Xo[i]))+2*PI;}else //((Yo[i]-Yo[i-1])<0&&(Xo[i]-Xo[i-1])<0)//第四象限{alfo[i]=atan((Yo[i+1]-Yo[i])/(Xo[i+1]-Xo[i]))+PI;}//printf("alf=%f\t",alfo[i]);//printf("so=%f\t",so[i]);}//求B矩阵//将第一个角度的系数单独算出j=0;//B[0][j]=0.0;((Yo[14]-Yo[0])/(so[14]*so[14]))*p/1000.0;//B[0][j+1]=0.0;-1*((Xo[14]-Xo[0])/(so[14]*so[14]))*p/1000.0;B[0][j]=-1*(Yo[1]-Yo[0])/(so[0]*so[0])*p/1000.0;//B[0][j+1]=(Xo[1]-Xo[0])/(so[0]*so[0])*p/1000.0;B[0][26]=((Yo[14]-Yo[0])/(so[14]*so[14]))*p/1000.0;B[0][27]=-1*(Xo[14]-Xo[0])/(so[14]*so[14])*p/1000.0;//将第二个角度的系数单独算出B[1][j]=((Yo[2]-Yo[1])/(so[1]*so[1])-(Yo[0]-Yo[1])/(so[0]*so[0]))*p/1000.0;//B[1][j+1]=-1*((Xo[2]-Xo[1])/(so[1]*so[1])-(Xo[0]-Xo[1])/(so[0]*so[0]))*p/1000.0 ;B[1][j+2]=-1*((Yo[2]-Yo[1])/(so[1]*so[1]))*p/1000.0;B[1][j+3]=((Xo[2]-Xo[1])/(so[1]*so[1]))*p/1000.0;//求其他角度改正的系数for(i=2;i<15;i++){if(i<14){B[i][j]=((Yo[i-1]-Yo[i])/(so[i-1]*so[i-1]))*p/1000.0;B[i][j+1]=-1*((Xo[i-1]-Xo[i])/(so[i-1]*so[i-1]))*p/1000.0;B[i][j+2]=((Yo[i+1]-Yo[i])/(so[i]*so[i])-(Yo[i-1]-Yo[i])/(so[i-1]*so[i-1]))*p/1000.0;B[i][j+3]=-1*((Xo[i+1]-Xo[i])/(so[i]*so[i])-(Xo[i-1]-Xo[i])/(so[i-1]*so[i-1]))*p/1000. 0;B[i][j+4]=-1*((Yo[i+1]-Yo[i])/(so[i]*so[i]))*p/1000.0;B[i][j+5]=(Xo[i+1]-Xo[i])/(so[i]*so[i])*p/1000.0;}else{B[i][j]=(Yo[i-1]-Yo[i])/(so[i-1]*so[i-1])*p/1000.0;B[i][j+1]=-1*((Xo[i-1]-Xo[i])/(so[i-1]*so[i-1]))*p/1000.0;B[i][j+2]=((Yo[i+1]-Yo[i])/(so[i]*so[i])-(Yo[i-1]-Yo[i])/(so[i-1]*so[i-1]))*p/1000.0;B[i][j+3]=-1*((Xo[i+1]-Xo[i])/(so[i]*so[i])-(Xo[i-1]-Xo[i])/(so[i-1]*so[i-1]))*p/1000. 0;}j=j+2;}B[2][1]=0.0;//求边长改正的系数j=0;//将第一个边长的系数单独算出B[i][j]=(Xo[1]-Xo[0])/so[0];//B[i][j+1]=(Yo[1]-Yo[0])/so[0]; //(Yo[1]-Yo[0])/(so[0]*so[0]); i=i+1;for(i;i<30;i++){if(i<29){B[i][j]=-1*(Xo[i-14]-Xo[i-15])/so[i-15];B[i][j+1]=-1*(Yo[i-14]-Yo[i-15])/so[i-15];B[i][j+2]=-1*B[i][j];B[i][j+3]=-1*B[i][j+1];}else{B[i][j]=-1*(Xo[i-14]-Xo[i-15])/so[i-15];B[i][j+1]=-1*(Yo[i-14]-Yo[i-15])/so[i-15];}j=j+2;}B[16][1]=0.0;for(j=1;j<27;j++){for(i=0;i<30;i++){B[i][j]=B[i][j+1];}}//求L矩阵L[0][0]=(beta[0]-(alfo[0]-alfo[14]+PI))*p;for(i=1;i<30;i++){if(i<15){L[i][0]=(beta[i]-(alfo[i]-alfo[i-1]+PI))*p;if(L[i][0]>PI*p){L[i][0]=(L[i][0]-2*PI*p);}L[i][0]=L[i][0];}else{L[i][0]=(s[i-15]-so[i-15])*1000.0;}}//求权阵Pfor(i=0;i<30;i++){if(i<15){P[i][i]=1;}else{sigma_s=5+10*0.000001*s[i-15]*1000; //单位为(''/mm)的平方P[i][i]=sigma_beta*sigma_beta/(sigma_s*sigma_s);}}double Tb[50][50],Tc[50][50],MatrixResult[50][50],TV[50][50];doubletemp1[MAX][MAX],temp2[MAX][MAX],temp3[MAX][MAX],temp4[MAX][MAX],temp5[MAX][MAX];//计算Nbb矩阵,W矩阵m1=30;m2=28;MatrixT(B,Tb,m1,m2);m3=30;MatrixMutiply(Tb,P,temp1,m2,m1,m3);m3=m2;m1=m2;m2=30;MatrixMutiply(temp1,B,Nbb,m1,m2,m3);m1=27;m2=30;m3=1;MatrixMutiply(temp1,L,W,m1,m2,m3);//矩阵输出D:\\111\\导线网输出数据3027.txt文本FILE *fp;fp=fopen("D:\\111\\导线网输出数据3027.txt","w");if(fp!=NULL){fprintf(fp,"距离近似值so(单位:m):\t");fprintf(fp,"方位角近似值alfo(单位:弧度):\n");for(i=0;i<15;i++){fprintf(fp,"%4.12lf\t",so[i]);fprintf(fp,"%.12lf\n",alfo[i]);}fprintf(fp,"Xo(单位:mm):\t");fprintf(fp,"Yo(单位:mm):");fprintf(fp,"\n");for(i=0;i<15;i++){fprintf(fp,"%.6lf\t",Xo[i]);fprintf(fp,"%.6lf",Yo[i]);fprintf(fp,"\n");}fprintf(fp,"B矩阵:");fprintf(fp,"\n");for(i=0;i<30;i++){for(j=0;j<27;j++){fprintf(fp,"%.6f ",B[i][j]);}fprintf(fp,"\n");}fprintf(fp,"L矩阵(单位:秒和mm):"); fprintf(fp,"\n");for(i=0;i<30;i++){fprintf(fp,"%.6lf ",L[i][0]);fprintf(fp,"\n");}fprintf(fp,"P矩阵:");fprintf(fp,"\n");for(i=0;i<30;i++){for(j=0;j<30;j++){fprintf(fp,"%.6f ",P[i][j]);}fprintf(fp,"\n");}fprintf(fp,"Nbb矩阵:");fprintf(fp,"\n");for(i=0;i<27;i++){for(j=0;j<27;j++){fprintf(fp,"%.12f ",Nbb[i][j]);}fprintf(fp,"\n");}fclose(fp); //写入完毕,关闭文件}DinV(Nbb,27); //MatrixResult=c * Nbb的逆,此时Nbb已经变成Nbb的逆//计算x^m1=27;m2=27;m3=1;MatrixMutiply(Nbb,W,xgu,m1,m2,m3);double xgu28[50][50],sigma_xy28[50][50];xgu28[0][0]=xgu[0][0];for(i=1;i<27;i++){xgu28[i+1][0]=xgu[i][0];}xgu28[1][0]=0.0;//计算X^(即Xgu估值)Xgu[0][0]=5000.0;Ygu[0][0]=5000.0;for(i=0;i<14;i++){Xgu[i+1][0]=Xo[i+1]+xgu28[2*i][0]/1000.0;Ygu[i+1][0]=Yo[i+1]+xgu28[2*i+1][0]/1000.0; }//精度评定m1=30;m2=27;m3=1;MatrixMutiply(B,xgu,temp5,m1,m2,m3);for(i=0;i<30;i++){if(i<15){V[i][0]=(temp5[i][0]-L[i][0]);}else{V[i][0]=(temp5[i][0]-L[i][0]);}}m1=30;m2=1;MatrixT(V,TV,m1,m2);m1=1;m2=30;m3=30;MatrixMutiply(TV,P,temp4,m1,m2,m3);m1=1;m2=30;m3=1;MatrixMutiply(temp4,V,temp4,m1,m2,m3);sigma_gu=sqrt(temp4[0][0]/3); //单位权中误差double vv=0.0;for (i=0;i<15;i++){for (j=0;j<1;j++){vv=vv+V[i][j];}//puts("");}printf("%lf\t",vv);for(i=0;i<27;i++){for(j=0;j<27;j++){Q[i][j]=Nbb[i][j];}}for(i=0;i<27;i++){sigma_xy[i][0]=sqrt(Q[i][i])*sigma_gu; //坐标平差值中误差//printf("%lf\n",sigma_xy[i][0]);}sigma_xy28[0][0]=sigma_xy[0][0];for(i=1;i<27;i++){sigma_xy28[i+1][0]=sigma_xy[i][0];}sigma_xy28[1][0]=0.0;//printf("%.10lf\n",Ncc[0][0]);FILE *fp1;fp1=fopen("D:\\111\\导线网输出数据3027.txt","a"); fprintf(fp1,"Nbb的逆:");fprintf(fp1,"\n");for(i=0;i<27;i++){for(j=0;j<27;j++){fprintf(fp1,"%lf ",Nbb[i][j]);}fprintf(fp1,"\n");}fprintf(fp1,"W:");fprintf(fp1,"\n");for(i=0;i<27;i++){for(j=0;j<1;j++){fprintf(fp1,"%.12lf ",W[i][j]);}fprintf(fp1,"\n");}fprintf(fp1,"x^(单位:mm):");fprintf(fp1,"\n");for(i=0;i<28;i++){for(j=0;j<1;j++){fprintf(fp1,"%.10lf ",xgu28[i][j]);}fprintf(fp1,"\n");}fprintf(fp1,"V(单位:秒和mm):");fprintf(fp1,"\n");for(i=0;i<30;i++){for(j=0;j<1;j++){fprintf(fp1,"%.10lf ",V[i][j]);}fprintf(fp1,"\n");}fprintf(fp1,"X^(单位:m):\t");fprintf(fp1,"Y^(单位:m):");fprintf(fp1,"\n");for(i=0;i<15;i++){for(j=0;j<1;j++){fprintf(fp1,"%.6lf\t",Xgu[i][j]);fprintf(fp1,"%.6lf",Ygu[i][j]);}fprintf(fp1,"\n");}fprintf(fp1,"单位权中误差(单位:mm):\n"); fprintf(fp1,"%.10lf\n",sigma_gu);fprintf(fp1,"X坐标平差值中误差(单位:mm):\t");fprintf(fp1,"Y坐标平差值中误差(单位:mm):");fprintf(fp1,"\n");for(i=0;i<13;i++){fprintf(fp1,"%lf\t\t",sigma_xy28[2*i][0]);fprintf(fp1,"%lf",sigma_xy28[2*i+1][0]);fprintf(fp1,"\n");}}C语言画图程序//导线网概略图#include <stdio.h>#include <windows.h>#include <math.h>#define NUM 30LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){static char szAppName[] = "SineWave" ;HWND hwnd ;MSG msg ;WNDCLASSEX wndclass ;wndclass.cbSize = sizeof (wndclass) ;wndclass.style = CS_HREDRAW | CS_VREDRAW ;wndclass.lpfnWndProc = WndProc ;wndclass.cbClsExtra = 0 ;wndclass.cbWndExtra = 0 ;wndclass.hInstance = hInstance ;wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ; wndclass.lpszMenuName = NULL ;wndclass.lpszClassName = szAppName ;wndclass.hIconSm = LoadIcon (NULL, IDI_APPLICATION) ;RegisterClassEx (&wndclass) ;hwnd = CreateWindow (szAppName, "控制网图",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, CW_USEDEFAULT,CW_USEDEFAULT, CW_USEDEFAULT,NULL, NULL, hInstance, NULL) ;ShowWindow (hwnd, iCmdShow) ;UpdateWindow (hwnd) ;while (GetMessage (&msg, NULL, 0, 0)){TranslateMessage (&msg) ;DispatchMessage (&msg) ;}return msg.wParam ;}LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam){static int cxClient, cyClient ;HDC hdc ;int i ;PAINTSTRUCT ps ;POINT pt [NUM] ;switch (iMsg){case WM_SIZE:cxClient = LOWORD (lParam) ;cyClient = HIWORD (lParam) ;return 0 ;case WM_PAINT:hdc = BeginPaint (hwnd, &ps) ;doubley[16]={500.0,363.2211,250.8730,245.2811,343.9816,399.8183,506.0272,596.9804,6 90.1846,686.1801,688.9648,550.4837,552.8629,499.4146,497.8342,500.0}; doublex[16]={500.0,500.0,506.038,269.917,264.999,268.990,346.426,388.125,405.382,466. 024,553.062,555.201,651.049,652.317,591.707,500.0};for (i = 0 ; i < 16 ; i++){pt[i].x = x[i];pt[i].y = y[i];}Polyline (hdc, pt, 16);return 0 ;case WM_DESTROY:PostQuitMessage (0) ;return 0 ;}return DefWindowProc (hwnd, iMsg, wParam, lParam) ;}C#程序:Form1:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.IO;using System.Collections.Generic;namespace导线控制网{public partial class Form1 : Form{public Form1(){InitializeComponent();}public string jisuanjieguo;public const double p = 180*3600/Math.PI;//定义角度转弧度的函数public double jiao_hu(double du,double fen,double miao){return (du*3600.0+fen*60.0+miao)/p;}//定义矩阵运算的类(包括矩阵的加、减、乘、转置和求逆)public class matrix_yusuan{//矩阵相加public static double[,] matrix_jia(double[,] Arry, double[,] Arry1) {int m = Arry.GetLength(0);int n = Arry.GetLength(1);int s = Arry1.GetLength(0);int t = Arry1.GetLength(1);double[,] temp = new double[m, n];double[,] tem = {{0}};if (m == s && n == t){for (int i = 0; i < m; i++){for (int j = 0; j < n; j++){temp[i, j] = Arry[i, j] + Arry1[i, j];}}return temp;}else{Console.WriteLine("两个矩阵大小不同");return tem ;}}//矩阵相减public static double[,] matrix_jian(double[,] Arry, double[,] Arry1) {int m = Arry.GetLength(0);int n = Arry.GetLength(1);int s = Arry1.GetLength(0);int t = Arry1.GetLength(1);double[,] temp = new double[m, n];double[,] tem = { { 0 } };if (m == s && n == t){for (int i = 0; i < m; i++){for (int j = 0; j < n; j++){temp[i, j] = Arry[i, j] - Arry1[i, j];}}return temp;}else{Console.WriteLine("两个矩阵大小不同");return tem;}}//矩阵转置public static double[,] matrix_t(double[,] Arry){int m = Arry.GetLength(0);int n = Arry.GetLength(1);double[,] temp = new double[n, m];for (int i = 0; i < n; i++){for (int j = 0; j < m; j++){temp[i,j] = Arry[j,i];}}return temp;}//矩阵相乘public static double[,] matrix_cheng(double[,] Arry, double[,] Arry1) {int m = Arry.GetLength(0);//矩阵Arry的行数int r = Arry.GetLength(1);//矩阵Arry的列数int k = Arry1.GetLength(0);//矩阵Arry的行数int n = Arry1.GetLength(1);//矩阵Arry1的列数double[,] temp = new double[m, n];double[,] tem = { { 0 } };if (r == k){for (int i = 0; i < m; i++){for (int j = 0; j < n; j++){for (int t = 0; t < r; t++){temp[i, j] += Arry[i, t] * Arry1[t, j];}}}return temp;}else{Console.WriteLine("两个矩阵无法相乘");return tem;}}//求矩阵Arry的逆矩阵public static double[,] matrix_ni(double[,] Arryni){int Level = Arryni.GetLength(1);double[,] NArry = new double[Level, Level];double HLS = matrix_yusuan.matrix_hls(Arryni);double[,] BArry = matrix_bansui(Arryni);for (int i = 0; i < Level; i++){for (int j = 0; j < Level; j++){NArry[i, j] = BArry[i, j] / HLS;}}return NArry;}//求矩阵Arry的伴随矩阵public static double[,] matrix_bansui(double[,] Arryni){int Level = Arryni.GetLength(1);double[,] BArry = new double[Level,Level];for (int m = 0; m < Level; m++){for (int n = 0; n < Level; n++){BArry[m, n] = matrix_yusuan.matrix_yuzi(Arryni, n, m);}}return BArry;}//求矩阵Arry的元素Arry[i,j]的余子式public static double matrix_yuzi(double[,] Arryni, int i, int j)//第i行,第j列,起始值为0{int Level = Arryni.GetLength(1);double[,] Arry1 = new double[Level-1,Level-1];for (int m = 0; m < Level - 1; m++){for (int n = 0; n < Level - 1; n++){if (m < i && n < j){Arry1[m, n] = Arryni[m, n];}else if(m < i && n >= j){Arry1[m, n] = Arryni[m, n + 1];}else if (m >= i && n < j){Arry1[m, n] = Arryni[m + 1, n];}else if (m >= i && n >= j){Arry1[m, n] = Arryni[m + 1, n + 1];}}}//根据矩阵元素的不同位置返回不同的值if ((i + j) % 2 != 0){return (-1)*matrix_yusuan.matrix_hls( Arry1);}else{return matrix_yusuan.matrix_hls(Arry1);}}//求行列式public static double matrix_hls(double[,] Arryni){int Level = Arryni.GetLength(1);//简单来说,对于常用的二维数组,取0或者1,分别获取列和行的长度(行数和列数)double[,] dArry = new double[Level, Level];for (int i = 0; i < Level; i++){for (int j = 0; j < Level; j++){dArry[i, j] = Arryni[i, j];}}int sign = 1;for (int i = 0, j = 0; i < Level && j < Level; i++, j++){//判断该行的正对角元素dArry[i,j]是否为0,若为0,则寻找i行以下的行m(m>i,且dArry[m,j]!=0)进行交换if (dArry[i, j] == 0){//判断是否达到了矩阵的最大行if (i == Level - 1){return 0;}int m = i + 1;//获取一个dArry[m,j]不为零的行for (; dArry[m, j] == 0; m++){if (m == Level - 1){return 0;}}//把i行和m行互换double temp;for (int n = j; n < Level; n++){temp = dArry[i, n];dArry[i, n] = dArry[m, n];dArry[m, n] = temp;}sign *= (-1);}//把当前行以下的行所对应的列变成0double tmp;//for (int s = Level - 1; s > i; s--)for (int s = i + 1; s < Level; s++){tmp = dArry[s, j];for (int t = j; t < Level; t++){dArry[s, t] -= dArry[i, t] * (tmp / dArry[i, j]); }}}double result = 1;for (int i = 0; i < Level; i++){if (dArry[i, i] != 0){result *= dArry[i, i];}else{return 0;}}return sign * result;}}public class aa//用于判断文件导入和计算是否完成{public static int panduan1 = 0;//panduan1用来判断是否进行了计算public static int panduan2 = 0;//panduan2用来判断是否导入文件}int i;int j;//定义数组double[,] hudu = new double[30, 1];double[,] bian = new double[30, 1];double[] alf = new double[30];double[] alfo = new double[30];double[] so = new double[30];double[] Xo = new double[30];double[] Yo = new double[30];double[,] B = new double[30, 27];double[,] L = new double[30, 1];double[,] P = new double[30, 30];double[,] W = new double[27, 1];double[,] temp = new double[30, 30];//此处为Xo Yo,B矩阵赋初值为零 hudu代表夹角,alf方位角,alfo方位角近似值,s 距离观测值,so距离近似值//doubleNbb[50][50],xgu[50][50],Xgu[30][1],Ygu[30][1],V[50][50],sigma_gu,Q[50][50],sigma_xy[50] [50];double[,] Nbb = new double[27, 27];double[,] xgu = new double[27, 1];double[,] xgu28 = new double[28, 1];double[,] Xgu = new double[30, 1];double[,] Ygu = new double[30, 1];double[,] V = new double[30, 1];double[,] Q = new double[27, 27];double[,] sigma_xy = new double[30, 30];double[,] sigma_xy28 = new double[30, 30];double sigma_gu;double D, F, M, sigma_hudu = 2.0, sigma_s;//用来求未知点坐标近似值private void toolStripMenuItem7_Click(object sender, EventArgs e) {if (aa.panduan1 == 1){textBox2.Text = "";textBox2.Text = "近似方位角alfo" + "\t\t" + "\r\n";for (i = 0; i < 15; i++){textBox2.Text += Math.Round(alfo[i], 6);textBox2.Text += "\r\n\r\n";}}else{MessageBox.Show("请先进行计算!", "系统提示");}}private void toolStripMenuItem10_Click(object sender, EventArgs e) {if (aa.panduan1 == 1){textBox2.Text = "";textBox2.Text = "P矩阵" + "\t\t" + "\r\n";for (i = 0; i < P.GetLength(0); i++){for (j = 0; j < P.GetLength(1); j++){textBox2.Text += Math.Round(P[i, j], 6) + "\t";}textBox2.Text += "\r\n\r\n";}}else{MessageBox.Show("请先进行计算!", "系统提示");}}private void toolStripMenuItem9_Click(object sender, EventArgs e) {if (aa.panduan1 == 1){textBox2.Text = "B矩阵" + "\t\t" + "\r\n";for (i = 0; i < B.GetLength(0); i++){for (j = 0; j < B.GetLength(1); j++){textBox2.Text += Math.Round(B[i, j], 6) + "\t";}textBox2.Text += "\r\n\r\n";}}else{MessageBox.Show("请先进行计算!", "系统提示");}}private void button15_Click(object sender, EventArgs e){if (aa.panduan2 == 1){alf[0] = Math.PI;alfo[0] = Math.PI;Xo[0] = 5000.0;Yo[0] = 5000.0;Xo[15] = 5000.0;Yo[15] = 5000.0;so[0] = bian[0, 0];for (i = 1; i < 15; i++){alf[i] = alf[i - 1] + hudu[i, 0] - Math.PI;if (alf[i] >= (2 * Math.PI)){alf[i] = alf[i] - 2 * Math.PI;}Xo[i] = Xo[i - 1] + bian[i - 1, 0] * Math.Cos(alf[i - 1]);Yo[i] = Yo[i - 1] + bian[i - 1, 0] * Math.Sin(alf[i - 1]);}jisuanjieguo += "近似距离(单位:m):" + "\r" + "近似方位角(单位:弧度):" + "\r\n";jisuanjieguo += Math.Round(so[0], 3) + "\t\t" + Math.Round(alfo[0], 6) + "\r\n";for (i = 1; i < 15; i++){//求近似距离so[i] = Math.Sqrt((Yo[i + 1] - Yo[i]) * (Yo[i + 1] - Yo[i]) + (Xo[i + 1] - Xo[i]) * (Xo[i + 1] - Xo[i]));//求近似方位角,分象限进行讨论if ((Yo[i + 1] - Yo[i]) > 0 && (Xo[i + 1] - Xo[i]) > 0)//第一象限{alfo[i] = Math.Atan((Yo[i + 1] - Yo[i]) / (Xo[i + 1] - Xo[i])); }else if ((Yo[i + 1] - Yo[i]) > 0 && (Xo[i + 1] - Xo[i]) < 0)//第二象限{alfo[i] = Math.Atan((Yo[i + 1] - Yo[i]) / (Xo[i + 1] - Xo[i])) + Math.PI;}else if ((Yo[i + 1] - Yo[i]) < 0 && (Xo[i + 1] - Xo[i]) > 0)//第三象限{alfo[i] = Math.Atan((Yo[i + 1] - Yo[i]) / (Xo[i + 1] - Xo[i])) + 2 * Math.PI;}else//((Yo[i]-Yo[i-1])<0&&(Xo[i]-Xo[i-1])<0)//第四象限{alfo[i] = Math.Atan((Yo[i + 1] - Yo[i]) / (Xo[i + 1] - Xo[i])) + Math.PI;}jisuanjieguo += Math.Round(so[i], 3) + "\t\t"+ Math.Round(alfo[i], 6) + "\r\n";}//将第一个角度的系数单独算出j = 0;//B[0][j]=0.0;((Yo[14]-Yo[0])/(so[14]*so[14]))*p/1000.0;//B[0][j+1]=0.0;-1*((Xo[14]-Xo[0])/(so[14]*so[14]))*p/1000.0;B[0, j] = -1 * (Yo[1] - Yo[0]) / (so[0] * so[0]) * p / 1000.0;//B[0][j+1]=(Xo[1]-Xo[0])/(so[0]*so[0])*p/1000.0;B[0, 25] = ((Yo[14] - Yo[0]) / (so[14] * so[14])) * p / 1000.0;B[0, 26] = -1 * (Xo[14] - Xo[0]) / (so[14] * so[14]) * p / 1000.0;//将第二个角度的系数单独算出B[1, j] = ((Yo[2] - Yo[1]) / (so[1] * so[1]) - (Yo[0] - Yo[1]) / (so[0] * so[0])) * p / 1000.0;//B[1][j+1]=-1*((Xo[2]-Xo[1])/(so[1]*so[1])-(Xo[0]-Xo[1])/(so[0]*so[0]))*p/1000.0;B[1, j + 1] = -1 * ((Yo[2] - Yo[1]) / (so[1] * so[1])) * p / 1000.0;B[1, j + 2] = ((Xo[2] - Xo[1]) / (so[1] * so[1])) * p / 1000.0;//i = i + 1;//将第三个角度的系数单独算出i = 2;B[i, j] = ((Yo[i - 1] - Yo[i]) / (so[i - 1] * so[i - 1])) * p / 1000.0;//B[i, j + 1] = -1 * ((Xo[i - 1] - Xo[i]) / (so[i - 1] * so[i - 1])) * p / 1000.0;B[i, j + 1] = ((Yo[i + 1] - Yo[i]) / (so[i] * so[i]) - (Yo[i - 1] - Yo[i]) / (so[i - 1] * so[i - 1])) * p / 1000.0;B[i, j + 2] = -1 * ((Xo[i + 1] - Xo[i]) / (so[i] * so[i]) - (Xo[i - 1] - Xo[i]) / (so[i - 1] * so[i - 1])) * p / 1000.0;B[i, j + 3] = -1 * ((Yo[i + 1] - Yo[i]) / (so[i] * so[i])) * p / 1000.0; B[i, j + 4] = (Xo[i + 1] - Xo[i]) / (so[i] * so[i]) * p / 1000.0;//求其他角度改正的系数for (i = 3; i < 15; i++){if (i < 14){B[i, j + 1] = ((Yo[i - 1] - Yo[i]) / (so[i - 1] * so[i - 1])) * p / 1000.0;B[i, j + 2] = -1 * ((Xo[i - 1] - Xo[i]) / (so[i - 1] * so[i - 1])) * p / 1000.0;B[i, j + 3] = ((Yo[i + 1] - Yo[i]) / (so[i] * so[i]) - (Yo[i - 1] - Yo[i]) / (so[i - 1] * so[i - 1])) * p / 1000.0;B[i, j + 4] = -1 * ((Xo[i + 1] - Xo[i]) / (so[i] * so[i]) - (Xo[i - 1] - Xo[i]) / (so[i - 1] * so[i - 1])) * p / 1000.0;B[i, j + 5] = -1 * ((Yo[i + 1] - Yo[i]) / (so[i] * so[i])) * p / 1000.0;B[i, j + 6] = (Xo[i + 1] - Xo[i]) / (so[i] * so[i]) * p / 1000.0; }else{B[i, j + 1] = (Yo[i - 1] - Yo[i]) / (so[i - 1] * so[i - 1]) * p / 1000.0;B[i, j + 2] = -1 * ((Xo[i - 1] - Xo[i]) / (so[i - 1] * so[i - 1])) * p / 1000.0;B[i, j + 3] = ((Yo[i + 1] - Yo[i]) / (so[i] * so[i]) - (Yo[i - 1] - Yo[i]) / (so[i - 1] * so[i - 1])) * p / 1000.0;B[i, j + 4] = -1 * ((Xo[i + 1] - Xo[i]) / (so[i] * so[i]) - (Xo[i - 1] - Xo[i]) / (so[i - 1] * so[i - 1])) * p / 1000.0;}j = j + 2;}//求边长改正的系数j = 0;//将第一个边长的系数单独算出B[i, 0] = (Xo[1] - Xo[0]) / so[0]; //(Xo[1]-Xo[0])/(so[0]*so[0]);i = i + 1;//将第二个边长的系数单独算出B[i, j] = -1 * (Xo[i - 14] - Xo[i - 15]) / so[i - 15];//B[i, j + 1] = -1 * (Yo[i - 14] - Yo[i - 15]) / so[i - 15];B[i, j + 1] = -1 * B[i, j];B[i, j + 2] = (Yo[i - 14] - Yo[i - 15]) / so[i - 15];for (i = i + 1; i < 30; i++){if (i < 29){B[i, j + 1] = -1 * (Xo[i - 14] - Xo[i - 15]) / so[i - 15];B[i, j + 2] = -1 * (Yo[i - 14] - Yo[i - 15]) / so[i - 15];B[i, j + 3] = -1 * B[i, j + 1];B[i, j + 4] = -1 * B[i, j + 2];}else{B[i, j + 1] = -1 * (Xo[i - 14] - Xo[i - 15]) / so[i - 15];B[i, j + 2] = -1 * (Yo[i - 14] - Yo[i - 15]) / so[i - 15];}j = j + 2;}jisuanjieguo += "B矩阵:" + "\r\n";for (i = 0; i < 30; i++){for (j = 0; j < 27; j++){jisuanjieguo += Math.Round(B[i, j], 6) + "\t";}jisuanjieguo += "\r\n";}//求L矩阵,角度和边长分别求解L[0, 0] = (hudu[0, 0] - (alfo[0] - alfo[14] + Math.PI)) * p;for (i = 1; i < 30; i++){if (i < 15){L[i, 0] = (hudu[i, 0] - (alfo[i] - alfo[i - 1] + Math.PI)) * p;if (L[i, 0] > Math.PI * p){L[i, 0] = (L[i, 0] - 2 * Math.PI * p);}else{L[i, 0] = L[i, 0];}}else{L[i, 0] = (bian[i - 15, 0] - so[i - 15]) * 1000.0;}}jisuanjieguo += "L矩阵(单位:秒和mm):" + "\r\n";for (i = 0; i < 30; i++){for (j = 0; j < 1; j++){jisuanjieguo += Math.Round(L[i, j], 6) + "\t\t";}jisuanjieguo += "\r\n";}//求权阵Pfor (i = 0; i < 30; i++){if (i < 15){P[i, i] = 1;}else{sigma_s = 5 + 10 * 0.000001 * bian[i - 15, 0] * 1000; //单位为(''/mm)的平方P[i, i] = sigma_hudu * sigma_hudu / (sigma_s * sigma_s);}}jisuanjieguo += "P矩阵:" + "\r\n";for (i = 0; i < 30; i++){for (j = 0; j < 30; j++){jisuanjieguo += Math.Round(P[i, j], 6) + "\t";}jisuanjieguo += "\r\n";}Nbb =matrix_yusuan.matrix_cheng(matrix_yusuan.matrix_cheng(matrix_yusuan.matrix_t(B), P), B); //计算Nbb矩阵double[,] temp2 = new double[27, 30];。

导线网平差程序设计报告

导线网平差程序设计报告

导线网平差程序设计报告1. 引言在工程测量中,导线网平差是一项重要的任务,其目的是通过测量数据的处理,求取已测量量的最优估计值,并得出测量结果的可信度。

导线网平差程序设计是实现这个过程的关键步骤之一。

本报告将介绍导线网平差程序的设计过程,并详细说明设计的原理、算法和实现细节。

2. 设计原理导线网平差程序的设计原理基于最小二乘法。

最小二乘法是一种通过最小化观测结果与理论模型的残差平方和来估计模型参数的数学方法。

在导线网平差中,我们可以将每个观测值看作是理论值与测量误差的和,以此建立观测方程。

通过最小二乘法,可以求解出观测量的最优估计值。

3. 算法设计3.1. 数据输入导线网平差程序首先需要获取测量数据。

这些数据可能包括导线的起始点和终止点坐标、导线的观测距离和导线的观测方向等。

程序需要能够读取这些数据,并将其存储在内存中以供后续处理。

3.2. 创建观测方程根据测量数据,程序需要创建观测方程。

观测方程可以使用矩阵形式表示,其中每个元素对应一个测量值。

观测方程的建立需要依据测量理论和导线网的具体结构。

3.3. 计算平差数值解通过最小二乘法,可以计算出导线网平差的数值解。

数值解是观测量的最优估计值,可以考虑加权或限制条件等问题。

3.4. 计算平差结果通过平差数值解,可以计算出每个测量值的平差结果。

这些结果可以包括平差坐标、观测误差、精度估计等。

3.5. 输出结果最后,程序需要将平差结果输出到文件或打印屏幕上,以便用户查看和使用。

4. 实现细节为了设计一个高效且易于使用的导线网平差程序,我们可以选择使用编程语言来实现。

常见的编程语言有Python、C++等。

在程序实现过程中,我们可以使用一些常用的库和工具来简化开发过程,例如NumPy和SciPy用于矩阵计算,matplotlib用于结果可视化等。

在实现中,我们需要设计合适的数据结构来存储测量数据和计算结果,例如使用数组、矩阵或自定义的数据结构。

5. 结论导线网平差程序的设计是一个复杂而重要的任务。

导线网平差算例只是分享

导线网平差算例只是分享

导线网平差算例用平差易软件做控制网平差的过程第一步:控制网数据录入第二步:坐标推算第三步:坐标概算第四步:选择计算方案第五步:闭合差计算与检核第六步:平差计算第七步:平差报告的生成和输出作业流程图:实例1 符合导线实例这是一条符合导线的测量数据和简图,A、B、C和D是已知坐标点,2、3和4是待测的控制点。

测站点角度(°′″) 距离(米)X (米) Y(米)B 8345.8709 5216.6021A 85.30211 1474.4440 7396.2520 5530.00902 254.32322 1424.71703 131.04333 1749.32204 272.20202 1950.4120C 244.18300 4817.6050 9341.4820D 4467.5243 8404.7624导线原始数据表导线图如下:导线图第一步:录入原始数据在平差易软件中输入以上数据,如下图“数据输入”所示:数据输入在测站信息区中输入A、B、C、D、2、3和4号测站点,其中A、B、C、D为已知坐标点,其属性为10,其坐标如“原始数据表”;2、3、4点为待测点,其属性为00,其它信息为空。

如果要考虑温度、气压对边长的影响,就需要在观测信息区中输入每条边的实际温度、气压值,然后通过概算来进行改正。

根据控制网的类型选择数据输入格式,此控制网为边角网,选择边角格式。

如下图“选择格式”所示:选择格式在观测信息区中输入每一个测站点的观测信息,为了节省空间只截取观测信息的部分表格示意图,如下表B、D作为定向点,它没有设站,所以无观测信息,但在测站信息区中必须输入它们的坐标。

以A为测站点,B为定向点时(定向点的方向值必须为零),照准2号点的数据输入如下图“测站A的观测信息”所示:测站A的观测信息以C为测站点,以4号点为定向点时,照准D点的数据输入如下图“测站C的观测信息”所示:测站C的观测信息2号点作为测站点时,以A为定向点,照准3号点,如下图“测站2的观测信息”所示:测站2的观测信息以3号点为测站点,以2号点为定向点时,照准4号点的数据输入如下图“测站3的观测信息”所示:测站3的观测信息以4号点为测站点,以3号点为定向点时,照准C点的数据输入如下图“测站4的观测信息”所示:测站4的观测信息说明:①数据为空或前面已输入过时可以不输入(对向观测例外)②在电子表格中输入数据时,所有零值可以省略不输。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
边长观测值的归心:
S EY cos(Y M iK )
照准归心与测站归心相同
概算--观测成果改化
• 野外观测是地球表面,而参考面是地球椭球面,计 算是在高斯平面上。方向改化和距离改化就是要将
椭球面上的观测值归化到高斯平面上。
方向改化: 距离改化:
iK

f ( X i X k ) (2 Yi Yk ) 3
E y -测站偏心距,
C Kj E y '' sin(M Ki Y ) / S Ki rKi ET '' sin(M ik T ) / S Ki
Y -测站偏心角,
M Ki -为测站上观测改正方向的方向观测值
ET -照准偏心距,
T -照准偏心角,
M iK -为照准点上观测改正方向的方向观测值
算、坐标转换、换带计算等。 对以上每项功能还需细化
数据描述
1.已知数据
已知边、已知方位角、已知点位坐标、测角先验精度信息、测边先验 精度信息,气象信息等
2.观测数据
观测方位,观测边长
3.网形数据
CAD草图或近似坐标及连接信息文件
4.平差成果数据
平差后的待定点点位坐标及其精度、误差椭圆参数、平差后的方位角 和边长及其精度等
概算--近似坐标解算方法
(1)整体解算法:设有n个待定点,则有2n未知
数,选取具有2n个独立未知数的观测值组成方程 组,进行整体解算。
(2)逐点解算法:选择已知点或已计算出坐标
的点作为起算点,根据具体的图形,逐个推算出 各点的坐标。
概算--观测成果归化到标石中心
方向观测值的归心: 测站归心和照准归心
V BX L
根据最小二乘原理: V T PV min ,求极值,
(V T PV ) 2V T P V 2V T PB 0
x
x
BT PV 0, BT P(BX L) 0, BT PBX BT PL 0 ,得:
法方程:
BT PBX BT PL 0
控制网平差软件需求分析
• 总体描述: 控制网平差程序对野外控制网观测数据
进行平差数据处理,其目的就是根据最小 二乘原理,消除网中的各种几何矛盾,求 出全网各待定元素(未知点的平面坐标或 三维坐标)。
功能需求
1.优化设计:根据控制网的观测精度与网形,全面评定网
的精度
2.数据输入:表格化输入、图形化输入、外部数据倒入
,即求条件极值法,利用拉格朗日不定乘数法:
V T PV 2K T ( AX W ) min
2V T P V 2K T A 2(BX L)T PB 2K T A 0
x
x
BT P(BX L) AT K BT PBX AT K BT PL 0
AX W 0
即: BT PB AT X BT PL

A
0


K



W
0
控制网间接平差的主要工作
• 平面控制网的计算通常包括:
• 概算:概算为平差前的准备工作,相当于
数据的预处理
• 平差:列出误差方程,根据最小二乘原理
进行解算
• 编制成果表:控制点成果 、观测成果等
ห้องสมุดไป่ตู้
法方程的解:
X (BT PB)1 BT PL
单位权中误差:
V T PV /(n t)
附有条件的间接平差原理:
设未知数个数为t,观测值个数为n,条件方程个数为m
误差方程:V BX L
条件方程: AX W 0
根据最小二乘原理:在条件 AX W 0下
V T PV min
平差计算--1误差方程式及条件方程式的列立
概算--计算近似坐标1
1 按方向观测值计算三角网中待定点的近似 坐标 (前方交会)
xk

xa ctgB xbctgA ya ctgA ctgB

yb
(1)
yk

ya ctgB ybctgA xa ctgA ctgB
xb
k
K
B
A
b
a
概算--计算近似坐标2
2.按边长观测值计算三边网中待定点的近似坐标 (边长交 会),先按公式(2)计算三角形的内角,再用公式(1)计 算待定点的坐标
3.概算:自动完成各方向的曲率改正及边长的高程归化与
投影改化,近似坐标的推算等。
4.平差计算:对观测数据进行精密平差计算,得到平差后
的点位坐标,方向观测值,边长观测值等,精度评定。
5.成果输出:控制网图形输出,平差结果报表及其输出,
绘制误差椭圆,打印输出等。
6.其它功能:粗差探测与剔除、方差分量估计、闭合差计
概算的主要工作
1.外业观测成果的整理、检查 2.绘制网的略图,编制观测数据表和已知数据表 3.计算近似坐标 4.观测成果归化到标石中心 5.观测成果改化(方向改化和距离改化) 6.根据平面控制网的几何条件检查观测成果的质量,
即各种闭合、附合条件的检验。 如:方位角闭 合(附合)差、坐标闭合(附合)差
S f SiK Ym2

式中:
Ym
Yi
Yk 2
;f


2 Rm2
Rm 本地区的地球平均半径
平差计算
1.列出误差方程及条件式 2.定权 3.组成法方程 4.解算法方程,求得dX=[dx1 dy1 dx2
dy2 …] 5. 平差后的坐标值计算X=X+dX。 6.精度评定,计算误差椭圆参数等
k
S1 K S2
a
A
B
S0
b
A

cos1
(
S
2 0

S12

S
2 2
)
2S0 S1
B

c
os1
(
S
2 0

S
2 2

S12
)
2S0 S 2
(2)
概算--计算近似坐标3
3按方向和边长观测值计算导线网中待定点的 近似坐标
b
tab A
t d
k
a
xk xa d cost xa d cos(tab A) yk ya d sin t ya d sin(tab A)
已 知 数 据
观测数据
平差模型
• 最小二乘平差模型
• 条件平差:条件方程式较少,占用内存小,但
条件方程与网形有关,很难编制通用的程序。
• 间接平差:一个观测值就是一个误差方程,占
用内存相对较大,但易于编程解算,容易编制通 用的程序
间接平差基本原理: 设:观测值为L,其权为P,相应的改正数为V,必要观测值个 数为t,选定未知数X,则有误差方程
相关文档
最新文档