基于MATLAB的误差数据处理实验报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
结果:
result_max = 1.7508 result_min = 1.3181
4. 组合测量数据处理
5
测控 10-3
刘英皓
目的:学会利用 MATLAB 软件,采用最小二乘原理处理组合测量实验数 据。 要求:采用矩阵法计算 x1 、 x 2 、 x3 的数值。
l6 l5
l4
l1
x1
l2
l3
x3
hold on;
p=polyfit(X,Y,5); PA=polyval(p,X); plot(X,PA, 'r') %% 多项式数据拟合 x y 的五阶拟合 %% 计算多项式的值
结果:
8
测控 10-3
刘英皓
目的:掌握利用最小二乘原理进行回归分析、拟合直线的方法。 要求:确定如下数据的经验公式。 X 12 13 14 15 16 18 20 22 24 26
Y 52.0 55.0 58.0 61.0 65.0 70.0 75.0 80.0 85.0 91.0
(1)作出散点图(确定经验公式类型) 。 (2)利用最小二乘原理确定回归参数,画出拟合直线,计算拟合误差。 分析:先通过 plot()指令,将 X,Y 的散点图输出。之后根据多项式拟合,拟合一 阶曲线。并求出多项式的值,输出拟合的直线。 MATLAB 程序: (1)
1
测控 10-3
刘英皓
实验目的:利用
MATLAB 软件强大的数据处理功能实现实验数据处理。掌
握实验数据的计算机处理方法。
实验内容:
1. 随机误差特征数字的认识 目的: 通过此实验直观认识误差分布曲线与标准偏差的关系,进一步理解随 机误差的两个数字特征:分布中心――算术平均值和分散性指标——标准偏差, 掌握 MATLAB 软件基本的绘图功能。 要求:在一张图中以“红、绿、兰”三种颜色输出当 分别为 0.5、1、1.5 时的三条正态分布曲线 f ( x)
结果:
X=
l 1 1.0280 x1 1.015 0.9830 ˆ 1 X l 2 0.985 x2 ( A A) A L l 3 1.0130 1.020 x3 L 5. 一元线性回归分析 l 2 . 016 4 l 1.981 6 5 3.032 l 6
x2
其中:
X1 L1 X 2 L2 X 3 L3 X1 X 2 L 4 X 2 X 3 L5 X 1 X 2 X3 L6
分析:跟据题意得到,正规方程:
,利用最小二乘原理,
进行求解。 MATLAB 程序:
A= [1,0,0,0,1,0;0,0,1;1,1,0; 0,1,1; 1,1,1]; %%系数矩阵 L=[1.015;0.985;1.020;2.016;1.981;3.032]; %%结果矩阵 X=inv(A'*A)*A'*L %% 直接输出结果 X1,X2,X3 矩阵 C=inv(A'*A); %%利用 inv() 函数求解出 (A'A)-1 D=A'*L; %% A'* L 赋给 D X=C*D; %% 输出结果
fplot('(1/(sqrt(2*pi)*1.5))*exp(-(x^2)/(2*1.5^2))',[-10 10],'b');%% u 值 =0 -10~10 标准偏差 1.5 蓝色
结果:
.
2
测控 10-3
刘英皓
ቤተ መጻሕፍቲ ባይዱ
图1
2. 计算 x 和 目的:学会编程计算所给数据的 x 和 ,初步了解 MATLAB 软件的计算功 能。 要求:计算并输出一组数据 20.0005,19.9996,20.0003,19.9994,20.0002 的 x 和 。 (20.0000、4.7×10-4=0.0005) 分析:平均值=数据和/数据个数;V^2 =(数据 1-平均值)^2+(数据 2-平均 值)^2+„„+(数据 n-平均值)^2 ,标准差=V 的绝对值。MATLAB 有专门的求 期望 mean()函数和标准差 std()函数。 MATLAB 程序:
x1=[1.52,1.46,1.61,1.54,1.55,1.49,... 1.68,1.46,1.83,1.50]; u1=sum(x1)/length(x1); a1=3*std(x1); for i1=1:10 v1=abs(x1(i1)-u1); if v1>=a1 x1(i1)=0;break; end end for i1=1:10 x1(i1); end X1=x1' %判定是否大于 3 倍的标准差若大于就将其赋 0 %3 倍的标准差 %原始数据
MATLAB 程序: hold on fplot('(1/(sqrt(2*pi)*0.5))*exp(-(x^2)/(2*0.5^2))',[-10 10],'r');% u 值=0 x 轴范围-10~10 标准偏差 0.5 红色 fplot('(1/(sqrt(2*pi)*1))*exp(-(x^2)/(2*1^2))',[-10 10],'g'); -10~10 标准偏差 1.0 绿色 x 轴范围 %% u 值 =0 x 轴范围
1.5000
MATLAB 程序: (3)
X2=[1.52 1.46 1.61 1.54 1.55 1.49 1.68 1.46 1.5];%%剔除粗大误差后的数据 %%数据 X2 的均值 %%数据 X2 的标准差
U=mean(X2); A=std(X2);
result_max=U+3*A %%上限 result_min=U-3*A %%下限
X=[12 13 14 15 16 18 20 22 24 26]; %% X 方向数据 Y=[52 55 58 61 65 70 75 80 85 91]; %% Y 方向数据 hold on for i=1:10 plot(X(i),Y(i),'*') end 结果: %% 绘制 X Y 的散点图
误差理论与数据处理 实验报告
班 学 姓
级 号 名
测控 10-1 13 刘英皓 庄 严
指导老师
2012 年 7 月 5 日
测控 10-3
刘英皓
前言
门捷列夫说:“科学是从测量开始的” 钱学森说:“新技术革命的关键技术是信息技术。信息技术由测量技术、计 算机技术、通讯技术三部分组成。测量技术是关键和基础”。 测量技术是新科技革命的关键部分,科学技术的发展与实验测量密切相关。 在进行实验测量时,产生误差是不可避免的。因此,必须借助误差理论,研究、 估计和判断测量的数据和结果是否精确可靠,并采用正确的数据处理方法,以提 高测量结果的精确程度。 误差理论是我们认识客观规律的有力工具,是工程学科 学生应该掌握的基础知识 。 但是与此同时, 误差理论具有较为繁复的数据处理量, 有时候面对这些数据, 我们也无能为力,习惯采用经验估计去解决现实问题。毋庸置疑,这样做,引入 的误差必然相当大。 MATLB 具有强大的数据处理能力,若是借助 MATLB 处理那些难以处理的 数据,既可以节约时间,又可以提高精确度。本实验的主旨,就是通过使用 MATLAB 处理数据,让我们体会计算机辅助处理数据优点,让我们更直接,更 直观观察结果。
x=[20.0005,19.9996,20.0003,19.9994,20.0002]; %数据 ave=sum(x)/length(x) var=std(x) %求标准差
结果:
ave = 20
3
测控 10-3
刘英皓
var =4.7434e-004
3. 实验数据综合处理 目的:学会利用 MATLAB 软件整理实验数据,掌握 MATLAB 软件的数据 处理方法。 要求:整理下列 10 个测量数据,并给出测量结果的最后表达式。 1.52,1.46,1.61,1.54,1.55,1.49,1.68,1.46,1.83,1.50 (1)采用 3 准则和格拉布斯准则剔除粗大误差,直到没有为止。 (2)采用马利科夫准则判断系统误差,给出判断结果。 (3)以三倍标准差的形式给出测量结果的最后表达式。 分析:用 3 准则剔除粗大误差,跟据定义进行判断,若是满足剔除条件就 将该数据赋给 0;马利科夫准则判断系统误差方法类似;最后根据剔除之后的数 据在进行求均值和标准差,利用三倍标准差的形式写出,数据的上下限。 MATLAB 程序: (1)
( x )2 1 exp ,其中 可以自定。 2 2 2
分析:根据实验要求,要想输出正态分布曲线,可以用 plot(x,y,’选项’)实现, x 的范围可以自定义, yi 分别为要求的 为 0.5、1、1.5 时的三条正态分布曲线 对应的函数,’选项’这里只需单纯的设定为对应的颜色要求。
7
测控 10-3
刘英皓
图2
MATLAB 程序: (2)
X=[12 13 14 15 16 18 20 22 24 26]; %% X 方向数据 Y=[52 55 58 61 65 70 75 80 85 91]; %% Y 方向数据 hold on for i=1:10 %% 绘制 X Y 的散点图 plot(X(i),Y(i),'*') end p=polyfit(X,Y,1); %% 多项式数据拟合 x y 的一阶拟合 PA=polyval(p,X); %% 计算多项式的值 plot(X,PA, 'g') %% 输出拟合直线
结果:
4
测控 10-3
刘英皓
X1 = 1.5200 1.5000 1.4600 1.6100 1.5400 1.5500 1.4900 1.6800 1.4600 1.8300
MATLAB 程序: (2)
x2=[1.52,1.46,1.61,1.54,1.55,1.49,1.68,1.46,1.83,1.50]; %%原始数据 g2=[2.41,2.32,2.22,2.10,1.94,1.75,1.49,1.16,0,0,0]; u2=mean(x2); a2=std(x2); for i2=1:10 v2=abs(x2(i2)-u2); if v2>=(g2(i2)*a2) x2(i2)=0; break; %%当偏差大于 对应的 x(i) 赋给 0 end end for i2=1:10 x2(i2); end X2=x2' 结果: (剔除了第九个数据 1.83) X2 = 1.5200 1.4600 1.6100 1.5400 1.5500 1.4900 1.6800 1.4600 0 说明原始数据中存在粗大误差;