MATLAB语言上机实习报告

更新时间:2024-04-14 13:44:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

课程名称:测绘程序设计 课程性质:必修

测绘程序设计 实习报告

学 院: 测绘工程学院 班 级: 实习地点:

1220501

核工楼410

班级组号: 学生姓名:

赵建新

学生学号: 201220050163 指导教师: 王建强

日期: 年 月 日

目 录

实验1 matlab软件练习 ................................................................... 2 实验2 matlab解算方程 ................................................................... 5 实验3 matlab绘图 ........................................................................... 8 实验4 角度弧度互换 ..................................................................... 12 实验5 坐标正反算 ......................................................................... 15 实验6 水准网计算 ......................................................................... 17 实验7 导线网计算 ......................................................................... 20 实验8 坐标转换 ............................................................................. 23 实验心得 .......................................................................................... 26

1

实验1 matlab软件练习

实验考核 序号 1 2 3 4 总评

考核内容 课堂表现 程序评价 实验效果 总结评价 考核等级 备注 点名、实验 可读性、移植性等 精度、可靠性等 认识深度等 [实验项目]:

MATLAB软件练习。

[实验目的]:

熟悉对MATLAB的操作。

[实验仪器设备]:

计算机及MATLAB R2009a程序设计语言。

[实验原理]:

Matlab主要应用于数学计算、系统建模与仿真、数学分析与可视化、科学与工程制图和用户界面设计等。Matlab是一个交互式开发系统,其基本数据要素是矩阵。它的语法规则简单,用解释方式工作,编写程序和运行同步,键入程序立即得出结果,人机交互更加简洁和智能化。

[实验内容]:

打开matlab,将鼠标放至菜单栏和工具栏图标上,了解其功能特点以及单击某个图标,熟悉它的界面、操作。例如:(1)命令窗口:是进行matlab操作最主要的窗口,可以把命令窗口看成“草稿本”。在命令窗口输入matlab的命令和数据后按回车键,立即执行运算并现实结果。语句形式为:>>变量=表达式。(2)历史命令窗口:位于界面的左下侧,用来记录并显示已经运行过的命令、函数及

2

表达式。在默认设置下,该窗口会显示自安装一来所有使用过的命令的历史记录,并标明每次启动软件的时间。(3)当前目录浏览窗口:界面的左上侧,用来设置当前目录,并显示当前目录下的M-文件、Mat文件、Mdl文件等文件信息,窗口中包括文件类型、文件大小、最后修改时间和文件的说明信息等。

[实验数据记录及处理]:(1)运行matlab,界面是一个高度集成的工作界面,主要由菜单栏、工具栏、当前工作目录窗口、工作空间管理窗口、历史命令窗口和命令窗口等组成,如下图所示:

(2)建立“M-文件”(“M-文件编辑/调试窗口集合了代码编辑和程序调试的功能,兵可以分析程序的运行效率)

3

[实验结论]:

Matlab是一款很好的应用于数学计算、系统建模与仿真、数学分析与可视化、科学与工程制图和用户界面设计等软件。

[实验注意事项]:

认真操作熟悉软件界面的功能。

4

实验2 matlab解算方程

实验考核 序号 1 2 3 4 总评

考核内容 课堂表现 程序评价 实验效果 总结评价 考核等级 备注 点名、实验 可读性、移植性等 精度、可靠性等 认识深度等 [实验项目]:

方程组的解算

[实验目的]:

matlab解各类方程组都是可以的,方法也有多种。要求掌握以下两种方法: 1、采用求逆(左除)运算解方程组; 2、采用solve函数解高次方程组。

[实验仪器设备]:

计算机及MATLAB R2009a程序设计语言。

[实验原理]:

1、求逆的方法:x=inv(A)*b 左除的方法:x=A\\b ;

2、solve函数:solve(s1,s2,?,sn,v1,v2,?,vn),即求表达式s1,s2,?,sn 。

[实验内容]:

例如

1、求解一下方程组:x1+2x2=8 和2x1+3x2=13; 程序如下:

>>A=[1,2;2,3];b=[8;13]; >>x=inv(A)*b;

5

或者 >>x=A\\b ;

2、使用solve函数求解以下方程组:x^2 + x*y + y = 3和 x^2 - 4*x + 3 = 0; 程序如下:

>> [x,y] = solve('x^2 + x*y + y = 3','x^2 - 4*x + 3 = 0') 或

>>[x,y] = solve('x^2 + x*y + y = 3','x^2 - 4*x + 3= 0','x','y')

[实验数据记录及处理]:

1、求解得

>> A=[1,2;2,3];b=[8;13]; x=inv(A)*b x = 2 3 >> x=A\\b x =

2.0000 3.0000 2、求解得:

>> [x,y] = solve('x^2 + x*y + y = 3','x^2 - 4*x + 3= 0','x','y') x =

1 3 y = 1

-3/2

6

[实验结论]:

应用MATLAB软件求解方程组非常方便,并且效率高。

[实验注意事项]:

合理选择使用函数并正确书写。

7

实验3 matlab绘图

实验考核 序号 1 2 3 4 总评 考核内容 课堂表现 程序评价 实验效果 总结评价 考核等级 备注 点名、实验 可读性、移植性等 精度、可靠性等 认识深度等 [实验项目]:

MATLAB绘图。

[实验目的]:

利用MATLAB绘制二维、三维图形。

[实验仪器设备]:

计算机及MATLAB R2009a程序设计语言。

[实验原理]:

1、MATLAB中提供了plot、loglog、semilogx、semilogy、polar、poltyy 6个非常实用的基本二维绘图函数。下面以介绍使用plot函数来绘图为例。 2、就像二维绘图一样,MATLAB中还提供了很多三维绘图函数,一些三维绘图函数的函数名只是在二维绘图函数的函数名后加了一个3,调用方法也很类似。下面以介绍“调用plot3函数绘制三维螺旋线”为例。

[实验内容]:

1、二维图形绘制 例如画一个正弦函数在

内的图像,程序如下:

x = 0: 0.25: 2*pi; % 产生一个从0到2pi,步长为0.25的向量 y =sin(x); % 计算x中各点处的正弦函数值 plot (x,y) % 绘制正弦函数

8

xlabel('X'); % 为X轴加标签 ylabel('Y'); % 为Y轴加标签 2、三维图形绘制 x=[0:0.1:2*pi]; y=[0:0.1:2*pi]; z=sin(y')*cos(x); mesh(x,y,z); title('三维图'); xlabel('X轴'); ylabel('Y轴'); zlabel('z轴');

[实验数据记录及处理]:

根据实验内容编写的程序我们可以绘制出以下二维和三维图形,如图1和图2所示:

9

图1 二维正弦函数图

10

图2 三维模型图

[实验结论]:

通过使用函数可以很简单地绘制出我们所需要的图形,对数据的变化形式很容易掌握。

[实验注意事项]:

要选用正确的函数去绘制二维或者三维的图形,并且要去掌握各种函数的调用方法和格式。

11

实验4 角度弧度互换

实验考核 序号 1 2 3 4 总评 考核内容 课堂表现 程序评价 实验效果 总结评价 考核等级 备注 点名、实验 可读性、移植性等 精度、可靠性等 认识深度等 [实验项目]:

角度弧度互换

[实验目的]:

熟悉运用MATLAB软件解算方程

[实验仪器设备]:

计算机及MATLAB R2009a程序设计语言。

[实验原理]:

一、n元一次方程求解 1、例如:

对二元一次方程组 2x+4y=10 的求解,用矩阵形式求解,过程如下: 2x-y=0

2 4 x 10

=

先写成系数矩阵的形式 2 -1 y 0

根据矩阵的运算求解x、y。如果是三元一次的,原理都一样,只是矩阵的形式不同。

12

二、n元多次方程组求解

对二元二次方程组 x^2+x*y+4y=10的求解,用常规数学方法求解,过程如下:

x^2-4x+6=3

采用代入消元法求解。而MATLAB中借用代码slove来解算。

[实验内容]: 一、n元一次方程求解

1、新建一个“M-文件”,命名为“zhaojianxin1.m”,双击打开; 2、令A= 2 4 B= 10

2 -1 0 输入完后,写入以下程序代码。 其程序代码为:R_A=rank(A); C=A\\B

在命令窗口中运行这个文件,即: >>zhaojianxin1 回车,得到以下结果: C =

1 2

第一行为x的解,第二行为y的解。

二、n元多次方程组求解

1、新建一个“M-文件”,命名为“zhaojianxin2.m”,双击打开; 2、写入代码:[x,y] = solve('x^2 + x*y + 4*y = 10','x^2 - 4*x + 6 = 3') 3、在命令窗口中运行这个文件,即:

13

>>zhaojianxin2 回车,得到以下结果: x = 3 1 y = 1/7 9/5

说明该方程组有四个实根。

[实验数据记录及处理]:

方程组 2x+4y=10 2x-y=0 x^2+x*y+4y=10 x^2-4x+6=3 主要代码(求解方案) 首先将方程组写成矩阵形式,再加上代码:R_A=rank(A); C=A\\B,运行该程序文件。 和n元一次不同,直接写代码: [x,y] = solve('x^2 + x*y + 4*y = 10','x^2 - 4*x + 6 = 3'),然后在命令窗口运行程序文件。

[实验结论]:

MATLAB软件在进行方程组的求解时,能够快速并准确的算出答案,提高了工作效率。

[实验注意事项]:

不同形式的方程组按不同的方法进行编写、解算。

14

实验5 坐标正反算

实验考核 序号 1 2 3 4 总评 考核内容 课堂表现 程序评价 实验效果 总结评价 考核等级 备注 点名、实验 可读性、移植性等 精度、可靠性等 认识深度等 [实验项目]:

坐标正反算

[实验目的]:

能够熟练的运用坐标正反算计算程序解决一些实际问题。

[实验仪器设备]:

计算机及MATLAB R2009a程序设计语言。

[实验原理]:

1、坐标正算即已知A点坐标

,求B点坐标

, A点至B点水平距离

以及坐标方位角

的过程。计算公式如下:

2、坐标反算即已知了两个点的坐标,没有起算边的坐标方位角,需要通过坐标反算得出坐标方位角。设A、B两已知点的坐标分别为直线AB的坐标方位角

和水平距离

为:

,则

15

[实验内容]:

1、 设点A(100,100),

=60,S=1000m,求B点坐标。

2、设点A (100,100), B(80,120) ,求S以及

[实验数据记录及处理]:

设计程序以及结果如下

1、>> Xa=100;Ya=100;S=1000;as=60; Xb=Xa+S*cos(pi*as/180) Yb=Ya+S*sin(pi*as/180) Xb = 600.0000 Yb = 966.0254

2、>> Xa=100;Ya=100;Xb=80;Yb=120; Yab=Yb-Ya;Xab=Xb-Xa;

qsfwj=atan(abs(Yab)/abs(Xab))*180/pi S=sqrt(Yab^2+Xab^2) S = 28.2843 qsfwj = 45

[实验结论]:

使用MATLAB软件解算坐标正反算工作问题,大大提高了效率。

[实验注意事项]:

在反算方位角中,由于反三角函数计算的结果有多值性 所以在计算坐标方位角之前,要先计算象限角。

16

实验6 水准网计算

实验考核 序号 1 2 3 4 总评 考核内容 课堂表现 程序评价 实验效果 总结评价 考核等级 备注 点名、实验 可读性、移植性等 精度、可靠性等 认识深度等 [实验项目]:

水准网计算。

[实验目的]:

实践并熟悉利用MATLAB软件解决测绘中水准网计算问题。

[实验仪器设备]:

计算机及MATLAB R2009a程序设计语言。

[实验原理]:

分为条件平差和间接平差;本质是利用最小二乘法,求得最佳估计值。

AV+W=0 V=BX+L

条件平差 NK+W=0 间接平差 NX+B’PL=0

W=AP-1A’ N=B‘PB

[实验内容]:

建立新文件,打开,具体代码如下: D=[674.3 842.1 587.4 732.3]; h=[12.364 2.324 -3.683 -11.003]';

A=[1 1 1 1]; %输入已知数据,也可以采用调用方式调用数据 W=sum(h);

17

P=diag(1./D); %闭合差求解 Q=inv(P); Naa=A*Q*A';

K=-inv(Naa)*W; %求解法方程 V=Q*A'*K;

ha=h+V; %高差改正

H1=100;H2=H1+ha(1,1);H3=H2+ha(2,1);H4=H3+ha(3,1); H=[H1 H2 H3

H4] %每个点高程 %***************** 精度评定 **************** f=[1 1 1 1]';

OO=(V'*P*V)^0.5; %求单位权中误差 QFF=f'*Q*f-f'*Q*A'*inv(Naa)*A*Q*f; DFF=OO^2*QFF

[实验数据记录及处理]:

根据以上假设的数据,在命令窗口中运行该代码,运行结果如下: H =

100 1236/11 13189/115

31525/284 该结果为H1、H2、H3、H4的平差结果 DFF =

0 精度评定

[实验结论]:

18

在测量工作中,经常会碰到水准网测量、平差计算,用人工去计算的话,会花费大量的时间而且精度和准确度难以把握确定,然而借助MATLAB软件可以很好地解决这一实际工作问题。

[实验注意事项]:

正确合理的选用条件平差或是间接平差去解决水准网测量中平差计算问题。

19

实验7 导线网计算

实验考核 序号 1 2 3 4 总评 考核内容 课堂表现 程序评价 实验效果 总结评价 考核等级 备注 点名、实验 可读性、移植性等 精度、可靠性等 认识深度等 [实验项目]:

导线网计算

[实验目的]:

熟练地使用matlab程序语言去解决测绘工作中导线网计算问题。

[实验仪器设备]:

计算机及MATLAB R2009a程序设计语言。

[实验原理]:

支导线是从一个已知控制点出发,既不附合于另一个已知控制点,也不闭合于原来的起始控制点。并且支导线一般只限于地形测量中的图根导线中采用。例如:

[实验内容]:

给出已知点的数据,(坐标、方位角)和各观测值输入到zdxw.txt文档中,如图:

20

[实验数据记录及处理]:

实验代码如下

Load zdxw.txt; %读取文件 SD=zdxw;

[row,col]=size(SD); %判断维数 nd=row-1;%计算待定点个数

%***************************************** %****** 反算方位角 ******************* dx=SD(1,3)-SD(1,1); dy=SD(1,4)-SD(1,2); dr=sqrt(dx*dx+dy*dy); as0=acos(dx/dr); if dy<0

as0=2*pi-as0; end

temp=as0*180/pi; %给出起算数据 x(1)=SD(1,1); y(1)=SD(1,4); %计算待定点位坐标 for i=1:row

alfa=SD(i,2)+SD(i,3)/60+SD(i,4)/3600; alfa=alfa*pi/180; as=as0+pi+alfa;

21

dd=SD(i,1);

x(i)=x(i-1)+dd*cos(as); y(i)=y(i-1)+dd*sin(as); end

[实验结论]:

在支导线测绘应用中,把测得的数据输入到MATLAB软件中并编码计算,效率非常高。

[实验注意事项]:

必须了解支导线程序设计流程,根据支导线平差计算的数学模型和步骤。

22

实验8 坐标转换

实验考核 序号 1 2 3 4 总评 考核内容 课堂表现 程序评价 实验效果 总结评价 考核等级 备注 点名、实验 可读性、移植性等 精度、可靠性等 认识深度等

[实验项目]:

坐标转换

[实验目的]:

实现不同坐标系之间的转换

[实验仪器设备]:

计算机及MATLAB R2009a程序设计语言。

[实验原理]:

空间直角坐标系与空间大地坐标系间的转换:

当参考椭球不变时;可直接运用公式对坐标进行转换;当参考椭球变化时,要首先把大地坐标转换成原椭球下的空间直角坐标,然后利用七参数转换成目标椭球下的空间直角坐标 。

23

图8

在相同的基准下,空间大地坐标系向空间直角坐标系的转换方法为:

其中

a为地球椭球长半轴; b为地球椭球的短半轴。

[实验内容]:

例举函数程序代码如下

% ----大地坐标转换成空间直角坐标函数dd2kj.m --------- function XYZ=dd2kj(a,Bl,BB) format long g global XYZ;

B=BB(:,1);L=BB(:,2);H=BB(:,3); %将输入数据分配给变量 b=a*(1-Bl); e=sqrt(a^2-b^2)/a;

24

B=d2r(B); L=d2r(L);

N=a./sqrt(1-sin(B).^2.*e^2); X=(N+H).*cos(B).*cos(L); Y=(N+H).*cos(B).*sin(L); Z=(N.*(1-e^2)+H).*sin(B); XYZ=[X Y Z];

[实验数据记录及处理]:

[实验结论]:

坐标转换一直是专业性强且不易解决的问题,针对目前坐标转换软件功能单一、操作不方便等问题,采用窗口、菜单、控件的操作方式,实现了所见即所得的人性化界面设计。

[实验注意事项]:

在做坐标转换的时候一定要有足够的细心,一连串的代码极其容易出错。

25

实验心得

MATLAB语言及测绘数据处理应用实习对我来说,除了知识的增加和技能的提高,这一过程也对我意志的锻炼和自学能力的培养产生了深远的影响。我觉得想要学好MATLAB语言是不容易的,这是一件需要持之以恒且要细心的事,必须坚持不懈的学习,还需要敢于开口向别人请教,更需要我们勤于思考,勤于记忆,勤于动手。MATLAB语言程序设计是实践性和操作性很强的事情,需要我们亲自动手。因此,我们应该经常自己动手实际操作设计程序,熟悉MATLAB软件的操作,这对提高我们的操作能力非常有效,这次实习中得到的这些经验和教训对我今后的学习将会有很大的帮助,让我明白不仅要充分的掌握课本上的知识,而且要活学活用、学以致用,不过分强调基本理论的掌握,而应该侧重于基本知识和实际的相结合。

本次实习使我把学到的理论知识和实际的操作相结合,对MATLAB软件这门课程又有了新的了解和认识,这对于我今后的学习会有事半功倍的效果。非常感谢本次实习给了我这样一个锻炼我的机会,在此也感谢老师对我的指导!

26

本文来源:https://www.bwwdw.com/article/eunp.html

Top