matlab实习报告二

MATLAB实习报告(2)

实验二 MATLAB矩阵分析与处理

王夏

一、 实验目的

1、 掌握生成特殊矩阵的方法。

2、 掌握矩阵分析的方法。

3、 用矩阵求逆发解线性方程组。

二、 实验内容

1、 设有分块矩阵A=[E3×3 R3×2 ;O2×3 S2×2],其中E、R、O、S分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证A?=[E R+RS;O S?]。 程序清单:E=eye(3); R=rand(3,2); O=zeros(2,3); S=diag([4,5]);

A=[E R ;O S] ; A2=A^2; C=[E R+R*S;O S^2]; length(find(A2==C))==25 运行结果:ans =1

2、 产生5阶希尔伯特矩阵H和5阶帕斯卡矩阵P,且求其行列式的值Hh和Hp以及他们的条件数Th和Tp,判断哪个矩阵的性能更好,为什么? 程序清单:format rat

H=hilb(5) ;format short

P=pascal(5); Hh=det(H); Hp=det(P);

Th=cond(A) ;Tp=cond(P); 运行结果:Hh =3.7493e-012

Hp =1

Th =5.5228

Tp =8.5175e+003 实验收获:会建立希尔伯特矩阵和帕斯卡矩阵,知道怎么求矩阵行列式的值以及条件数。希尔伯特矩阵的性能更好,条件数越接近1的矩阵性能越好。

3、 建立一个5×5矩阵,求它的行列式值、迹、秩和范数。 程序清单:A=[1:5;1:0.1:1.5;2 5 7 3 9;2:6;3:0.4:4.6] Ha=det(A);Ra=rank(A) ;Ta=trace(A); Na=norm(A); 运行结果:Ha =1.4421e-031

Ra = 3

Ta =18.7000

Na =19.4966

4、 已知向量A,求A的特征值及特征向量,并分析其数学意义。 程序清单:A=[-29 6 18 ;20 5 12;-8 8 5]

[V,D]=eig(A) 运行结果:V =

0.7130 0.2803 0.2733

-0.6084 -0.7867 0.8725

0.3487 0.5501 0.4050

D =

-25.3169 0 0

0 -10.5182 0

0 0 16.8351

5、 求解下列的线性方程组:

[1/2 1/3 1/4;1/3 1/4 1/5;1/4 1/5 1/6]*[x1;x2;x3]=

[0.95;0.67;0.52]

(1)求方程的解 程序清单:format rat

A=[1/2 1/3 1/4; 1/3 1/4 1/5;1/4 1/5 1/6]

format short

B=[0.95;0.67;0.52];

x=inv(A)*B 运行结果:x =1.2000

0.6000

0.6000

(2)将方程右边向量元素b3改为0.53,在求解,并比较b3的变化和解的相对变化。 程序清单:B=[0.95;0.67;0.53];

x=inv(A)*B 运行结果:x = 3.0000

-6.6000

6.6000

(3)计算系数矩阵的条件数并分析结论。 程序清单:cond(A) 运行结果:ans = 1.3533e+003

6、 建立A矩阵,试比较sqrtm(A)和sqrt(A),并分析他们的区别。 程序清单:a=rand(5) ;a1=sqrtm(a); a2=sqrt(a); 运行结果:a =

0.4565 0.7919 0.9355 0.3529 0.1987

0.0185 0.9218 0.9169 0.8132 0.6038 0.8214 0.7382 0.4103 0.0099 0.2722 0.4447 0.1763 0.8936 0.1389 0.1988 0.6154 0.4057 0.0579 0.2028 0.0153 a1 =

0.5983 0.4165 0.5202 0.1609 -0.0723

-0.3534 0.9522 0.4754 0.6539 0.3489 0.6282 0.3061 0.4941 -0.2370 0.2398 -0.0864 -0.0324 0.8597 0.6144 -0.0023 0.9294 0.1090 -0.4271 -0.1196 0.3829 a2 =

0.6756 0.8899 0.9672 0.5940 0.4458

0.1360 0.9601 0.9576 0.9018 0.7770 0.9063 0.8592 0.6405 0.0993 0.5217

0.6669 0.4198 0.9453 0.3727 0.4459

0.7845 0.6370 0.2406 0.4503 0.1236 实验收获:sqrt是对矩阵中的元素求平方根,sqrtm是求矩阵的平方根。即若b=sqrtm(a),则b^2=a。

 

第二篇:MatLab平差计算实习报告

MatLab平差计算实习报告

(1)   实验目的和内容

实验目的:

1、掌握条件平差原理和计算
条件方程的建立
误差方程的建立
误差方程的求解
精度计算

2、掌握MatLab平差计算

实验内容:

条件平差计算
不同条件方程计算
计算结果比较

条件方程一:

 h1-h2+h5=0            v1-v2+v5+7=0

 h3-h4+h5=0            v3-v4+v5+8=0

 h3+h6+h7=0            v3+v6+v7+6=0

 hA+h2-h4=hB           v2-v4-3=0

将上述方程用矩阵表达为:

A =

     1    -1     0     0     1     0     0

     0     0     1    -1     1     0     0

     0     0     1     0     0     1     1

     0     1     0    -1     0     0     0

W =

     7

     8

     6

    -3

权:P =

    0.9091         0         0         0         0         0         0

         0    0.5882         0         0         0         0         0

         0         0    0.4348         0         0         0         0

         0         0         0    0.3704         0         0         0

         0         0         0         0    0.4167         0         0

         0         0         0         0         0    0.7143         0

         0         0         0         0         0         0    0.3846

权逆阵:Q=inv(P)

         = 1.1000         0         0         0         0         0         0

         0    1.7000         0         0         0         0         0

         0         0    2.3000         0         0         0         0

         0         0         0    2.7000         0         0         0

         0         0         0         0    2.4000         0         0

         0         0         0         0         0    1.4000         0

         0         0         0         0         0         0    2.6000

法方程系数阵:Naa=A*Q*A'

                 = 5.2000    2.4000         0   -1.7000

                   2.4000    7.4000    2.3000    2.7000

                   0    2.3000    6.3000         0

                   -1.7000    2.7000         0    4.4000

解联系数:K=-inv(Naa)*W

           = -0.2206

            -1.4053

            -0.4393

            1.4589

求改正数:V=Q*A'*K

           =-0.2427

             2.8552

            -4.2427

            -0.1448

            -3.9021

             -0.6151

            -1.1423

求平差值:LL=L+V

=1.1163

             4.8642

             -3.8797

             0.8672

            -3.2451

          -0.3771

          -1.7373

单位权中误差:sigma0=sqrt(V'*P*V/r)

                   = 2.2248

求改正数协因数:QVV=Q*A'*inv(Naa)*A*Q

  =0.5693   -0.1608   -0.5307   -0.1608    0.3699    0.1857    0.3450

   -0.1608    0.9242   -0.1608   -0.7758   -0.6151    0.0563    0.1045

   -0.5307   -0.1608    1.7693   -0.1608    0.3699    0.1857    0.3450

   -0.1608   -0.7758   -0.1608    1.9242   -0.6151    0.0563    0.1045

    0.3699   -0.6151    0.3699   -0.6151    1.4150   -0.1295   -0.2404

    0.1857    0.0563    0.1857    0.0563   -0.1295    0.4250    0.7893

0.3450    0.1045    0.3450    0.1045   -0.2404    0.7893    1.4658

求高差平差值协因数:QLL=Q-QVV

=0.5307    0.1608    0.5307    0.1608   -0.3699   -0.1857   -0.3450

    0.1608    0.7758    0.1608    0.7758    0.6151   -0.0563   -0.1045

    0.5307    0.1608    0.5307    0.1608   -0.3699   -0.1857   -0.3450

    0.1608    0.7758    0.1608    0.7758    0.6151   -0.0563   -0.1045

   -0.3699    0.6151   -0.3699    0.6151    0.9850    0.1295    0.2404

   -0.1857   -0.0563   -0.1857   -0.0563    0.1295    0.9750   -0.7893

   -0.3450   -0.1045   -0.3450   -0.1045    0.2404   -0.7893    1.1342

条件方程二:

hA+h1-h3=hB              v1-v3-4=0

hA+h1+h5-h4=hB           v1+v5-v4-4=0

hA+h1+h6+h7=hB          v1+v6+v7+2=0

h6+h7+h4-h5=0             v6+v7+v4-v5-2=0

将上述方程用矩阵表达为:

A =

     1     0    -1     0     0     0     0

     1     0     0    -1     1     0     0

     1     0     0     0     0     1     1

     0     0     0     1    -1     1     1

W =

     -4

    -4

     2

    -2

权:P =

    0.9091         0         0         0         0         0         0

         0    0.5882         0         0         0         0         0

         0         0    0.4348         0         0         0         0

         0         0         0    0.3704         0         0         0

         0         0         0         0    0.4167         0         0

         0         0         0         0         0    0.7143         0

         0         0         0         0         0         0    0.3846

权逆阵:Q=inv(P)

         = 1.1000         0         0         0         0         0         0

         0    1.7000         0         0         0         0         0

         0         0    2.3000         0         0         0         0

         0         0         0    2.7000         0         0         0

         0         0         0         0    2.4000         0         0

         0         0         0         0         0    1.4000         0

         0         0         0         0         0         0    2.6000

法方程系数阵:Naa=A*Q*A'

                 = 3.4000    1.1000    1.1000         0

                   1.1000    6.2000    1.1000   -5.1000

                   1.1000    1.1000    5.1000    4.0000

                       0   -5.1000    4.0000    9.1000

解联系数:K=-inv(Naa)*W

           = 0.0000

             4.5036

            -4.5036

             4.5036

求改正数:V=Q*A'*K

           =- 1.0000

                  0

             -2.9849

             -2.0000

              2.0000

              -1.0000

              -2.0000

求平差值:LL=L+V

=

    2.3590

    2.0090

   -2.6219

   -0.9880

    2.6570

   -0.7620

   -2.5950

单位权中误差:sigma0=sqrt(V'*P*V/r)

                   = 1.5956

求改正数协因数:QVV=Q*A'*inv(Naa)*A*Q

  = 0.5541         0   -0.5837   -0.3375    0.3000    0.1750    0.3250

         0         0         0         0         0         0         0

   -0.5837         0    1.7163   -0.1941    0.1725    0.2012    0.3737

   -0.1822         0   -0.1941    1.3500   -1.2000    0.3500    0.6500

    0.1925         0    0.1725   -1.3500    1.2000   -0.3500   -0.6500

    0.1788         0    0.2012    0.3375   -0.3000    0.5250    0.9750

    0.3713         0    0.3737    0.6750   -0.6000    1.0500    1.9500

求高差平差值协因数:QLL=Q-QVV

=0.5459         0    0.5837    0.3375   -0.3000   -0.1750   -0.3250

     0    1.7000         0         0         0         0         0

    0.5837         0    0.5837    0.1941   -0.1725   -0.2012   -0.3737

    0.1822         0    0.1941    1.3500    1.2000   -0.3500   -0.6500

   -0.1925         0   -0.1725    1.3500    1.2000    0.3500    0.6500

   -0.1788         0   -0.2012   -0.3375    0.3000    0.8750   -0.9750

   -0.3713         0   -0.3737   -0.6750    0.6000   -1.0500    0.6500

(2)   实习工具软件介绍

1、MATLAB语言的发展

        matlab语言是由美国的Clever  Moler博士于1980年开发的

        设计者的初衷是为解决“线性代数”课程的矩阵运算问题

        取名MATLAB即Matrix Laboratory 矩阵实验室的意思

Ø  它将一个优秀软件的易用性与可靠性、通用性与专业性 、一般目的的应用与高深的科学技术应用有机的相结合

Ø  MATLAB是一种直译式的高级语言,比其它程序设计语言容易

2MATLAB功能       

?         强大的数值(矩阵)运算功能

?         广泛的符号运算功能

?         高级与低级兼备的图形功能(计算结果的可视化功能)

?         可靠的容错功能

?         应用灵活的兼容与接口功能

?         信息量丰富的联机检索功能

3MATLAB界面     

MATLAB操作

1.     创建矩阵的方法

?    直接输入法

规则:

   矩阵元素必须用[    ]括住

   矩阵元素必须用逗号或空格分隔           

   在[    ]内矩阵的行与行之间必须用分号分隔                                                   

2、数据的保存与获取

?   把matlab工作空间中一些有用的数据长久保存下来的方法是生成mat数据文件。

3、矩阵运算

Ø  矩阵加、减(+,-)运算

Ø  矩阵乘(*)运算

Ø  矩阵乘(*)运算

Ø  数组乘除(*.,./,.\)

Ø  矩阵的其它运算

Ø  inv —— 矩阵求逆

Ø  det —— 行列式的值

Ø  eig —— 矩阵的特征值

Ø  diag  —— 对角矩阵 

Ø   ’ —— 矩阵转置

Ø  sqrt —— 矩阵开方

4、符号运算

与数值运算的区别

      ※ 数值运算中必须先对变量赋值,然后才能参与运算。

   ※ 符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达。                                    

5matlab 绘图

(一)plot —— 最基本的二维图形指令plot的功能:

?     plot命令自动打开一个图形窗口Figure

?     用直线连接相邻两数据点来绘制图形

?    根据图形坐标大小自动缩扩坐标轴,将数据标尺及单位标注自动加到两个坐标轴上,可自定坐标轴,可把x,  y 轴用对数坐标表示

?    plot(x) —— 缺省自变量绘图格式,x为向量, 以x元素值为纵坐标,以相应元素下标为横坐标绘图

?     plot(x,y) —— 基本格式,以y(x)的函数关系作出直角坐标图,如果y为n×m的矩阵,则以x 为自变量,作出m条曲线

?    plot(x1,y1,x2,y2) —— 多条曲线绘图格式

plot(x,y,’s’) —— 开关格式,开关量字符串s设定曲线颜色和绘图方式,使用颜色字符串的前1~3个字母,如yellow—yel表示等。

(二)三维网格图

?   mesh —— 三维网线绘图函数

?   调用格式:

 mesh(z) —— z为n×m的矩阵,x与y坐标为元素的下标

 mesh(x,y,z) —— x,,y,z分别为三维空间的坐标位置


3)原理

测量平差的解算,主要是基于矩阵的运算,所以在测量平差的计算中采用MATLAB来进行计算式非常方便的。也可以编写相关的平差程序,不仅使计算更为简洁,而且对于平差原理理解和掌握变得更加容易。

用MATLAB进行条件平差计算,主要矩阵公式如下:

条件方程:AV+W=0

法方程式:NK+W=0

观测值改正数:V=QAK

观测值平差值:LL=L+V


4)实验步骤

1、定义并输入初始值

Step 1: 在Workspace中定义初始值变量

Step 2: 给初始值变量赋值

(1)双击变量,得到如图变量赋值表

(2)分别给其赋值

2、定义给系数阵A,L0,W并赋值

3、计算W

W=A*L+L0

4、计算Naa

Q=inv(P);

Naa=A*Q*A'

K=-inv(Naa)*W

5、计算改正数

V=Q*A'*K

6、计算平差值及单位权方差

LL=L+V

sigma0=sqrt(V'*P*V/r)

7、计算

QVV=Q*A'*inv(Naa)*A*Q

QLL=Q-QVV


5)实验结果分析

方法一使用的是例题所给的条件方程,但计算结果与给出的结果稍有差异,检查输入数据与公式并无错误,可能由于计算的环境与计算精度都不相同,从而导致了差异的产生。

方法一与方法二计算的环境与计算精度都是相同的,但计算结果仍然不同,这是由于所列方程不同引起的。由此也可以看出,通过列不同的条件方程可得出不同的精度,我们可以择优而用。


6)结论及建议

结论:通过对MATLAB的学习,了解到它是一个很不错的矩阵计算的数学计算软件,它能使得以前很复杂的矩阵运算变得很简单,让我们对误差传播定律有了更深的了解。但由于是第一次使用该软件,只是通过老师上课 讲解的那短短十几分钟,对MATLAB只是有了初步的认识,自己并不能独立将平时所列的式子转化为MATLAB的标准语言,将其执行出来,课后应加强对这个软件的学习。

建议:老师可将MATLAB这个软件讲解的时间加长,特别是语法部分,让我们对它有更深的认识,更快学会将它运用到实际中去。

相关推荐