《误差理论课程设计指导书》.docx

上传人:b****6 文档编号:8448463 上传时间:2023-01-31 格式:DOCX 页数:12 大小:358.96KB
下载 相关 举报
《误差理论课程设计指导书》.docx_第1页
第1页 / 共12页
《误差理论课程设计指导书》.docx_第2页
第2页 / 共12页
《误差理论课程设计指导书》.docx_第3页
第3页 / 共12页
《误差理论课程设计指导书》.docx_第4页
第4页 / 共12页
《误差理论课程设计指导书》.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

《误差理论课程设计指导书》.docx

《《误差理论课程设计指导书》.docx》由会员分享,可在线阅读,更多相关《《误差理论课程设计指导书》.docx(12页珍藏版)》请在冰豆网上搜索。

《误差理论课程设计指导书》.docx

《误差理论课程设计指导书》

 

《误差理论与测量平差基础课程设计》

 

 

编写:

张建霞

闽江学院地理科学系

2015年3月

 

适用专业:

测绘工程(6、7)学时数:

1周

一、课程设计的性质、目的和任务

   《误差理论与测量平差课程设计》是完成测量平差基础课程教学后进行的综合应用该课程基本知识和技能的一个教学环节,通过课程设计培养学生解决生产实际问题的能力和所学基本知识的综合应用能力。

二、课程设计的基本要求

1.巩固和加深课堂所学理论知识,培养学生理论联系实际、实际动手能力;

2.熟练掌握平差编程语言的使用;

3.掌握利用条件平差和间接平差进行平差实例计算。

三、课程设计主要内容与安排

利用VB可视化编程软件并结合Matlab软件实现平差中条件平差和间接平差的程序编写,并通过水准测量实例验证所编写程序的正确性。

基本内容与要求如下:

1.条件平差原理与计算步骤;

2.间接平差原理与计算步骤;

3.条件平差的算法流程;

4.间接平差的算法流程;

5.条件平差与间接平差编程实现

6.水准平差+GPS平差实例验证程序的正确性。

四、进度安排

序号

设计主要内容

学时分配

1

VB语言熟悉

1天

2

Matlab编程熟悉

1天

3

条件平差与间接平差理论与算法学习

1天

4

水准网平差编程实现(条件平差与间接平差)+GPS平差

1天

5

设计报告编写与成果制作

1天

五、课程设计所需的仪器设备

1、具备容纳60人以上的实验机房

2、每台电脑上需配备VB6.0软件以及Matlab软件

六、课程设计考核方式

成绩按百分制记载。

评定学生成绩主要依据以下几项:

1.平时成绩。

主要包括:

出勤率、态度、是否遵守学校及教师所规定的各项纪律等。

该项总分为30分。

2.报告成绩。

主要包括:

报告的编写格式和内容是否符合要求,分析问题、解决问题的能力及有无独特见解,是否工整清晰,数据计算是否正确等。

该项总分为40分。

3.考核成绩。

使用软件的编程能力。

主要包括:

对理论知识的掌握程度,将所学理论用计算机编程语言加以编程实现。

该项总分为30分。

七、参考资料

   《误差理论与测量平差基础》,武汉大学出版社,2003

 

附录一:

平差课程设计主要操作内容

一、vb编程学习

1、启动VisualBasic6.0,创建一个“标准EXE”类型的应用程序,要求:

在屏幕上显示“欢迎学习VisualBasic”,并在“请输入你的姓名”标签后的文本框Text1中输入姓名;单击“你输入的姓名是”按钮,在Label3标签显示在文本框Text1输入的姓名。

程序运行效果如图示。

程序以Sy1-1.frm和Sy1-1.vbp为文件名保存在外存上。

属性设置:

Label1的字体:

隶书,字号:

二号。

Label2的字体:

楷体,有下划线。

Label3有边框线。

其它参见图。

2、创建一个工程,由3个窗体组成。

Form1用于输入用户名和口令,当输入正确时单击“确定”按钮显示Form2,当输入出错时则显示Form3,单击“退出”按钮结束程序;Form2中用标签显示系统日期和时间(用now函数),单击“返回”按钮回到Form1;Form3为退出窗体,单击窗体则结束程序。

3、设计一个窗体,输入两个数求它们的和、差、积、商。

【1】上机验证并分析结果:

1、设a=2,b=3,c=4,d=5,表达式a>bandc<=dor2*a>c的值是_____________。

2、设a=2,b=3,c=4,d=5,表达式3>2*bora=candb<>corc>d的值是_______。

3、设a=2,b=3,c=4,d=5,表达式nota<=cor4*c=b^2andb<>a+c的值是_____。

4、执行语句Printchr$(65)输出结果是______。

5、执行下列语句,a$=”Good”

b$=”Morning”

printa$+b$

printa$&b$输出结果是__________、_________。

6、执行下列语句,写出结果

print“abcd”&“1234”,“abcd”+”1234”输出结果是__________。

print“abcd”&1234,”abcd”+1234输出结果是__________。

print“12”&34,”12”+34输出结果是__________。

print12&34,12+34输出结果是__________。

print“ab”&true,”ab”+true输出结果是__________。

print“12”&false,”12”+false输出结果是__________。

print12&false,12+false输出结果是__________。

7、执行下列语句,s$=”ABCDEFGHIJK”

printleft$(s$,4)

printright$(s$,4)输出结果是__________、__________。

8、执行下列语句,s$=”ABCDEFGHIJK”

printmid$(s$,3,4)

printlen(s$)输出结果是___________、__________。

9、执行下列语句,s$=”ABCDEFGHIJK”

printinstr(s$,”efg”)

printlcase$(s$)输出结果是__________、__________。

10、执行下列语句,printday(now)

printmonth(now)

printyear(now)

printweekday(now)输出结果是_____、_____、_____、______。

11、执行语句printint(12345.6789*100+0.5)/100的输出结果是__________。

12、执行语句printint(-12345.6789*100+0.5)/100的输出结果是__________。

13、执行语句printfix(12345.6789*100+0.5)/100的输出结果是__________。

14、执行语句printfix(-12345.6789*100+0.5)/100的输出结果是_________。

15、执行下列语句,写出输出结果:

PrintAbs(-3.9),Fix(-3.9),Int(-3.9),Round(-3.9)输出结果:

____、____、____、____。

PrintExp(5),Log(5)输出结果:

____、____。

PrintSqr(256)输出结果:

____。

PrintAsc(”d”),Chr(100),Asc(“ASD”)输出结果:

____、____、____。

PrintUcase(“aBcDef”),Lcase(“aBcDef”)输出结果:

____、____。

PrintStr(12345),Val(“12.3AB45”),Str(-123.45),Val(“asd123.5”)

输出结果:

____、____、____、____。

PrintLen(“12VB学习!

”)输出结果:

____。

PrintReplace(“我是教师你是学生”,”教师”,”学生”)输出结果:

____。

PrintString(9,”我喜欢VB”)输出结果:

____。

【2】编写简单应用程序

1、每单击窗体一次,就能产生1个100到200之间的随机整数,并在窗体上输出。

2、从键盘上输入4个数,编写程序,计算并输出这4个数的和及平均值。

通过inputbox函数输入数据,在窗体上显示和及平均值。

3、通过键盘任意输入两个数,对调后输出。

【3】数组与矩阵

1、任意输入10个数,按从大到小排列。

2、任意建立一个二维数组,求数组中最大元素值和所在下标。

3、任意建立二维数组,求每行元素的和。

4、任意建立二维数组,求各行最大值之和。

5、输出4*4阶矩阵的主对角线元素之和。

6、计算4*4阶矩阵的周边元素值之和。

7、录入矩阵A(2*2)和矩阵B(2*3),求C=A*B

二、平差编程

1、求矩阵A(3×4)与矩阵B(4×6)的乘积。

2、求矩阵A(5×5)的转置。

3、以矩阵A(5×5)的下三角元素为基础,将矩阵A变为对称阵。

4、编程实现教材(P78)例题5-2的条件平差结果,要求如下:

(1)通过inputbox函数输入已知点A、B的高程值。

(2)通过文本框(text)接收系数矩阵A和协因素阵Q,通过inputbox函数录入常数项矩阵W。

(3)对方阵Naa求逆通过编程实现。

(4)界面设计如下:

 

矩阵求逆程序示例:

1.Dimn%,a()

2.PrivateSubForm_Load()

Me.Top=800:

Me.Left=800

EndSub

3.PrivateSubLabel1_Click()

c=1

4.Fori=1Ton

 Forj=1Ton

 a(i,j)=Val(Text1(j+(i-1)*n))

Nextj,i

Fori=1Ton

 Forj=n+1To2*n

 Ifi+n=jThen

  a(i,j)=1

 Else

  a(i,j)=0

 EndIf

Nextj,i

Calltxjz(a(),n,2*n)

Callzjjz(a(),n,2*n)

Fori=1Ton

 Forj=n+1To2*n

 Text1(j+(i-1)*n-n)=Format(a(i,j),"0.#####")

Nextj,i

 

EndSub

5.PrivateSubLabel2_Click()

ForEachxInText1

Ifx.Index<>0ThenUnloadx

Nextx

sta:

6.n=Val(InputBox("请你输入方阵的介数"))

Ifn>10.5Orn<0.8ThenMsgBox("请你输入不大于十的正整数"):

GoTosta

 Scale(0,0)-(n+2,n+2)

 ReDima(1Ton,1To2*n)

7.Fori=1Ton

 Forj=1Ton

 LoadText1(j+(i-1)*n)

 Text1(j+(i-1)*n).Visible=True

 Text1(j+(i-1)*n).Top=i

 Text1(j+(i-1)*n).Left=j

Nextj,i

8.EndSub

9. Subtxjz(a(),m%,n%)'将矩阵化为阶梯型矩阵

10.i%=1:

j%=1

Do

 Fork=iTom

 Ifa(k,j)<>0Then

  Forl=jTon

   b=a(k,l)

   a(k,l)=a(i,l)

   a(i,l)=b

  Nextl

  Forl=j+1Ton

   Forh=i+1Tom

    a(h,l)=a(h,l)-a(i,l)*a(h,j)/a(i,j)

  Nexth,l

  Forl=i+1Tom

   a(l,j)=0

  Nextl

  i=i+1

  ExitFor

  EndIf

  Nextk

 j=j+1

LoopUntili>=mOrj>=n+1

EndSub

Subzjjz(a(),m%,n%)'将梯形矩阵化为行最简型矩阵

 i%=1:

j%=1

 Do

  Fork=mToiStep-1

   Ifa(k,j)<>0Then

    b=a(k,j)

    Forl=jTon

     a(k,l)=a(k,l)/b

    Nextl

    Forl=j+1Ton

     Forh=1Tok-1

      a(h,l)=a(h,l)-a(h,j)*a(k,l)

     Nexth,l

     Forl=1Tok-1

      a(l,j)=0

     Nextl

     i=i+1

     ExitFor

    EndIf

   Nextk

   j=j+1

  LoopUntili>=m+1Orj>=n+1

 EndSub

11.Submain()

DimciAsByte,cjAsByte,iAsByte,jAsByte,nAsByte'循环,统计变量

Dima(2,2)AsSingle'矩阵数组

Dimb(2,2)AsSingle'逆阵数组

Dimt(3)AsSingle'余子式数组

DimrValueAsSingle'矩阵值变量

'初始矩阵

a(0,0)=1:

a(0,1)=-1:

a(0,2)=3

a(1,0)=2:

a(1,1)=-1:

a(1,2)=4

a(2,0)=-1:

a(2,1)=2:

a(2,2)=-4

Debug.Print"原始矩阵为:

"

Fori=0To2

Forj=0To2

Debug.Printa(i,j),

Nextj

Debug.Print

Nexti

'求伴随阵

Forci=0To2

Forcj=0To2

'求余子式

n=0

Fori=0To2

Forj=0To2

Ifi<>ciAndj<>cjThent(n)=a(i,j):

n=n+1

Nextj

Nexti

b(cj,ci)=((-1)^(ci+cj))*(t(0)*t(3)-t

(1)*t

(2))

Nextcj

Nextci

'求矩阵的值

rValue=0

Fori=0To2

rValue=rValue+a(i,0)*b(0,i)

Nexti

IfrValueThen'逆阵存在

'求矩阵的逆阵

Debug.Print"逆阵为:

"

rValue=1/rValue

Fori=0To2

Forj=0To2

b(i,j)=b(i,j)*rValue

Debug.Printb(i,j),

Nextj

Debug.Print

Nexti

Else'逆阵不存在

Debug.Print"逆阵不存在!

"

EndIf

EndSub

三、使用Matlab间接平差

1、使用Matlab实现教材P77例题5-1的平差计算

2、使用Matlab实现教材P157例题7-14的平差计算

附录二:

课程设计报告编写提纲

一、目的

通过课程设计,掌握平差的基本原理、主要平差方法,并学会利用所学理论与方法解决实际测量中的平差问题。

二、设计主要内容

利用VB可视化编程软件并结合Matlab软件实现平差中条件平差和间接平差的程序编写,并通过水准测量+GPS平差实例验证所编写程序的正确性。

三、程序设计的平差原理与步骤

1条件平差原理与计算步骤

…………….

2间接平差原理与计算步骤

…………….

四、程序设计的算法流程

1条件平差

…………….

2间接平差

…………….

五、程序编写界面与代码

界面参考如下:

(利用多窗体form1、form2、form3...)

 

 

间接平差界面在此略

程序代码如下:

...................

六、平差算例

1条件平差计算过程与结果

...............

2间接平差计算过程与结果

...............

GPS平差只用间接平差法,见课本P158

七、程序正确性验证

1条件平差程序验证

...............(此部分内容应包含程序运行过程与运行结果的相关抓屏以及所产生的结果文件)

2间接平差程序验证

...............(此部分内容应包含程序运行过程与运行结果的相关抓屏以及所产生的结果文件)

八、结论与总结

...............(此部分内容应包含程序验证的结论以及程序中的不足与问题分析等内容)

九、心得与体会

...............

 

(完)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 院校资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1