测绘工程专业测量平差课程设计.doc_第1页
测绘工程专业测量平差课程设计.doc_第2页
测绘工程专业测量平差课程设计.doc_第3页
测绘工程专业测量平差课程设计.doc_第4页
测绘工程专业测量平差课程设计.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

测绘工程专业测量平差课程设计 学号: 班级: 2010级测绘工程1班姓名: 日期 : 2012-7-12中文名称测量平差课程设计英文名称surveying adjustment course design适用专业测绘工程时间安排第4学期先修课程误差理论与测量平差基础、测量平差程序设计指导书名称测量平差课程设计指导书一、目的通过对测量数据的误差处理,增强学生对误差理论与测量平差基础课程的理解,使学生牢固掌握测量数据处理的基本原理和公式,熟悉测量数据处理的基本技能和计算方法。要求学生综合运用测绘知识、测量平差知识、数学知识和计算机知识,设计数学模型和程序算法,编制程序实现测量数据的自动化处理。二、要求要求每位同学独立完成给定测量数据处理的数学模型和算法的设计,编写程序,调测程序,并编写程序设计文档。要求数学模型和算法正确、程序运行正确、设计文档完备。三、课程设计主要内容我的所选题目为3、平差计算器能进行各种平差的计算(条件平差、间接平差、附有参数的条件平差、附有限制条件的间接平差)。数据输入:输入系数矩阵、常数项矩阵、权矩阵)。最后输出平差结果。此处节选 条件平差计算代码:private sub button2_click(byval sender as system.object, byval e as system.eventargs) handles button2.click 输入已知矩阵a dim a1(,) as double dim a2() as string dim i as integer, j as integer dim ah as integer, al as integer ah = textbox1.lines.getupperbound(0) a2 = split(trim(textbox1.lines(0), ) al = a2.getupperbound(0) redim preserve a1(ah, al) for i = 0 to ah a2 = split(trim(textbox1.lines(i), ) for j = 0 to al a1(i, j) = a2(j) next next 输入已知w矩阵 dim w1(,) as double dim w2() as string dim wh as integer, wl as integer wh = textbox2.lines.getupperbound(0) w2 = split(trim(textbox2.lines(0), ) wl = w2.getupperbound(0) redim preserve w1(wh, wl) for i = 0 to wh w2 = split(trim(textbox2.lines(i), ) for j = 0 to wl w1(i, j) = w2(j) next next 输入已知q矩阵 dim q1(,) as double dim q2() as string dim qh as integer, ql as integer qh = textbox3.lines.getupperbound(0) q2 = split(trim(textbox3.lines(0), ) ql = q2.getupperbound(0) redim preserve q1(qh, ql) for i = 0 to qh q2 = split(trim(textbox3.lines(i), ) for j = 0 to ql q1(i, j) = q2(j) next next 定义以后需要的变量 如a的转置为at ,求naa的中间变量为naa0,naa的逆为naa1 等等。 dim at(al, ah) as double, p(qh, ql) as double, naa0(ah, al) as double, naa(ah, ah) as double, naa1(ah, ah) as double 求at ,a的转置 for i = 0 to ah for j = 0 to al at(j, i) = a1(i, j) next next p为q的逆矩阵,求出p(调用类库中的求逆功能) p = zz.matlib.inv(q1) 求出naa矩阵 dim k as integer for i = 0 to ah for j = 0 to al for k = 0 to al naa0(i, j) += a1(i, k) * q1(k, j) next next next for i = 0 to ah for j = 0 to ah for k = 0 to al naa(i, j) += naa0(i, k) * at(k, j) next next next 求出naa的逆(调用类库) naa1 = zz.matlib.inv(naa) 求出k矩阵(用k0表示) dim k0(ah, wl) as double for i = 0 to ah for j = 0 to wl for k = 0 to ah k0(i, j) -= naa1(i, k) * w1(k, j) next next next 求出v矩阵(中间变量v0) dim v0(al, ah) as double, v(al, wl) as double for i = 0 to al for j = 0 to ah for k = 0 to al v0(i, j) += q1(i, k) * at(k, j) next next next for i = 0 to al for j = 0 to wl for k = 0 to ah v(i, j) += v0(i, k) * k0(k, j) next next next 输出v矩阵 for i = 0 to al for j = 0 to wl textbox4.text += v(i, j).tostring(0.0000) + vbtab next j textbox4.text &= vbcrlf next i 求出vt(v的转置) dim vt(wl, al) as double for i = 0 to al for j = 0 to wl vt(j, i) = v(i, j) next next 求出vt*p(为了简化代码,此处矩阵相乘调用类库) dim vtp(wl, al) as double vtp = zz.matlib.multiply(vt, p) 求出vt*p*v(同上) dim vtpv(wl, wl) as double vtpv = zz.matlib.multiply(vtp, v) 求出单位权中误差 dim x as double x = vtpv(0, 0) / (al) x = math.sqrt(x) textbox5.text = x.tostring(0.0000)end sub四、实验感想此次课程设计收获很大,由于处于小学期,给了我们充分的时间去自我学习和编写程序。最初我和同学们一样都打算用c+语言编写,但发现我对c和c+的语言功底明显不足。加之大一时曾经通过了vb语言的计算机二级等级考试,所以我决定用vb来完成编写。用vb的编写过程中也遇到过很多难题,但通过和老师同学的交流学习也都一一解决了。这让我感受到了同学之间互相帮助的情谊,以

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论