测量平差编程

测量平差编程
测量平差编程

误差理论与测量平差上机指导书

辽宁工程技术大学

测绘与地理科学学院测绘工程系

目录

Visual C++ 6.0开发平台简介 (1)

MFC概述 (1)

实验1 矩阵加法与乘法运算 (3)

实验2 矩阵转置与求逆运算 (6)

实验3 误差椭圆元素计算 (13)

实验4 水准网间接平差程序设计 (15)

Visual C++ 6.0开发平台简介

Visual C++提供了一个支持可视化编程的集成开发环境:Visual Studio(又名Developer Studio)。Developer Studio是一个通用的应用程序集成开发环境,它不仅支持Visual C++,还支持Visual Basic,Visual J++,Visual InterDev等Microsoft系列开发工具。Developer Studio包含了一个文本编辑器、资源编辑器、工程编译工具、一个增量连接器、源代码浏览器、集成调试工具,以及一套联机文档。使用Developer Studio,可以完成创建、调试、修改应用程序等的各种操作。

Developer Studio采用标准的多窗口Windows用户界面,并增加了一些新特性,使得开发环境更易于使用,用户很容易学会它的使用方法。

由于Developer Studio是一个可视化的开发工具,在介绍Developer Studio 的各个组成部分之前,首先了解一下可视化编程的概念。可视化技术是当前发展迅速并引人注目的技术之一,它的特点是把原来抽象的数字、表格、功能逻辑等用直观的图形、图象的形式表现出来。可视化编程是它的重要应用之一。所谓可视化编程,就是指:在软件开发过程中,用直观的具有一定含义的图标按钮、图形化的对象取代原来手工的抽象的编辑、运行、浏览操作,软件开发过程表现为鼠标点击按钮和拖放图形化的对象以及指定对象的属性、行为的过程。这种可视化的编程方法易学易用,而且大大提高了工作效率。

Visual C++的集成开发环境Developer Studio提供了大量的实用工具以支持可视化编程特性,它们包括:项目工作区、ClassWizard、AppWizard、WizardBar、Component Gallery等。

MFC概述

MFC是一个编程框架。MFC (Microsoft Foundation Class Library) 中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对SDK来说更为简单的方法。

因为总体上,MFC框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。Microsoft Visual C++提供了相应的工具来完成这个工作:AppWizard可以用来生成初步的框架文件(代码和资源等);资源编辑器用于帮助直观地设计用户接口;ClassWizard用来协助添加代码到框架文件;最后,编译,则通过类库实现了应用程序特定的逻辑。

1 封装

构成MFC框架的是MFC类库。MFC类库是C++类库。这些类或者封装了Win32应用程序编程接口,或者封装了应用程序的概念,或者封装了OLE特性,或者封装了ODBC和DAO数据访问的功能,等等。

2 继承

首先,MFC抽象出众多类的共同特性,设计出一些基类作为实现其他类的基础。这些类中,最重要的类是CObject和CCmdTarget。CObject是MFC 的根类,绝大多数MFC类是其派生的,包括CCmdTarget。CObject 实现了一些重要的特性,包括动态类信息、动态创建、对象序列化、对程序调试的支持,等等。所有从CObject派生的类都将具备或者可以具备CObject所拥有的特性。CCmdTarget通过封装一些属性和方法,提供了消息处理的架构。MFC 中,任何可以处理消息的类都从CCmdTarget派生。

针对每种不同的对象,MFC都设计了一组类对这些对象进行封装,每一组类都有一个基类,从基类派生出众多更具体的类。这些对象包括以下种类:窗口对象,基类是CWnd;应用程序对象,基类是CwinThread;文档对象,基类是Cdocument,等等。程序员将结合自己的实际,从适当的MFC类中派生出自己的类,实现特定的功能,达到自己的编程目的。

3 虚拟函数和动态约束

MFC以“C++”为基础,自然支持虚拟函数和动态约束。但是作为一个编程框架,有一个问题必须解决:如果仅仅通过虚拟函数来支持动态约束,必然导致虚拟函数表过于臃肿,消耗内存,效率低下。例如,CWnd封装 Windows 窗口对象时,每一条Windows消息对应一个成员函数,这些成员函数为派生类所继承。如果这些函数都设计成虚拟函数,由于数量太多,实现起来不现实。于是,MFC建立了消息映射机制,以一种富有效率、便于使用的手段解决消息处理函数的动态约束问题。

这样,通过虚拟函数和消息映射,MFC类提供了丰富的编程接口。程序员继承基类的同时,把自己实现的虚拟函数和消息处理函数嵌入MFC的编程

框架。MFC编程框架将在适当的时候、适当的地方来调用程序的代码。

4 MFC的宏观框架体系

如前所述,MFC实现了对应用程序概念的封装,把类、类的继承、动态约束、类的关系和相互作用等封装起来。这样封装的结果对程序员来说,是一套开发模板(或者说模式)。针对不同的应用和目的,程序员采用不同的模板。例如,SDI应用程序的模板,MDI应用程序的模板,规则DLL应用程序的模板,扩展DLL应用程序的模板,OLE/ACTIVEX应用程序的模板,等等。这些模板都采用了以文档-视为中心的思想,每一个模板都包含一组特定的类。

为了支持对应用程序概念的封装,MFC内部必须作大量的工作。例如,为了实现消息映射机制,MFC编程框架必须要保证首先得到消息,然后按既定的方法进行处理。又如,为了实现对DLL编程的支持和多线程编程的支持,MFC内部使用了特别的处理方法,使用模块状态、线程状态等来管理一些重要信息。虽然,这些内部处理对程序员来说是透明的,但是,懂得和理解MFC 内部机制有助于写出功能灵活而强大的程序。

总之,MFC封装了Win32 API,OLE API,ODBC API等底层函数的功能,并提供更高一层的接口,简化了Windows编程。同时,MFC支持对底层API 的直接调用。MFC提供了一个Windows应用程序开发模式,对程序的控制主要是由MFC框架完成的,而且MFC也完成了大部分的功能,预定义或实现了许多事件和消息处理,等等。框架或者由其本身处理事件,不依赖程序员的代码;或者调用程序员的代码来处理应用程序特定的事件。

MFC是C++类库,程序员就是通过使用、继承和扩展适当的类来实现特定的目的。例如,继承时,应用程序特定的事件由程序员的派生类来处理,不感兴趣的由基类处理。实现这种功能的基础是C++对继承的支持,对虚拟函数的支持,以及MFC实现的消息映射机制。

实验1 矩阵加法与乘法运算

一、实验名称:矩阵加法与乘法运算。

二、实验目的和任务:掌握矩阵加法与乘法通用程序的编写。

三、实验要求:

1每人独立编写出矩阵加法与乘法的程序,并上机调试通过;

2采用VC++6.0开发平台,C或者C++语言编写程序;

3写出矩阵运算的结果。

四、实验内容:

1矩阵加法的示例函数(C语言)

void JZjiafa(double a[15][15],double b[15][15],double c[15][15],int

m,int n)

{

for (int i=0;i<=m-1;i++)

for(int j=0;j<=n-1;j++)

{

c[i][j]=a[i][j]+b[i][j];

}

return;

}

2矩阵乘法的示例程序(C语言)

#include "stdafx.h"

void matrixMultiply(double a[14][15],double b[15][13], double

c[14][13],long m,long n,long k)

{

for (long i = 0; i<= m-1; i++)

{

for (long j=0; j<=k-1; j++)

{

c[i][j] =0.0;

for (long q=0; q<=n-1;q++)

{

c[i][j] = c[i][j] + a[i][q] * b[q][j];

}

}

}

return;

}

int main(int argc, char* argv[])

{

long n,m,k,i,j;

double a[14][15],c[14][13],b[15][13];

FILE *stream;

stream = fopen("矩阵输入.txt","r");

fscanf(stream,"%ld %ld",&n,&m);

for (i=0;i

{

for(j=0;j

{

fscanf(stream,"%lf",&a[i][j]);

}

}

fscanf(stream,"%ld %ld",&m,&k);

for(i=0;i

{

for(j=0;j

{

fscanf(stream,"%lf",&b[i][j]);

}

}

fclose(stream);

matrixMultiply(a,b,c,4,5,3);

stream = fopen("矩阵计算结果.txt","w");

for (i=0;i<=3;i++)

{

for(j=0;j<=2;j++)

fprintf(stream,"%16.7e ",c[i][j]);

fprintf(stream,"\n");

}

fprintf(stream,"\n");

fclose(stream);

return 0;

}

实验2 矩阵转置与求逆运算

一、实验名称:矩阵转置与求逆运算。

二、实验目的和任务:掌握矩阵转置的编写,会调用矩阵求逆函数。

三、实验要求:

1每人独立编写出矩阵转置的程序,并上机调试通过;

2每人独立完成矩阵求逆函数的调用,并调试通过;

3采用VC++6.0开发平台,C或者C++语言编写程序;

4写出矩阵运算的结果。

四、实验内容:

i.矩阵的转置示例函数(C语言)

double JZzhuanzhi(double a[15][15], double b[15][15], int m,int n)

{

{

for(int i=0;i

for(int j=0;j

b[j][i]=a[i][j];

}

return 0.0;

}

ii.矩阵求逆的示例函数(C语言)

int invGJ(double **a,int n)

{

int *is,*js,i,j,k,l,u,v;

double d,p;

is=(int *)malloc(n*sizeof(int));

js=(int *)malloc(n*sizeof(int));

for(k=0;k<=n-1;k++)

{

d=0.0;

for(i=k;i<=n-1;i++)

for(j=k;j<=n-1;j++)

{

l=i*n+j;p=fabs(a[i][j]);

if(p>d)

{d=p;is[k]=i;js[k]=j;}

}

if(d+1.0==1.0)

{

free(is);free(js);printf("error not inv\n");

return (0);

}

if(is[k]!=k)

for(j=0;j<=n-1;j++)

{

u=k*n+j;v=is[k]*n+j;

p=a[k][j];a[k][j]=a[is[k]][j];a[is[k]][j]=p;

}

if(js[k]!=k)

for(i=0;i<=n-1;i++)

{

u=i*n+k;v=i*n+js[k];

p=a[i][k];a[i][k]=a[i][js[k]];a[i][js[k]]=p;

}

l=k*n+k;

a[k][k]=1.0/a[k][k];

for(j=0;j<=n-1;j++)

if(j!=k)

{

u=k*n+j;a[k][j]=a[k][j]*a[k][k];

}

for(i=0;i<=n-1;i++)

if(i!=k)

for(j=0;j<=n-1;j++)

if(j!=k)

{

u=i*n+j;

a[i][j]=a[i][j]-a[i][k]*a[k][j];

}

for(i=0;i<=n-1;i++)

if(i!=k)

{

u=i*n+k;a[i][k]=-a[i][k]*a[k][k];

}

}

for(k=n-1;k>=0;k--)

{

if(js[k]!=k)

for(j=0;j<=n-1;j++)

{

u=k*n+j;v=js[k]*n+j;

p=a[k][j];a[k][j]=a[js[k]][j];a[js[k]][j]=p;

}

if(is[k]!=k)

for(i=0;i<=n-1;i++)

u=i*n+k;v=i*n+is[k];

p=a[i][k];a[i][k]=a[i][is[k]];a[i][is[k]]=p;

}

}

free(is);free(js);

return (1);

} int invGJ(double **a,int n)

{

int *is,*js,i,j,k,l,u,v;

double d,p;

is=(int *)malloc(n*sizeof(int));

js=(int *)malloc(n*sizeof(int));

for(k=0;k<=n-1;k++)

{

d=0.0;

for(i=k;i<=n-1;i++)

for(j=k;j<=n-1;j++)

{

l=i*n+j;p=fabs(a[i][j]);

if(p>d)

{d=p;is[k]=i;js[k]=j;}

}

if(d+1.0==1.0)

{

free(is);free(js);printf("error not inv\n");

return (0);

}

if(is[k]!=k)

for(j=0;j<=n-1;j++)

{

u=k*n+j;v=is[k]*n+j;

p=a[k][j];a[k][j]=a[is[k]][j];a[is[k]][j]=p;

if(js[k]!=k)

for(i=0;i<=n-1;i++)

{

u=i*n+k;v=i*n+js[k];

p=a[i][k];a[i][k]=a[i][js[k]];a[i][js[k]]=p;

}

l=k*n+k;

a[k][k]=1.0/a[k][k];

for(j=0;j<=n-1;j++)

if(j!=k)

{

u=k*n+j;a[k][j]=a[k][j]*a[k][k];

}

for(i=0;i<=n-1;i++)

if(i!=k)

for(j=0;j<=n-1;j++)

if(j!=k)

{

u=i*n+j;

a[i][j]=a[i][j]-a[i][k]*a[k][j];

}

for(i=0;i<=n-1;i++)

if(i!=k)

{

u=i*n+k;a[i][k]=-a[i][k]*a[k][k];

}

}

for(k=n-1;k>=0;k--)

{

if(js[k]!=k)

for(j=0;j<=n-1;j++)

u=k*n+j;v=js[k]*n+j;

p=a[k][j];a[k][j]=a[js[k]][j];a[js[k]][j]=p;

}

if(is[k]!=k)

for(i=0;i<=n-1;i++)

{

u=i*n+k;v=i*n+is[k];

p=a[i][k];a[i][k]=a[i][is[k]];a[i][is[k]]=p;

}

}

free(is);free(js);

return (1);

}

iii.矩阵求逆函数的调用(C语言)

#include

#include

#include

int invGJ(double **a,int n);

void main()

{

int i,j;

double **AA;

//首先对二维指针Naa分配内存,采用C语言的方法/* AA=(double **)malloc(sizeof(double)*2);

for(i=0;i<2;i++)

{

AA[i]=(double *)mallo(sizeof(double)*2);

}

*/

//首先对二维指针Naa分配内存,采用C++语言的方法AA=new double * [2];

for(i=0;i<2;i++)

{

AA[i]=new double[2];

}

double BB[2][2]={1,2,3,4};

for(i=0;i<2;i++)

{

for(j=0;j<2;j++)

{

AA[i][j]=BB[i][j];

}

}

//调用矩阵求逆函数

invGJ(AA,2);

printf("矩阵AA的逆阵如下\n");

for(i=0;i<2;i++)

{

for(j=0;j<2;j++)

{

printf("%10.4lf",AA[i][j]);

}

printf("\n");

}

double CC[2][2];

printf("AA与其逆阵的乘积如下(理论上是单位阵)\n");

for(i=0;i<2;i++)

{

for(j=0;j<2;j++)

{

CC[i][j]=0.0;

for(int k=0;k<2;k++)

{

CC[i][j]+=AA[i][k]*BB[k][j];

}

printf("%10.4lf",CC[i][j]);

}

printf("\n");

}

//C语言释放AA二维指针的方法

/* for(i=0;i<2;i++)

{

free(AA[i]);

}

free(AA);

*/

//C++语言释放AA二维指针的方法

for(i=0;i<2;i++)

{

delete AA[i];

}

delete AA;

}

实验3 误差椭圆元素计算

一、实验名称:误差椭圆元素计算。

二、实验目的和任务:掌握误差椭圆和相对误差椭圆元素的计算公式,并

采用C或者C++语言变成实现。

三、实验要求:

1每人独立编写出误差椭圆和相对误差椭圆元素的计算程序,并调

试通过;

2 采用VC++6.0开发平台,C 或者C++语言编写程序;

3 写出计算的结果。

4 本实验属于综合性,设计性实验,对学生的要求比较高,会综合

使用矩阵加法,乘法以及转置和求逆的程序。

5 注意事项:坐标方位角计算时必须考虑X 与Y 所在的象限。

四、 实验内容:

参考教材《测量平差》P103-P112。具体的例子可以参考P111页的例题,进行程序的调试。 (一) 误差椭圆元素计算公式:

2

2

4)(XY YY XX Q Q Q K +-=

)(21K Q Q Q YY XX EE ++=

)(2

1K Q Q Q YY XX FF -+=

EE Q E 0?σ= FF Q F 0?σ= XY XX

EE E Q Q Q tg -=

? XY

XX

FF F Q Q Q tg -=

?

(二) 相对误差椭圆元素计算公式:

2122112X X X X X X X X Q Q Q Q -+=?? 2122112Y Y Y Y Y Y Y Y Q Q Q Q -+=?? 12212211Y X Y X Y X Y X Y X Q Q Q Q Q --+=??

2

2

4)(Y X Y Y X X Q Q Q K ??????+-=

)

(21K Q Q Q Y Y X X EE ++=????

)(2

1K Q Q Q Y Y X X FF -+=

????

EE Q E 0?σ

=

FF Q F 0?σ= Y X X

X EE E Q Q Q tg ????-=

? Y

X X

X FF F Q Q Q tg ????-=

?

五、 例子(P111)

在某三角网中插入P1及P2两个新点。设用间接平差法平差。平差之后这两点之间的协因数阵如下:

??

???

?

?

???

??=???????

???

??=

4443

42

41

34333231

24

232221

14131211

?

?0024.00003

.00008

.00005

.00003.00021.00006.00010.00008

.00006.00024.00002.00005.00010.00002.00016.0Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q X X 根据以上的公式,分别计算出未知点P1和P2的误差椭圆元素以及这两点之间的相对误差椭圆元素。

实验4 水准网间接平差程序设计

一、 实验名称:水准网间接平差程序设计

二、 实验目的:掌握用间接平差法对任意网形的水准网进行平差的算法设

计以及程序编制;并学习采用读文件处理数据的方法。

三、 实验任务:用C/C++编写水准网间接平差程序,并调试通过,用实测

数据实算分析;同时评定精度。

四、 实验要求:

1 个人独立编写程序,原始数据存放于文本文件或者数据库文件中;

2 程序应该具有通用性,即任意网形都可以平差;

3 用实测的数据进行计算分析。

4 评定待定点的高程精度。 五、 实验内容

1 数据文件的编制格式

总点数 未知点数 测段数(观测高差的个数) 已知点1点名 高程 已知点2点名 高程

未知点3点名 0 未知点4点名 0 未知点5点名 0 。 。 。

起点点号 终点点号 观测高差 路线长度(km) 起点点号 终点点号 观测高差 路线长度(km) 起点点号 终点点号 观测高差 路线长度(km) 。 。 。 2 平差原理

由观测值的起始和终点号或者水准网网形,形成误差方程的系数矩阵B(也叫设计矩阵),由观测的路线长度形成观测高差的权阵P(观测值独立,P 为对角阵),

原理如下:

i

i S C P =

(C 为任意常数) l x

B V -=? PB B N T bb =

Pl

B W T

= W N x

bb ?=-1

? 3 法方程系数矩阵与闭合差的自动累加

由于N 和W 具有可加性,即每读取一个高差观测值,即可得到一个误差方程的系数向量,然后累加到法方程系数矩阵与闭合差中;当高差观测值读取完毕的时候,法方程系数矩阵与闭合差也累加完毕;此时可用公式直接计算待定点高程的改正数,加上高程近似值,就得到了高程的平差值。

4 精度评定

验后单位权中误差:t

n PV V T

-=

0?σ

待定点高程(未知参数)的协因数阵:1

??-=bb X X N Q

待定点高程的方差:X X X X Q D ??20????=σ

改正数V 的协因数阵:T

bb

VV B BN Q Q 1--= 高差平差值的协因数阵:T bb

L L B BN Q 1??-=

5例子1(P79)

(1)in.txt文件

4 3 5

1 A 237.483

2 B 0.0

3 C 0.0

4 D 0.0

1 2 5.835 3.5

2 3 3.782 2.7

1 3 9.640 4.0

4 3 7.384 3.0

1 4 2.270 2.5

(2)源程序

//Gckzwpc.h头文件代码

class CGckzwpc

{

public:

CGckzwpc();

virtual ~CGckzwpc();

public:

bool ReadData(CString filename); //读水准网平差数据文件

void pc(); //平差函数

void jdpd(); //精度评定函数

int invGJ(double **a,int n); //求逆函数

int nz,nw,ne,nn; //文件头信息:总点数,未知点数,已知点数,测段数

int n1[20],n2[20]; //存放高差起点与终点的点号

double H[50],h[50],W[20],X[20],B[50][20],V[50],VPV;

double **Nbb,S[50],l[50],P[50],ph[50];

CString dm[20]; //控制点点名

double SIG0,DX[20][20];

};

//Gckzwpc.cpp代码

bool CGckzwpc::ReadData(CString filename)

{

int i;

int MAXLINE =512;

char buff[513],ch1[15];

CStdioFile fp;

if( !fp.Open(filename,CFile::modeRead|CFile::typeText,NULL)) {

AfxGetApp()->m_pMainWnd->MessageBox(

"数据文件不存在或数据文件错!",

"进程. . . . . .!!!",MB_OK|MB_ICONSTOP);

_exit(1);

return FALSE;

}

fp.ReadString(buff,MAXLINE);

sscanf(buff,"%d%d%d",&nz,&nw,&nn);

ne=nz-nw;

int dh;

double gc;

for(i=0;i

{

fp.ReadString(buff,MAXLINE);

sscanf(buff,"%d%s%lf",&dh,ch1,&gc);

dm[i]=ch1;H[i]=gc;

}

for(i=0;i

{

fp.ReadString(buff,MAXLINE);

测量平差知识大全

?绪论 ?测量平差理论 ?4种基本平差方法 ?讨论点位精度 ?统计假设检验的知识 ?近代平差概论 ?绪论 §1-1观测误差 测量数据(观测数据)是指用一定的仪器、工具、传感器或其他手段获取的反映地球与其它实体的空间分布有关信息的数据,包含信息和干扰(误差)两部分。 一、误差来源 观测值中包含有观测误差,其来源主要有以下三个方面: 1. 测量仪器; 2. 观测者; 3. 外界条件。 二、观测误差分类 1. 偶然误差 定义,例如估读小数; 2. 系统误差 定义,例如用具有某一尺长误差的钢尺量距; 系统误差与偶然误差在观测过程中总是同时产生的。

3. 粗差 定义,例如观测时大数读错。 误差分布与精度指标 §2-1 正态分布 概率论中的正态分布是误差理论与测量平差基础中随机变量的基本分布。 一、一维正态分布 §2-2偶然误差的规律性

2. 直方图 由表2-1、表2-2可以得到直方图2-1和图2-2(注意纵、横坐标各表示什么?),直方图形象地表示了误差分布情况。 3. 误差分布曲线(误差的概率分布曲线) 在一定的观测条件下得到一组独立的误差,对应着一种确定的误差分布。当观测值个数的情况下,频率稳定,误差区间间隔无限缩小,图2-1和图2-2中各长方条顶边所形成的折线将分别变成如图2-3所示的两条光滑的曲线,称为误差分布曲线,随着n增大,以正态分布为其极限。因此,在以后的讨论中,都是以正态分布作为描述偶然误差分布的数学模型。

4. 偶然误差的特性 第三章协方差传播律及权 在测量实际工作中,往往会遇到某些量的大小并不是直接测定的,而是由观测值通过一定的函数关系间接计算出来的,显然,这些量是观测值的函数。例如,在一个三角形中同精度观测了3个内角L1,L2和L3,其闭合差w和各角度的平差值分别 又如图3—1中用侧方交会求交会点的坐标等。 现在提出这样一个问题:观测值函数的精度如何评定?其中误差与观测值的中误差存在怎样的关系?如何从后者得到前者?这是本章所要讨论的重要内容,阐述这种关系的公式称为协方差传播律。 § 3—1 数学期望的传播

VB测量平差程序设计讲稿

Case 0 '读入观测值文件 Text1.Visible = False CommonDialog1.ShowOpen fname = CommonDialog1.FileName '将用户在"打开"对话框中选择的文件名对变量fname赋值 If fname <> "" Then '若无此判断当对话框中选择取消时、下面赋值语句将出错 Set ts = fso.OpenTextFile(fname) '将fname作为文本文件打开,并设置句柄 j = 0: k = 0: p = 0: h = 0 'j是测站数累计变量,k是已知点累计变量,l(j)、ns(j)分别是方向值、边长累积计数 Do While ts.AtEndOfLine <> True '前测型循环,进入循环的条件是没有读到文件结束尾 B = ts.ReadLine '读一行,置入b B = Trim(B): i = 1: '删除B可能有的前导和尾随空格,i是工作变量, m(i) = InStr(B, ",") '查行中第一个逗号的左数位置,并保存在整形数组变量m(i) Do While m(i) <> 0 '前测型Do... Loop循环,成立条件是该行字符串中有逗号 tr(i) = Mid(B, m(i - 1) + 1, m(i) - m(i - 1) - 1) '提取指定位置开始的指定数目字符。 i = i + 1 m(i) = InStr(m(i - 1) + 1, B, ",") '从上一个找到的逗号位置起,查找下一个逗号的位置 Loop If m(i) = 0 And i > 1 Then tr(i) = Right(B, Len(B) - m(i - 1)) '处理一行中最后一个逗号后的字符串 '以下部分是将存储在数组变量m(i)中的字符分类存放到方向、边长、已知坐标、网型信息等数组中 If p = 0 Then '读到的是文件第一行。 ma = tr(1): ms = tr(2): mk = tr(3): p = 1 '提取观测方向,边先验精度值,并使该句以后不能再执行。 Else If m(1) = 0 Then j = j + 1: ReDim Preserve dm(j): ReDim Preserve nl(j): ReDim Preserve ns(j): dm(j) = B: nl(j) = nl(j - 1): ns(j) = ns(j - 1) '该行中没有逗号,但又不是结束符,则一定是测站点名。将读出的字符串赋值到点名数组变量dm(j), 资料.

误差理论及测量平差课程设计报告

- - - n 目录 一、目录----------------------------1 二、序言---------------------------- 2 三、设计思路------------------------ 3 四、程序流程图---------------------- 4 五、程序及说明---------------------- 5 六、计算结果-----------------------12 七、总结--------------------------- 15 第二部分序言 1、课程设计的性质、目的和任务 误差理论与测量平差是一门理论与实践并重的课程,其课程设计是测量数据处理理论学习的一个重要的实践环节,它是在我们学习了专业基础课“误差理论与测量平差基础”课程后进行的一门实践课程。其目的是增强我们对误差理论与测量平差基础理论的理解,牢固掌握测量平差的基本原理和基本公式,熟悉测量数据处理的基本技能和计算方法,灵活准确地应用于解决各类数据处理的实际问题,并能用所学的计算机理论知识,编制简单的计算程序。 2、误差理论与测量平差课程和其它课程的联系和分工 这次课程设计中所用的数学模型和计算方法是我们在误差理论与测量平差课程中所学的内容,所使用的C程序语言使我们在计算机基础课程中所学知识。误差理论与测量平差课程设计是测量平差和计算机程序设计等课程的综合实践与应用,同时也为我们今后步入工作岗位打下了一定基础。 3、课程设计重点及内容 本次课程设计重点是培养我们正确应用公式、综合分析和解决问题的能力,以及计算机编程能力。另外它要求我们完成1-2个综合性的结合生产实践的题目。如目前生产实践中经常用到的水准网严密平差及精度评定,边角网(导线)严密平差及精度评定等。此次我所选的课程设计课题是水准网严密平差及精度评定,其具体内容如下: 根据题目要求,正确应用平差模型列出观测值条件方程、误差方程和法方程;解算法方程,得出平差后的平差值及各待定点的高程平差值;评定各平差值的精度和各高程平差值的精度。 具体算例为: 如图所示水准网,有2个已知点,3个未知点,7个测段。各已知数据及观测值见下表(1)已知点高程H1=5.016m ,H2=6.016m (2)高差观测值(m)

测量平差编程

误差理论与测量平差上机指导书 辽宁工程技术大学 测绘与地理科学学院测绘工程系

目录 Visual C++ 6.0开发平台简介 (1) MFC概述 (1) 实验1 矩阵加法与乘法运算 (3) 实验2 矩阵转置与求逆运算 (6) 实验3 误差椭圆元素计算 (13) 实验4 水准网间接平差程序设计 (15)

Visual C++ 6.0开发平台简介 Visual C++提供了一个支持可视化编程的集成开发环境:Visual Studio(又名Developer Studio)。Developer Studio是一个通用的应用程序集成开发环境,它不仅支持Visual C++,还支持Visual Basic,Visual J++,Visual InterDev等Microsoft系列开发工具。Developer Studio包含了一个文本编辑器、资源编辑器、工程编译工具、一个增量连接器、源代码浏览器、集成调试工具,以及一套联机文档。使用Developer Studio,可以完成创建、调试、修改应用程序等的各种操作。 Developer Studio采用标准的多窗口Windows用户界面,并增加了一些新特性,使得开发环境更易于使用,用户很容易学会它的使用方法。 由于Developer Studio是一个可视化的开发工具,在介绍Developer Studio 的各个组成部分之前,首先了解一下可视化编程的概念。可视化技术是当前发展迅速并引人注目的技术之一,它的特点是把原来抽象的数字、表格、功能逻辑等用直观的图形、图象的形式表现出来。可视化编程是它的重要应用之一。所谓可视化编程,就是指:在软件开发过程中,用直观的具有一定含义的图标按钮、图形化的对象取代原来手工的抽象的编辑、运行、浏览操作,软件开发过程表现为鼠标点击按钮和拖放图形化的对象以及指定对象的属性、行为的过程。这种可视化的编程方法易学易用,而且大大提高了工作效率。 Visual C++的集成开发环境Developer Studio提供了大量的实用工具以支持可视化编程特性,它们包括:项目工作区、ClassWizard、AppWizard、WizardBar、Component Gallery等。 MFC概述 MFC是一个编程框架。MFC (Microsoft Foundation Class Library) 中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对SDK来说更为简单的方法。

误差理论与测量平差课程设计任务书、指导书

《误差理论与测量平差》 课程设计任务书 题目:测量控制网严密平差程序设计 时间:12 月9 日至12 月13 日共一周 专业:测绘工程 班级:测绘111-2 学号: 姓名: 指导教师(签字):赵斌臣 院长(签字):王保群

一、设计内容及要求 本设计重点检查同学们利用误差理论与测量平差知识,解决测量控制网平差问题的能力。因此要求同学们任选下面一题独立进行课程设计。 1、水准网严密平差及精度评定 要求:正确应用平差模型列出观测值条件方程、误差方程、法方程和解算法方程,得出平差后的平差值及各待定点的高程平差值,评定各平差值的精度和各高程平差值的精度。 2、边角网(导线)严密平差及精度评定 要求:对存在1-2个结点的导线网采用间接平差模型列出观测值条件方程、误差方程、法方程和解算法方程;正确给出两类观测值的权;得出平差后的平差值及各待定点坐标的平差值,评定各平差值的精度和各坐标的点位精度。 二、设计原始资料 1、水准网严密平差及精度评定示例。 如图所示水准网,有2个已知点,3个未知点,7个测段。各已知数据及观测值见下表(1)已知点高程H1=5.016m H2=6.016m (2)高差观测值(m) 高差观测值(m)

(3)求各待定点的高程;3-4点的高差中误差;3号点、4号点的高程中误差。(提示,本网可采用以测段的高差为平差元素,采用间接平差法编写程序计算。) 2、平面控制网严密平差及精度评定示例。 如图所示控制网中,有 2个已知点,4个未知点,14个方向观测值,3个边长观测值,且方向观测值验前中误差为1.2秒,边长观测值固定误差为0.12分米,边长观测值比例误差为零。各已知数据、观测值见下表。 (1) 已知数据 (2) 方向观测值(D.M.S)

测量平差中的数学公式汇编

测量平差中的数学公式汇编 本节对测量平差中的数学公式进行整理和归纳。其中包含了高等数学、线性代数与概率论和数理统计这三门测量平差中经常出现的数学知识。这些公式是学习测量平差的重要工具,是学习测量平差的必备知识。 2.1高等数学 2.1.1全微分 函数z=f(x, y) 的两个偏导数f'x(x, y), f'y(x, y)分别与自变量的增量△x, △y乘积之和 f'x(x, y)△x + f'y(x, y)△y 若该表达式与函数的全增量△z之差, 当ρ→0时,是ρ( ) 的高阶无穷小, 那么该表达式称为函数z=f(x, y) 在(x, y)处(关于△x, △y)的全微分。 记作:dz=f'x(x, y)△x + f'y(x, y)△y 2.1.2导数常见公式 ① C'=0(C为常数函数) ② (x^n)'= nx^(n-1) (n∈Q*);熟记1/X的导数 ③ (sinx)' = cosx (cosx)' = - sinx (tanx)'=1/(cosx)^2=(secx)^2=1+(tanx)^2 -(cotx)'=1/(sinx)^2=(cscx)^2=1+(cotx)^2

(secx)'=tanx·secx (cscx)'=-cotx·cscx (arcsinx)'=1/(1-x^2)^1/2 (arccosx)'=-1/(1-x^2)^1/2 (arctanx)'=1/(1+x^2) (arccotx)'=-1/(1+x^2) (arcsecx)'=1/(|x|(x^2-1)^1/2) (arccscx)'=-1/(|x|(x^2-1)^1/2) ④(sinhx)'=coshx (coshx)'=sinhx (tanhx)'=1/(coshx)^2=(sechx)^2 (coth)'=-1/(sinhx)^2=-(cschx)^2 (sechx)'=-tanhx·sechx (cschx)'=-cothx·cschx (arsinhx)'=1/(x^2+1)^1/2 (arcoshx)'=1/(x^2-1)^1/2 (artanhx)'=1/(x^2-1) (|x|<1) (arcothx)'=1/(x^2-1) (|x|>1) (arsechx)'=1/(x(1-x^2)^1/2)

误差理论与测量平差基础

《误差理论与测量平差基础》授课教案 2006~2007第一学期 测绘工程系 2006年9月

课程名称:误差理论与测量平差基础 英文名称: 课程编号:?? 适用专业:测绘工程 总学时数: 56学时其中理论课教学56学时,实验教学学时 总学分:4学分 ◆内容简介 《测量平差》是测绘工程等专业的技术基础课,测量平差的任务是利用含有观测误差的观测值求得观测量及其函数的平差值,并评定其精度。 本课程的主要内容包括误差理论﹑误差分布与精度指标﹑协方差传播律及权﹑平差数学模型与最小二乘原理﹑条件平差﹑附有参数的条件平差﹑间接平差﹑附有限制条件的间接平差﹑线性方程组解算方法﹑误差椭圆﹑平差系统的统计假设检验和近代平差概论等。 ◆教学目的、课程性质任务,与其他课程的关系,所需先修课程 本课程的教学目的是使学生掌握误差理论和测量平差的基本知识、基本方法和基本技能,为后续专业课程的学习和毕业后从事测绘生产打下专业基础。 课程性质为必修课、考试课。 本课程的内容将在测绘工程和地理信息系统专业的专业课程的测量数据处理内容讲授中得到应用,所需先修课程为《高等数学》、《概率与数理统计》、《线性代数》和《测量学》等。 ◆主要内容重点及深度 考虑到专业基础理论课教学应掌握“必须和够用”的原则,结合测绘专业建设的指导思想,教学内容以最小二乘理论为基础,误差理论及其应用、平差基本方法与计算方法,以及平差程序设计及其应用为主线。 测量误差理论,以分析解决工程测量中精度分析和工程设计的技术问题为着眼点,在掌握适当深度的前提下,有针对性的加强基本理论,并与实践结合,突出知识的应用。 平差方法,以条件平差和参数平差的介绍为主,以适应电算平差的参数平差为重点。 计算方法,以介绍适应电子计算机计算的理论、方法为主,建立新的手工计算与计算机求解线性方程组过程相对照的计算方法和计算格式。 平差程序设计及其应用,通过课程设计要求学生利用所学程序设计的知识和平差数学模型编制简单的平差程序,熟练掌握已有平差程序的使用方法。

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

《测量平差程序》课程设计 (报告) 学生姓名:罗正材 学号:1108030128 专业:2011级测绘工程 指导教师:肖东升

目录 一、前言 (3) 二、平差程序的基本要求 (3) 三、平差程序模块化 (3)

图1 四、平差中的重要函数 (一)、角度制与弧度制的相互转化 C/C++程序设计中,关于角度的计算以弧度制为单位,而在测量以及具体工作中我们通常习惯以角度制为单位。这样,在数据处理中,经常需要在角度制与弧度制之间进行相互转化。这里,我们利用C/C++数学函数库math.h中的相关函数完成这两种功能。 这里,我们使用double类型数据表示角度制数和弧度制数。例如:123度44分58.445秒,用double类型表示为123.4458445,其中分、秒根据小数位确定。 在角度制与弧度制的转化中,涉及如下图2所示的两个环节。 度.分秒度弧度 图2 1.角度化弧度函数 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的小数部分。 (二)近似坐标计算 在平面网间接平差计算中,近似坐标计算是非常重要的一项基础工作。近似坐标是否计算成功是间接平差是否可以进行的必要条件。 1.两方向交会 已知条件:两个点的近似坐标,这两个点到未知点的方位角,如图3所示 图3两方向交会 根据图4.2,设 1 1 α tg k=, 2 2 α tg k=,则很容易写出 ? ? ? ? ? ? - = - - = B P B P A P A P y y k x x y y k 2 1 整理该式,得两方向交会的的计算公式 ?? ? ? ? ? - - = ?? ? ? ? ? ?? ? ? ? ? - - B B A A P P y x k y x k y x k k 2 1 2 1 1 1 (4.1)对(4.1)式计算,即可得到未知点的近似坐标。应用中需要注意的是,若两方向值相同或相反,则该式无解。 程序中,定义该问题的函数为:int xy0ang(obser &a1,obser &a2) 2.三边交会 如图4所示,为排除两边长交会的二义性,给出如下三边交会的模型,已知条件:三个

测量平差课程设计报告

设计报告 设计名称:测量平差课程设计学院名称:测绘工程学院 专业班级:测绘11-3班 学生姓名:邹云龙 学号: 20110242 指导教师:周秋生 黑龙江工程学院教务处制 2013年6月

注:1、在此页后附实习报告、总结。其内容应包括:实习目的、实习内容及实习结果等项目。 2、此页为封皮,用A4幅面纸正反面打印。 3、实习总结使用A4幅面纸张书写或打印,并附此页后在左侧一同装订。 4、实习成绩以优(90~100)、良(80~89)、中(70~79)、及格(60~69)、不及格(60以下)五 个等级评定。

目录 一、水准网观测精度设计 (4) 二、水准网、测角网、边角网平差计算 (6) 1、水准网平差计算 (6) 2、测角网平差计算 (8) 3、边角网平差计算 (12)

一、设计目的 在学完误差理论与测量平差基础课程后,在掌握了测量数据处理基本理论、基本知识、基本方法的基础上,根据设计任务,熟悉自动平差软件的应用,通过实例计算,提高用电子计算机进行相关测量数据处理的能力,在此基础上通过测量程序设计提高用高级语言进行简单测量程序设计的能力。 二、设计任务 (1)水准网观测精度设计 根据所给控制网的形状和高程平差值的点位中误差要求,推求水准高差观测的精度要求。 (2)利用已有平差软件完成下述平差计算任务 1)熟悉前方交会与后方交会计算 分别自选1至2个前后方交会计算实例进行平差计算,熟悉程序使用方法。 2)水准网平差计算 3)导线网平差计算 4)测角网平差计算 分别自选1个水准网、测角网和边角网计算实例进行平差计算,要求每个学生的计算题目不能重复。 建议使用的数据处理软件:测量控制网自动平差系统,黑龙江工程学院,2002年版;平差易,南方测绘,2002年或2005年版。使用指导书见相应电子版文件。 (3)编制测量计算程序 仿照已有测量程序的设计界面和程序计算管理功能,在测角(测边)前方交会与后方交会计算程序、单一符合、闭合水准网平差计算程序、单一符合、闭合导线平差计算程序设计选题中选择一至两项内容进行程序设计,设计使用的语言可采用VB、C、C#等。参考书可选测绘出版社出版,葛永会编《测量程序设计》,和黑志坚等编著的《测量平差》教材,以及针对所使用语言的相关程序设计书籍。 三、设计内容 (一)、水准网观测精度设计 4、水准网如下图所示,各观测高差的路线长度相同。

测量平差教案

第一章绪论 第一节观测误差 一、观测值中为什么存在观测误差? 观测条件对观测成果产生影响,不可避免产生观测误差。有观测就有误差的结论。 二、观测误差的计算 给出观测误差计算的纯量表达式和矩阵表达式。 三、观测误差的分类及其处理 1、分类 给出误差分类的表达式,粗差、系统误差和偶然误差的定义。结合测角、测距和水准测量的全过程,让学生分析哪些因素引起的误差属于粗差,那些哪些因素引起的误差属于系统误差,那些哪些因素引起的误差属于偶然误差。 2、处理 总结粗差、系统误差和偶然误差的处理方法,让学生举例说明测量上哪些操作是为了消除系统误差影响的,那些计算改正为了消除系统误差影响的。 四、测量平差的任务 根据一系列含有观测误差的观测值求待定量的最佳估值。 第二节测量平差学科的研究对象 研究对象为含有观测误差的各类观测值。举例说明。 第三节测量平差的简史和发展 一、测量平差理论的发展 1、经典平差理论的发展 主要介绍高斯创立最小二乘原理和马尔可夫创立高斯-马尔可夫平差模型的历史背景和过程。 2、近代平差理论的发展 主要介绍二十世纪四十年代以后出现的近代平差理论,结合导线网平差和我国南极考察、建站,重点介绍方差分量估计和秩亏网平差的理论、方法及其用途。 二、平差计算方法的发展 1、手算阶段

2、半自动平差阶段 3、全自动平差阶段 第四节测量平差的任务和内容 一、任务 讲授测量平差的基本理论和基本方法,为进一步学习和研究测量平差打下深入的基础。 二、内容 课本各章的内容。 小结:本节介绍了观测条件的定义,观测条件与观测误差的关系,观测误差的定义、处理,以及测量平差的发展概况。 第二章误差分布与精度指标 第一节正态分布 一、一维正态分布 绘一维正态分布图,列出分布函数,讲解,强调两个分布参数的含义。 二、n维正态分布讲解 绘n维正态分布图,列出分布函数,讲解,强调两个分布参数的含义。 第二节偶然误差的规律性 一、偶然误差分布 1、描述误差分布的三种方法 (1)列表法(通过实例列表讲解) (2)绘图法(通过实例绘图讲解) (3)密度函数法(通过实例绘图讲解) 二、偶然误差的分布特性 (1) 在一定的观测条件下,误差的绝对值不会超过一定的限值。(界限性)(2) 绝对值较小的误差比绝对值较大的误差出现的概率要大。(小误差占优性)(3) 绝对值相等的正负误差出现的概率相等。(对称性)三、两个重要概念 (1) 由偶然误差的界限性,可以依据观测条件来确定误差限值(2) 由偶然误差的对称性知观测量的期望值就是其真值。 小结:偶然误差有其统计规律,研究偶然误差的分布规律是为了更好的研究偶然误差的处理问题。

误差理论与测量平差课程设计报告

n 目录 一、目录 ----------------------------1 二、序言 ---------------------------- 2 三、设计思路------------------------ 3 四、程序流程图---------------------- 4 五、程序及说明---------------------- 5 六、计算结果-----------------------12 七、总结 --------------------------- 15 第二部分序言 1、课程设计的性质、目的和任务 误差理论与测量平差是一门理论与实践并重的课程,其课程设计是测量数据处理理论学习的一个重 要的实践环节,它是在我们学习了专业基础课“误差理论与测量平差基础”课程后进行的一门实践课程。其 目的是增强我们对误差理论与测量平差基础理论的理解,牢固掌握测量平差的基本原理和基本公式,熟悉测量数据处理的基本技能和计算方法,灵活准确地应用于解决各类数据处理的实际问题,并能用所学的计算机理论知识,编制简单的计算程序。 2、误差理论与测量平差课程和其它课程的联系和分工 这次课程设计中所用的数学模型和计算方法是我们在误差理论与测量平差课程中所学的内容,所使用的 C 程序语言使我们在计算机基础课程中所学知识。误差理论与测量平差课程设计是测量平差和计算机程 序设计等课程的综合实践与应用,同时也为我们今后步入工作岗位打下了一定基础。 3、课程设计重点及内容 本次课程设计重点是培养我们正确应用公式、综合分析和解决问题的能力,以及计算机编程能力。 另外它要求我们完成1-2 个综合性的结合生产实践的题目。如目前生产实践中经常用到的水准网严密平差 及精度评定,边角网(导线)严密平差及精度评定等。此次我所选的课程设计课题是水准网严密平差及精度 评定,其具体内容如下: 根据题目要求,正确应用平差模型列出观测值条件方程、误差方程和法方程;解算法方程,得出平差后 的平差值及各待定点的高程平差值;评定各平差值的精度和各高程平差值的精度。 具体算例为: 如图所示水准网,有 2 个已知点, 3 个未知点,(1)已知点高程H1=5.016m , H2=6.016m 7 个测段。各已知数据及观测值见下表( 2)高差观测值 (m)

测绘程序设计(整理)

1数据处理(平差程序)的基本要求(1)程序逻辑结构简单,清晰易读,符合结构化程序设计要求,便于扩展;(2)运算速度快,占用内存小,内外存之间的交换不宜过于频繁;(3)数学模型及计算方法正确、先进,计算结果精度高;(4)适应性强,便于移植,充分考虑各种可能形式,尽量满足不同要求与需要;(5)方便用户,操作简便。数据输入与用户作业方式与习惯相统一,输出明了、齐全;尽量减少手工处理工作量,操作简便;人机交互性要强。 2数据处理程序的设计步骤:结构总体设计:基本功能、模块化;数据结构设计:概念模型、结构体、模块化;确定软件各组成部分的算法及数据组织:根据概念模型需要的处理过程与功能展开。分析模块之间的关联关系;选定某种表达式来描述各种算法:伪代码;代码编写:C 语言源程序编写;程序调试:模块调试与软件调试;编写用户使用说明:功能、结构;数据格式与处理过程 3模块:执行某一特定任务的数据结构和程序代码。模块=数据+函数(C 语言中每一个模块对应一个函数function ) 模块化:将待开发的软件分解成若干个小的模块,以使每个模块可以独立地开发、测试,最后组装成完整的软件。 软件模块化的目的在于使软件的结构清晰,降低软件开发难度、容易阅读理解、测试和修改。 划分模块的原则:功能分解:大事化小,小事化了.按功能划分模块,要求每个模块包含单一、具体的功能.使每个模块独立性好,这就要求一个模块具有较强的内聚性和较弱的耦合性。方便于模块的独立开发、调试,同时,使模块具有很好的移植性。 划分模块时,应当尽量减小模块间的耦合性,例如尽可能地使用局部变量就可以减小模块之间的耦合性。采用层次结构进行分析(方法):(1)最上层模块是对系统整体功能的抽象;(2)下层模块是对上层模块的逐步细化、分解、描述;(3)重复(2),得出便于实现的独立性好的模块,直到下层模块不可再分为止.在最下层,对“怎么做”作出精确的描述。 函数:实现某种模块算法的程序代码 C 语言函数:是C 语言源程序的基本模块,通过对函数模块的调用实现特定的功能。函数可以分为库函数和用户定义函数 库函数:由C 语言系统提供的实现基本操作和处理过程的函数,用户无须定义,也不必在程序汇总作类型说明,只需在程序前包含该函数原型的头文件即可在程序中直接调用 用户定义函数:将需要处理的问题按功能进行分块,每个模块处理一个特定的具体问题或过程,用户按特定的处理需要编写的函数。不仅在程序中定义函数本身,在主调函数模块中还必须对被调函数进行类型说明,然后才能使用。 C 语言结构体是一个可以包含不同数据类型的结构,可以由用户定义的数据类型。结构体是对软件从数据的角度进行分块的方法。 结构体好处:用结构体对数据进行正确分块后,软件的数据空间会非常清晰,明了和完整,由于问题空间概念本身具有的独立性,从而也可以保证数据在程序处理中的正确性和安全性。另外,使用结构体,使得问题空间过程和功能分析更加简单,明确,对相关结构体的处理也可以满足功能函数之间独立性的要求。 ??? ??????????模块的功能用的其他模块),引用的全局变量,调模块接口(输入、输出外部特征序代码实现模块具体功能的程模块的局部数据内部特征模块的性质

测量平差基础名词解释

第一章 1、观测误差产生的原因很多,概括起有以下三种:测量仪器(感觉器官的局限、技术水平、 工作态度)、观测者(具有一定限度的准确度)、外界条件(温度、湿度、风力、大气折光等)。 2、偶然误差:在相同的观测条件下作一系列的观测,如果误差在大小和符号上都表现出偶然性,即从单个误差看,该列误差的大小和符号没有规律性,但就大量误差的总体而言,具有一定的统计规律,这种误差称为偶然误差,也叫随机误差。 采取措施:处理带有偶然误差的观测值,就是本课程的内容,也叫做测量平差。 3、系统误差:在相同的观测条件下作一系列的观测,如果误差在大小、符号上表现出一致性,或者在观测过程中按一定的规律变化,或者为一常数,这种误差就称为系统误差。 消除或削弱的方法:采取合理的操作程序(正、倒镜,中间法,对向观测等);用公式改正,即加改正数。 4、粗差:粗差即粗大误差,或者说是一种大量级的观测误差,是由于测量过程中的差错造成的。 发现、剔除粗差的方法:进行必要的重复测量或多余观测,采用必要而又严格的检核、验算等,发现后舍弃或重测。 5、测量平差两大任务:(1)、求平差值(求未知量的最佳估值);(2)、精度评定(评定测量成果精度)。 6、测量平差 7 8 9、真值:任一观测量,客观上总是存在一个能代表其真正大小的数值,这一数值就称为该观测值真值 10、真误差:真值与观测值之差 11、残差(改正数):改正数(V)= 平差值()- 观测值() 12、偶然误差的四个统计特性: (1)一定观测条件下,误差绝对值有一定限值(有限性); (2)绝对值较小的误差比绝对值较大的误差出现概率大(渐降性); (3)绝对值相等的正负误差出现概率相同(对称性); (4)偶然误差的数学期望为零(抵偿性) 13、平均误差:在一定的观测条件下,一组独立的偶然误差绝对值的数学期望,称为平均误差 14、或然误差:误差出现在(- ρ,+ ρ)之间的概率等于1/2,即 15、极限误差:通常将三倍(或两倍)的中误差作为极限误差,即 16、相对中误差的定义是:中误差与观测值之比,即 17、精度:是指误差分布的密集或离散程度,即:L与E(L)接近程度。 18、准确度:又名“准度”,是指随机变量X的真值与其数学期望之差,(是衡量系统误差大小程度的指标)

测量平差课程设计

课程设计报告 设计题目:“误差理论与测量平差基础”课程设计专业:测绘工程 班级学号:xxx 姓名:xx 指导教师:xx 起屹日期:2016年1月11日~2016年1月15日测绘科学与技术学院 1.概述

(1)课程设计名称、目的和要求。 (2)工程和作业区概况、平面控制网布设情况和已有资料的利用情况。(3)课程设计完成情况。 2.平差方案的技术设计 (1)平差原理。 (2)技术要求。 (3)平差模型的选择和探讨。 (4)计算方案的确定及依据。 (5)计算方法和程序设计。 3.平差计算的过程和质量评价 (1)平差方案执行情况。 (2)计算过程说明。 (3)计算过程出现的问题、处理方法和效果。 (4)控制网测量数据的质量评价。 4.课程设计成果及体会

(1)平差成果。 (2)课程设计效果、经验、体会、设想和建议。 (3)上交成果和资料的主要内容、形式和清单。 1. 2.概述 (1) (2)课程设计名称、目的和要求。 名称: 南京工业大学校园数字化测图平面控制网的平差计算 目的: 通过本次课程设计加深对“误差理论与测量平差基础”基本知识的理解,增强应用测量平差原理对测量数据进行处理的能力,学会对实际工程的有关资料进行计算分析和设计的方法,提高独立分析问题、解决问题的能力。 要求: 认真复习“误差理论与测量平差基础”中的有关知识,收集测区已有的各种资料,了解工程概况,查阅相关平差资料,分析比较各种平差模型,写出你所选用的平差方案的理由。 各种数据的计算应运用Excel和MATLAB完成,计算过程要写入报告中,并尽可能利用Excel表格或编写MATLAB函数完成各重复计算,Excel表格或编写的MATLAB函数要写入报告中。

全站仪测量闭合导线如何平差计算出各点坐标

如果你想学习导线(闭合、符合、支导线),我可以传份学习资料给你, 如果要严密平差建议用清华山维测量平差软件 如果简单平差可以先推算方位角闭合差,然后将闭合差平均分配到每站测的角度上进行角度平差。然后用平差后的角度推算坐标闭合差,得到的x和y的闭合差平均分配到每一站的坐标上即可 ,求得导线绝对闭合差,在除以导线全长得到导线全长相对闭合差 导线平差主要是看方向中误差和导线全长闭合差及导线全长相对闭合差 工程测量闭合导线差怎么计算的??? 闭合导线平差手算简单来讲分两步: 1.先计算出导线闭合环内角和,它与理论值(n-2)x180相减产生的闭合差平均分配到各个转角。使修正后的内角和等于理论值。 2.根据已知坐标方位角(已知两点坐标可求得坐标方位角)与修正后的各个转角值求出导线边坐标方位角。再通过方位角、导线边的长度计算出各个导线边产生的坐标增量。算到起算点后,X、Y 增量和的理论值均应为0。但因观测误差,坐标增量和往往不等于0。将偏差值平均分配到各个点位上,以消除偏差。 最后,用起算坐标依次加上修正后的坐标增量,就可以得到平差后各点的坐标值了。 从一个已知点出发,在连续测量多个点位后再到原出发点,这就叫导线的闭合,因为误差的存在,在闭合时有可能产生误差,这时你需要将误差以每根导线长度为权重进行平差。 看到百笑狂生的回答了,忍不住想说几句,这个什么“原位往复闭合”、“开路测量闭合”等等,你是从哪儿学来的概念?反正在测量这个专业里是没有这个概念的,楼主所说的导线测量,是建立平面控制网的一种最常见的测量方法,下面我简单介绍一下: 一、导线进行测量共有三种方法: 1、从一个已知点出发,依次对各个目标点进行测量,这种测量方式,因为累积误差的原因,在精度要求较高的场合一般不采用,也谈不上什么闭合不闭合的问题; 2、从一个已知点出发,依次对各个目标点进行测量后,再回到这个已知点,也就是说,将已知点做为测量的最后一个点也进行测量。如果没有误差出现,那么最后一个点的测量结果应与已知点相同,这就叫导线的闭合。如果有误差你再根据规范要求进行平差; 3、还有一种情况便是从一个已知点出发,依次对各个目标点进行测量后,最后回到另一个已知点,这种情况的闭合叫“导线闭合于某已知点”,由此可见,这个测量结果还包含了原已知点的误差,因此其精度不及前者,但有时限于测量对象分布条件的限制,可能也得采用。 上述测量方法,同时适用于水准测量,水准测量同样也采用导线法,但所采用的仪器不同(以前测量时是分开的,现在因为全站仪的出现已经同步进行了)。二、百笑狂生所谓的第一种测量方法,类似于导线中某个点的测量程序,对某个

导线测量平差教程

计算方案的设置 一、导线类型: 1.闭、附合导线(图1) 2.无定向导线(图2) 3.支导线(图3) 4.特殊导线及导线网、高程网(见数据输入一节),该选项适用于所有的导线,但不计算闭合差。而且该类型不需要填写未知点数目。当点击表格最后一行时自动添加一行,计算时删除后面的空行。 5.坐标导线。指使用全站仪直接观测坐标、高程的闭、附合导线。 6.单面单程水准测量记录计算。指仅进行单面读数且仅进行往测而无返测的水准测量记录计算。当数据中没有输入“中视”时可以用作五等、等外水准等的记录计算。当输入了“中视”时可以用作中平测量等的记录计算。 说明:除“单面单程水准测量记录计算”仅用于低等级的水准测量记录计算外,其它类型选项都可以进行平面及高程的平差计算,输入了平面数据则进行平面的平差,输入了高程数据则进行高程的平差,同时输入则同时平差。如果不需进行平面的平差,仅计算闭、附合高程路线,可以选择类型为“无定向导线”,或者选择类型为“闭附合导线”但表格中第一行及最后一行数据(均为定向点)不必输入,因为高程路线不需定向点。 二、概算 1.对方向、边长进行投影改化及边长的高程归化,也可以只选择其中的一项改正。 2.应选择相应的坐标系统,以及Y坐标是否包含500KM。选择了概算时,Y坐标不应包含带号。

三、等级与限差 1.在选择好导线类型后,再选择平面及高程的等级,以便根据《工程测量规范》自动填写限差等设置。如果填写的值不符合您所使用的规范,则再修改各项值的设置。比如现行的《公路勘测规范》的三级导线比《工程测量规范》的三级导线要求要低一些。 2.导线测量平差4.2及以前版本没有设置限差,打开4.2及以前版本时请注意重新设置限差。 四、近似平差与严密平差的选择及近似平差的方位角、边长是否反算 1.近似平差:程序先分配角度闭合差再分配坐标增量闭合差,即分别平差法。 2.严密平差:按最小二乘法原理平差。 3.《工程测量规范》规定:一级及以上平面控制网的计算,应采用严密平差法,二级及以下平面控制网,可根据需要采用严密或简化方法平差。当采用简化方法平差时,应以平差后坐标反算的角度和边长作为成果。 《城市测量规范》规定:四等以下平面控制网可采用近似平差法和按近似方法评定其精度。......采用近似平差方法的导线网,应根据平差后坐标反算的方位角与边长作为成果。 因此,严密平差适用于各种等级的控制网,而近似平差适用于较低等级。当采用近似平差时,应进行方位角、边长反算。 显示角度改正前的坐标闭合差:勾选此项后,程序在“平面计算表”备注栏内显示角度改正前的坐标闭合差,否则显示角度改正后的坐标增量闭合差。为了以示区别,角度改正前的坐标闭合差以Wx、Wy、Ws表示,角度改正后的坐标增量闭合差以fx、fy、fs表示。 五、近似平差设置 1.方位角、边长反算:根据近似平差后的坐标反算方位角、边长、角度等。反算后的方位角、边长、角度等是平差后的最终值,可以作为最终成果使用,否则仅为平差计算的中间结果,不应作为最终成果使用。反算与不反算表格形式是不一样的。注意:反算后,按最终的角度值

测量平差编程实习心得体会

测量平差编程实习心得体会导语:熟练掌握一门或多门编程语言,会让我们处理专业问题时更加得心应手。以下小编为大家介绍测量平差编程实习心得体会文章,仅供参考! 测量平差编程实习心得体会测量是一项务实求真的工作,半点马虎都不行,在测量实习中必须保持数据的原始性,这也是很重要的。为了确保计算的正确性和有效性,必须得反复核对各个测点的数据是否正确。我在测量中不可避免的犯下一些错误,比如读数不够准确,气泡没居中等等,都会引起一些误差。 因此,我在测量中内业计算和测量同时进行,这样就可以及时发现错误,及时纠正,同时也避免了很多不必要的麻烦,节省了时间,也提高了工作效率。测量也是一项精确的工作,通过测量学的学习和实习,在我的脑海中形成了一个基本的测量学的轮廓。测量学内容主要包括测定和测设两个部分,要完成的任务在宏观上是进行精密控制,从微观方面讲,测量学的任务为工程测量实习心得测量是一项务实求真的工作,半点马虎都不行,在测量实习中必须保持数据的原始性,这也是很重要的。为了确保计算的正确性和有效性,必须得反复核对各个测点的数据是否正确。我在测量中

不可避免的犯下一些错误,比如读数不够准确,气泡没居中等等,都会引起一些误差。因此,我在测量中内业计算和测量同时进行,这样就可以及时发现错误,及时纠正,同时也避免了很多不必要的麻烦,节省了时间,也提高了工作效率。 测量也是一项精确的工作,通过测量学的学习和实习,在我的脑海中形成了一个基本的测量学的轮廓。测量学内容主要包括测定和测设两个部分,要完成的任务在宏观上是进行精密控制,从微观方面讲,测量学的任务为按照要求测绘各种比例尺地形图;为各个领域提供定位和定向服务,建立工程控制网,辅助设备安装,检测建筑物变形的任务以及工程竣工服务等。而这一任务是所有测量学的三个基本元素的测量实现的:角度测量、距离测量、高程测量。在这次实习中,我学到了测量的实际能力,更有面对困难的忍耐力。首先,是熟悉了水准仪、光学经纬仪、全站仪的用途,熟练了水准仪、全站仪的使用方法,掌握了仪器的检验和校正的方法;其次,在对数据的检查和校正的过程中,明白了各种测量误差的来源,其主要有三方面: 1、仪器误差、外界影响误差(如温度、大气折射等)、观测误差。了解如何避免测量结果误差,最大限度的就是减少误差的出现,即要做到在仪器选择上要选择精度较高的合适仪器。

测量平差课程设计报告精编WORD版

测量平差课程设计报告精编W O R D版 IBM system office room 【A0816H-A0912AAAHH-GX8Q8-GNTHHJ8】

东南大学交通学院 测量平差课程设计报告 设计题目: 专业:测绘工程专业 班级: 学号: 姓名: 指导老师: 日期: 目录 1. 课程设计目的2 2. 课程设计任务2 3. 课程设计重点以及基本要求2 4. 课程设计具体要求 2 5. 课程设计案例及分析3 6. 课程设计展示成果10

8. 课程设计心得体会 17 1、课程设计目的 误差理论与测量平差是一门理论与实践并重的课程,其课程设计是测量数据处理理论学习的一个重要的实践环节,它是在我们学习了专业基础课“误差理论与测量平差基础”课程后进行的一门实践课程。其目的是增强我们对误差理论与测量平差基础理论的理解,牢固掌握测量平差的基本原理和基本公式,熟悉测量数据处理的基本技能和计算方法,灵活准确地应用于解决各类数据处理的实际问题,并能用所学的计算机理论知识,编制简单的计算程序。 2、课程设计的任务 (1)该课的课程设计安排在理论学习结束之后进行的,主要是平面控制网和高程控制网严密平差。 (2)通过课程设计,培养学生运用本课程基本理论知识和技能,分析和解决本课程范围内的实际工程问题的能力,加深对课程理论的理解与应用。 (3)在指导老师的指导下,要求每个学生独立完成本课程设计的全部内容。 3、课程设计重点以及基本要求 课程设计要求每一个学生必须遵守课程设计的具体项目的要求,独立完成设计内容,并上交设计报告。在学习知识、培养能力的过程中,树立严谨、求实、勤奋、进取的良好学风。课程设计前学生应认真复习教材有关内容和《测量平差》课程设计指导书,务必弄清基本概念和本次课程设计的目的、要求及应注意的事项,以保证保质保量的按时完成设计任务。

相关文档
最新文档