2.7 Matlab问题
实验一 matlab完成水准网平差

实验一 matlab完成水准网平差实验数据:水准网有2个已知点,3个未知点,7个测段。
已知点高程H1=5.016M H2=6.016h1=1.359; h2=2.009; h3=0.363; h4=1.012;h5=0.657; h6=0.238; h7=-0.595;S1=1.1 S2=1.7 S3=2.3 S4=2.7 S5=2.4 S6=1.4 S7=2.6求解(1)求个待定点高程,H5的高差中误差;3、4号点的高程中误差。
课程设计内容1、平差程序设计思路:使用间接平差法求解(1) 由题意知必要观测数t=3,选取3、4、5号点高程X1、X2、X3为参数。
(2) 误差方程:V1=x1v2=x2v3=x1v4=x2v5=x2-x1+h2-h1-h5v6=x3-x1v7=-x3(3)取1M 的观测高程为单位权观测,即 p=1/s;(4)求法方程:Nbbx-W=0 Nbb=b’pbW=b’pl(5)求的平差值x=Nbb^-1*W L=l+V V=bx-l(6)高差权函数式: k=-x1+x2(6)求中误差: 单位权中误差δ0,协因数阵Nbb^-1.求得中误差δ2、平差程序流程代码说明 :h1=1.359;h2=2.009;h3=0.363;h4=1.012;h5=0.657;h6=0.238;h7=-0.595;H1=5.016H2=6.016h=[h1 h2 h3 h4 h5 h6 h7]'s=[1.1 1.7 2.3 2.7 2.4 1.4 2.6]' B=[1 0 0 ;0 1 0;1 0 0;0 1 0 ; -1 1 0 ;-1 0 1 ;0 0 -1 ]p=diag(1./s)l=[0;0;4;3;7;2;0]W=B'*p*lNbb=B'*p*Bx=inv(Nbb)*WV=(B*x-l)H=h+V/1000Q=inv(Nbb)n=7;t=3;j=V'*p*Vd= sqrt(j/4)f=[-1 1 0]'q=f'*Q*fD=d*sqrt(q)D1=d*sqrt(Q)(3) 平差程序流程代码说明:clccleardisp(‘观测高差,单位m’)h1=1.359;h2=2.009;h3=0.363;h4=1.012;h5=0.657;h6=0.238;h7=-0.595;H1=5.016 % 已知点高程,单位mH2=6.016 % 已知点高程,单位mh=[h1 h2 h3 h4 h5 h6 h7]'s=[1.1 1.7 2.3 2.7 2.4 1.4 2.6]' %S是线路长度disp(‘系数矩阵B、l’)B=[1 0 0 ;0 1 0;1 0 0;0 1 0 ; -1 1 0 ;-1 0 1 ;0 0 -1 ]p=diag(1./s) %定义权阵l=[0;0;4;3;7;2;0]W=B'*p*lNbb=B'*p*Bdisp(‘参数的解’)x=inv(Nbb)*WV=(B*x-l) % 误差方程(mm)H=h+V/1000 % 观测值的平差值Q=inv(Nbb) %观测值协因数阵n=7 %观测值数t=3 % 必要观测数j=V'*p*V %计算单位权中误差的参数d= sqrt(j/4) %单位权中误差f=[-1 1 0]' %权函数系数阵q=f'*Q*f %权函数协因数阵D=d*sqrt(q) %高差中误差D1=d*sqrt(Q) %高程中误差(4)计算结果: p =0.9091 0 0 0 0 0 00 0.5882 0 0 0 0 00 0 0.4348 0 0 0 00 0 0 0.3704 0 0 00 0 0 0 0.4167 00 0 0 0 0 0.7143 00 0 0 0 0 00.3846W =-2.60614.02781.4286Nbb =2.4748 -0.4167 -0.7143-0.4167 1.3753 0-0.7143 0 1.0989x =-0.24272.85521.1423V =-0.24272.8552-4.2427-0.1448-3.9021-0.6151-1.1423H =1.35882.01190.35881.01190.65310.2374-0.5961成果检核:H1+H5-H2=0;H3+H5-H4=0;H6+H7+H3=0即1.3588+0.6531-2.0119=0;0.3588+0.6531-1.0119=0;0.2374-0.5961+0.3588=0等式成立 检核通过0.5307 0.1608 0.3450 0.1608 0.7758 0.1045 0.3450 0.1045 1.1342 j = 19.7994d = 2.2248f = -11q =0.9850D = 2.2080D1 =1.6208 0.8921 1.30670.8921 1.9597 0.71921.3067 0.71922.3694。
matlab中双精度浮点数

matlab中双精度浮点数中括号在MATLAB中广泛应用于数据存储和索引。
其中,双精度浮点数(Double-precision floating-point numbers)是一种常见的数值数据类型,用于表示带有小数的数值。
一、双精度浮点数的定义和特点双精度浮点数是一种数值数据类型,用于存储实数。
它的定义如下:matlabx = 3.14159;其特点如下:1. 双精度:双精度浮点数使用64位内存来存储,包括1位符号位、11位指数位和52位尾数位。
相比单精度浮点数,双精度具有更高的精度和范围。
2. 浮点数:浮点数表示实数时使用科学计数法表示,即x = m \times 2^e,其中m为尾数,e为指数。
二、双精度浮点数的数值范围双精度浮点数的数值范围如下:- 最小非负正数:realmin('double'),约为2.2251e-308;- 最小正规数:约为2.2251e-308,即实数的最小可表示值;- 最大有限数:realmax('double'),约为1.7977e+308;- 无穷大:Inf,用于表示溢出或除零异常的结果。
三、双精度浮点数的运算在MATLAB中,双精度浮点数之间的运算包括加法、减法、乘法和除法等。
例如:matlaba = 1.5;b = 2.7;c = a + b; % 加法运算d = a * b; % 乘法运算e = a / b; % 除法运算需要注意的是,由于浮点数的精度限制,双精度浮点数之间的运算可能存在舍入误差。
四、双精度浮点数的表示与转换在MATLAB中,双精度浮点数可以使用科学计数法表示,也可以使用一般的小数表示。
例如:matlaba = 1.23e6; % 科学计数法表示b = 1230000; % 小数表示双精度浮点数可以与其他数值类型进行转换。
可以使用函数double()将其他数值类型转换为双精度浮点数,例如:matlaba = 123; % 整数b = double(a); % 转换为双精度浮点数另外,双精度浮点数还可以通过函数int16()、int32()和int64()等转换为其他整数类型。
MATLAB仿真技术

MATLAB仿真技术作业合集页脚内容1页脚内容1第1章 习题5.利用直接输入法和矩阵编辑器创建矩阵A=⎥⎦⎤⎢⎣⎡642531。
解:⑴利用直接输入法输入程序A=[1 3 5;2 4 6]按Enter 键后,屏幕显示A = 1 3 52 4 6⑵用矩阵编辑器创建矩阵,如图1.1所示。
图1.1 MATLAB 编辑器7.用矩阵编辑器创建矩阵a,使a 具有如下矩阵形式。
页脚内容2a=⎥⎦⎤⎢⎣⎡642531⇒a=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡654321⇒a=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡987654321⇒a=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡098706540321⇒a=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡0000098706540321 解:用矩阵编辑器创建矩阵a 的过程如图1.2、1.3、1.4、1.5、1.6所示。
图1.2 图1.3图1.4 图1.5图1.6页脚内容39.已知矩阵B=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡922518113211912102201304161475231501017,试:①提取矩阵B 的第一行和第二行的第2、4、5个元素组成新矩阵1B ;②提取矩阵B 的第三行和第一行的全部元素组成新矩阵2B ;③使矩阵B 的第一行和第三行的第2;4个元素为0;④标出矩阵B 的第一行中小于5的元素。
解:①如上题,用矩阵编辑器生成矩阵B ,再输入程序B1=B([1,2],[2,4,5])按Enter 键后,屏幕显示B1 = 0 0 155 14 16②输入程序B2=B([1,3],:)按Enter 键后,屏幕显示B2 = 17 0 1 0 15 4 0 13 0 22③第一行和第三行的第2;4个元素原本就为0。
④输入程序如下C=B(1,:)<5; %将B矩阵第一行中小于5 的值标记为1D=B(1,C) %去B矩阵第一行中标为1的元素按Enter键后,屏幕显示D= 0 1 011.已知矩阵a为4阶魔方阵,令a+3赋值给b,a+b赋值给c,求b和c。
MATLAB语言的基本使用方法

MATLAB语⾔的基本使⽤⽅法实验⼀ MATLAB 语⾔的基本使⽤⽅法1. 实验⽬的1) 了解MATLAB 程序设计语⾔的基本特点,熟悉MATLAB 软件运⾏环境。
2) 掌握创建、保存、打开⽂件及数据的⽅法,掌握设置⽂件路径的⽅法。
3) 掌握变量、函数等有关概念,具备初步的将⼀般数学问题转化为对应计算机模型并进⾏处理的能⼒。
2. MATLAB 基础知识2.1 MATLAB 程序设计语⾔简介MATLAB ,Matrix Laboratory 的缩写,是由MathWorks 公司开发的⼀套⽤于科学⼯程计算的可视化⾼性能语⾔,具有强⼤的矩阵运算能⼒。
与⼤家常⽤的Fortran 和C 等⾼级语⾔相⽐,MATLAB 的语法规则更简单,更贴近⼈的思维⽅式,被称之为“草稿纸式的语⾔”。
MATLAB 软件主要由主包、仿真系统(simulink )和⼯具箱(toolbox )三⼤部分组成。
2.2. MATLAB 界⾯简介下⾯我们主要对MATLAB 基本界⾯进⾏介绍。
如图 1-1所⽰,命令窗⼝包含标题栏、菜单栏、⼯具栏、命令⾏区、状态栏、垂直和⽔平波动条等区域。
标题栏菜单栏⼯具栏命令⾏区状态栏垂直和⽔平滚动条图 1-1 MATLAB 基本界⾯——命令窗⼝1) 菜单栏菜单栏中包括File 、Edit 、View 、Web 、Window 和Help 六个菜单项。
这⾥着重介绍File 项。
File 项是数据输⼊/输出的接⼝,包括10个⼦项,这⾥重点介绍其中的5个⼦项:New: 新建⽂件项。
有四个选择: M File(.M ,⽂本格式的MATLAB 程序⽂件,可以直接通过⽂件名的⽅式在MATLAB 环境下解释运⾏); Figure(图形);Model(仿真模型⽂件)和GUI(可视化界⾯⽂件)。
Open: 打开所有MATLAB⽀持的⽂件格式,系统将⾃动识别并采⽤相应的程序对⽂件进⾏处理。
例如, 打开⼀个.m⽂件,系统将⾃动打开M⽂件编辑器对它进⾏编辑。
matlab第2章

2. MATLAB变量的显示
任何MATLAB语句的执行结果都可以在屏幕上显示,同时赋值
给指定的变量。没有指定变量பைடு நூலகம்,赋值给默认变量名ans,数据
的显示格式由format命令控制。
Format只影响结果的显示,不影响计算与存储。
MATLAB以双字长浮点数(双精度)执行所有的运算。
22
2.4.1.2 字符串
a在前面未赋值时,非法命令。
19
1. 变量命名规则 (1)变量名区分字母的大小写,A与a表示不同的变量。 (2)变量名必须以英文字母开头,之后可以使用字母、数字、下画线, 但不能使用空格和标点符号。 (3)变量名长度不能超过31个字符,超过部分将被忽略
(4)某些常量也可以作为变量使用。
如 i 在MATLAB中表示虚数单位,但也可以作为变量使用。
5
3.Debug主菜单项 (1)Open M-Files when Debugging:调试时打开M文件 (2)Step:单步调试程序
(3)Step In:单步调试进入子程序
(4)Step Out:单步调试从子程序跳出 (5)Continue:程序执行到下一断点 (6)Clear Breakpoints in All Files:清除所有打开文件中的断点 (7)Stop if Errors/Warnings:在程序出错或报警处停止往下执行
8
5.Window主菜单项 (1)Close All documents:关闭所有文档 (2)0 Command Window:选定命令窗口为当前活动窗口 (3)1 Command History:选定历史命令窗口为当前活动窗口 (4)2 Current Directory:选定当前路径窗口为当前活动窗口
第二章_MATLAB语言基础_第1节-赵亦欣

第2章 MATLAB语言基础
【例2.8】 表达式语句。 >> sqrt(2)*exp(-1*3) ans = 0.0704 >> 8*3+6/4 ans = 25.5000
表达式语句 运算结果 执行下一条 表达式语句 后,结果将 被刷新
第2章 MATLAB语言基础
第2章 MATLAB语言基础
2.1 基础知识
2.1.3 变量和语句
变量名区分字母大小写;不超过31个字 符,31个以后的字符将被忽略,字符之间不 能有空格;必须以字母打头,之后可以是任意 字母、数字或下画线;不允许使用标点符号。
第2章 MATLAB语言基础
MATLAB的一条命令行就是一条语句,
格式与书写数学表达式相近。 在命令窗输入语句,该语句可被解释运 行并给出运行结果。
第2章 MATLAB语言基础
(1)永久变量不能用clear命令清除; (2)永久变量不响应Who, Whos命令; (3)永久变量可以等于表2-1中的值; (4)被赋值的永久变量,在clear命令清除内 存或命令窗关闭再打开后,将被设为默认值;
(5)允许被0除。
第2章 MATLAB语言基础
2.1 基础知识
第2章 MATLAB语言基础
【例2.11】复数矩阵的生成及运算。 >> A=[1 2; 3 4]+[5 6; 7 8]*I % 复数矩阵的输入。 分别由实部矩阵和虚部矩阵组合而成 A= 1.0000 + 5.0000i 2.0000 + 6.0000i 3.0000 + 7.0000i 4.0000 + 8.0000i >> B=[1+2i 3+4i; 5+6i 7+8i] % 复数矩阵的输入。 直接由复数构成矩阵 B= 1.0000 + 2.0000i 3.0000 + 4.0000i 5.0000 + 6.0000i 7.0000 + 8.0000i >> C=A*B % 复数矩阵相乘。 复数矩阵乘法, 1.0e+002表 示标量100,矩阵运算中,存在直 C= 角坐标和极坐标之间的转换 1.0e+002 * -0.3500 + 0.4900i -0.5100 + 0.7700i -0.3900 + 0.7700i -0.5500 + 1.2100i
MATLAB基础教程 第2章 数组、矩阵及其运算
写出MATLAB表达式。 解:根据MATLAB的书写规则,以上MATLAB表达式为: (1)y=1/(a*log(1-x-1)+C1) (2)f=2*log(t)*exp(t)*sqrt(pi) (3)z=sin(abs(x)+abs(y))/sqrt(cos(abs(x+y))) (4)F=z/(z-exp(T*log(8)))
命令:X(3:-1:1)
命令:X(find(X>0.5)) 命令:X([1 2 3 4 4 3 2 1])
第二章 数组、矩阵及其运算
2.1 数组(矩阵)的创建和寻访
2. 二维数组的创建和寻访
例2-3 综合练习。将教材P.31~P.44的实例按顺序在MATLAB的 command窗口中练习一遍,观察并体会其输出结果。 (注意变量的大小写要和教材上的严格一致。)
A./B
B.\A
A的元素被B的对应元素相除
(与上相同)
第二章 数组、矩阵及其运算
2.3 数组、矩阵的其他运算
1. 乘方开方运算
数组的乘方运算与power函数 格式:c=a.^k或c=power(a,k) 例如: >> g=[1 2 3;4 5 6] >>g.^2 矩阵的乘方运算与mpower函数 格式:C=A^P或C=mpower(A,P) 注意:A必须为方阵
第二章 数组、矩阵及其运算
2.2 数组、矩阵的运算
3. 矩阵的加法、减法
运算规则是:若A和B矩阵的维数相同,则可以执行矩阵的加减运算, A和B矩阵的相应元素相加减。如果维数不相同,则MATLAB将给出
出错信息。
第二章 数组、矩阵及其运算
2.2 数组、矩阵的运算
3. 矩阵的乘法
关于采用matlab进行指定非线性方程拟合的问题
关于采用matlab进行指定非线性方程拟合的问题(1)※1。
优化工具箱的利用函数描述LSQLIN 有约束线性最小二乘优化LSQNONNEG 非负约束线性最小二乘优化问题当有约束问题存在的时候,应该采用上面的方法代替Polyfit与反斜线(\)。
具体例子请参阅优化工具箱文档中的相应利用这两个函数的例子。
d. 非线性曲线拟合利用MATLAB的内建函数函数名描述FMINBND 只解决单变量固定区域的最小值问题FMINSEARCH 多变量无约束非线性最小化问题(Nelder-Mead 方法)。
下面给出一个小例子展示一下如何利用FMINSEARCH1.首先生成数据>> t=0:.1:10;>> t=t(:);>> Data=40*exp(-.5*t)+rand(size(t)); % 将数据加上随机噪声2.写一个m文件,以曲线参数作为输入,以拟合误差作为输出function sse=myfit(params,Input,Actural_Output)A=params(1);lamda=params(2);Fitted_Curve=A.*exp(-lamda*Input);Error_Vector=Fitted_Curve-Actural_Output;%当曲线拟合的时候,一个典型的质量评价标准就是误差平方和sse=sum(Error_Vector.^2);%当然,也可以将sse写作:sse=Error_Vector(:)*Error_Vector(:);3.调用FMINSEARCH>> Strarting=rand(1,2);>> options=optimset('Display','iter');>> Estimates=fiminsearch(@myfit,Strarting,options,t,Data);>> plot(t,Data,'*');>> hold on>> plot(t,Estimates(1)*exp(-Estimates(2)*t),'r');Estimates将是一个包含了对原数据集进行估计的参数值的向量。
Matlab详细学习讲义
Matlab详细学习讲义《MA TLAB软件应⽤》讲义[第2 / 16次课]第1章基础准备及⼊门⼀点名⼆作业讲评三复习提问MATLAB界⾯由⼏⼤组件组成?MATLAB的搜索路径主要有什么应⽤途径?四上机练习内容启动MATLAB。
在D盘根⽬录下,以“学号_姓名”的格式创建⽂件夹,并在Matlab中将该⽬录设置为Current Folder。
(利⽤MA TLAB Toolbar 中Current Folder组合框后的按钮)。
以下为本章教学必须掌握的知识点。
在MA TLAB的Command Window中练习以下代码,并观察系统输出,并逐⾏进⾏注释。
本次课结束后将代码⽂件上传。
在MA TLAB程序界⾯中进⾏以下操作:1 上机实习内容提⽰及要求启动MATLAB后,依次练习MA TLAB的菜单项、⼯具栏和Command Window、Current Folder、Command History、Workspace等主要组件的基本功能,按指定内容在MA TLAB程序界⾯下进⾏操作练习。
2 上机实习内容在MATLAB程序界⾯中进⾏以下操作:1) Command Window指令窗⼝在集成窗体和独⽴窗体之间切换(Undock/Dock按钮)2) 在Command Window中运⾏以下指令,掌握换⾏符(...)的使⽤>> (12+2*(7-4))/3^2>> S=1-1/2+1/3-1/4+1/5-1/6+1/7-1/8>> S=1-1/2+1/3-1/4+…+1/5-1/6+1/7-1/83)在Command Window中分别输⼊以下数值,并按回车,观察MA TLAB的输出(数值如3, -99, 0.001, 9.456, 1.3e-3, 4.5e33, eps, 等)4)以下实例涉及变量的定义规则,在Command Window中分别输⼊并按回车,观察MA TLAB的输出结果.输出结果为错误提⽰时,分析出现错误的原因.>> xyz_4=32.75>> var1=3.09e-5*1028>> 4xyz=32.75>> 4*xyz=198.28>>4,xyz=198.285) 在Command Window中输⼊下列数学常数,并按回车:eps, i, j, Inf, inf, intmax, NaN, nan, pi, realmax, realmin,观察并分析系统的输出。
matlab7.0 自学教程第二章(1)
A(:)=[1,4,7,2,5,8,3,6,9]'
A=[1, 2, 3, 4, 5]; 3) 逻辑1标识法 L=logical([1, 0, 1, 0, 1]) 【例2.2-6】数组标识与寻访 A(L) ans=[1,3,5] A=zeros(2,6) A(2,1:2:5)=[-1,-3,-5] A =0 0 0 0 0 0 A =1 3 5 7 9 11 0 0 0 0 0 0 -1 4 -3 8 -5 12 A(:)=1:12 B=A([1,2,2,2],[1,3,5] ) A =1 3 5 7 9 11 B =1 5 9 2 4 6 8 10 12 -1 -3 -5 A(2,4) -1 -3 -5 ans = 8 -1 -3 -5 A(8) L=A<3 ans = 8 A([1,2,5,6]') L = A(:,[1,3]) 1 0 0 0 0 0 ans = ans =1 5 1 0 1 0 1 0 1 2 6 A(L)=NaN 2 A(:,4:end) A= 5 ans =7 9 11 NaN 3 5 7 9 11 6 8 10 12 NaN 4 NaN 8 NaN 12
plot(t,Sx,'.k','MarkerSize',12) xlabel('x'),ylabel('Sx'),grid on
syms t x ft=t^2*cos(t) sx=int(ft,t,0,x) ft = t^2*cos(t) sx = x^2*sin(x) - 2*sin(x) + 2*x*cos(x)
函数 f (.) 的数组运算规则
函数数组运算规则的定义 x11 x12 … x1n
x21 x22 … x2n