基于MATLAB的误差数据处理实验报告

发布时间:2014-06-16 13:33:13

《误差理论与数据处理》实验

20121138晋美扎巴·测控三班

实验一:MATLAB软件基础

(一)实验目的:熟悉MATLAB软件的用户环境;了解MATLAB软件的一般目的命令;掌握MATLAB教组操作与运算函数;掌握MATLAB软件的基本绘图命令;掌握MATLAB语言的几种循环、条件和开关选择结构。

(二)实验内容:

1. MATLAB软件的数组处理及运算操作

E=eye(3,3);

R=rand(3,2);

O=zeros(2,3);

S=[2,0;0,4];

A=[E,R;O,S]

B=[E,R+R*S;O,S^2]

C=A*A

所以B=C,原结论成立。

2. 直接使用MATLAB软件进行作图练习

1t=-1:0.01:1;

x=sin(2*pi*t);

y=cos(2*pi*10*t);

plot(t,x,t,y)

xlabel('t');ylabel('函数值')

legend('正弦函数','余弦函数')

2

1) x=-10:0.01:10;

y=normpdf(x,0,1);

plot(x,y)

3[x,y]=meshgrid(-10:0.05:10);

z=sin(pi*sqrt(x.^2+y.^2));

mesh(x,y,z);

3.MATLAB语言编写命令M-文件和函数M-文件

a=input('请输入a的值')

x0=a./2

x1=(x0+a./x0)./2

while(abs((x0-x1)>1e-5))

x0=x1;

x1=(x0+a./x0)./2;

end

digits(8)

vpa(x1)

实验二:测量数据的统计分析

(一)实验目的:通过对测量数据进行统计分析,学习掌握测量数据统计分析的基本方法。

(二)实验内容:

1. >> x=normrnd(10,5,500,1);

>> mu=mean(x)

mu =9.7672

>> sigma=std(x)

sigma =4.8754

>> va=var(x)

va =23.7697

>> hist(x)

>> y=normpdf(x,mu,sigma);

>> plot(x,y)

2. x=-15:0.01:15;

y1=normpdf(x,0,1);

y2=normpdf(x,0,4);

y3=normpdf(x,10,1);

plot(x,y1,y2,y3);

3.>> x=randn(500,1);

>> mu=mean(x);

>> va=var(x);

>> cs=skewness(x);

>> ck=kurtosis(x);

>> hist(x);

>> sigma=std(x);

>> y=normpdf(x,mu,sigma);

>> plot(x,y)

>> cs

cs =0.1117

>> ck

ck =3.0089

>> mu

mu =0.0730

>> va

va=0.9981

4. >> x=-5:0.1:5;

>> y1=tpdf(x,5);

>> y2=tpdf(x,10);

>> y3=tpdf(x,20);

>> z=normpdf(x,0,1);

>> plot(x,y1,x,y2,x,y3,x,z)

5.>> x=0:0.2:30;

>> y1=chi2pdf(x,5);

>> y2=chi2pdf(x,10);

>> y3=chi2pdf(x,20);

>>plot(x,y1,x,y2,x,y3)

6.x=0:0.01:10;

y1=fpdf(x,4,5);

y2=fpdf(x,10,20);

y3=fpdf(x,50,50);

plot(x,y1,x,y2,x,y3)

实验三:等精度和非等精度直接测量数据处理

(一)实验目的:通过本实验使学生掌握等精度和非等精度直接测量数据的基本处理方法;学习如何发现和处理测量列中的随机误差、系统误差和粗大误差,如何科学地表达测量结果。

(二)实验内容:

l=[24.674,24.675,24.673,24.676,24.671,24.678,24.672,24.674];

x1=mean(l);

v=l-x1;

a=sum(v);

ah=abs(a);

bh=ah-(8/2)*0.0001;

xt=sum(v(1:4))-sum(v(5:8));

bz=sqrt((sum(v.^2)/7));

p=sort(l)

g0=2.03;

g1=(x1-p(1))/bz;

g8=(p(8)-x1)/bz;

sc=bz/(sqrt(8));

t=2.36;

jx=t*sc

l1=x1+jx;

l2=x1-jx

结果:p =24.6710 24.6720 24.6730 24.6740 24.6740 24.6750 24.6760 24.6780

jx =0.0019

l2 =24.6723

实验四:分析发现测量数据中的系统误差

(一)实验目的:通过本实验使学生掌握分析、发现测量数据中系统误差的基本数据原理;掌握分析发现单个测量列中系统误差的基本方法;掌握采用假设检验的统计分析方法分析两组测量数据间是否存在系统误差的方法。

(二)实验内容:

1.残余误差观察法

x=[20.06 20.07 20.06 20.08 20.10 20.12 20.11 20.14 20.18 20.18 20.21 20.19];

p=mean(x);

for n=1:8

b(1,n)=x(n)-p;

end

b

plot(b)

xlabel('X');

ylabel('Y');

马利科夫准则:n=12;K=6;

(-0.0650-0.0550-0.0650-0.0450-0.0250-0.0050)-(-0.0150+0.0150 +0.0550+0.0550+0.0850+0.0650)= -0.5200;

不同公式计算标准差比较法:

x=[20.06 20.07 20.06 20.08 20.10 20.12 20.11 20.14 20.18 20.18 20.21,20.19];

n=length(x)

sigma1=std(x);

p=mean(x);

for m=1:12;

b(1,m)=x(m)-p;

end

b

sigma2=1.253*sum(abs(b))./sqrt(n*(n-1));

u=1-sigma2./sigma2;

if u>=2./sqrt(n-1)

disp('怀疑测量列中存在系统误差')

else disp('测量列中不存在系统误差')

end

结果为:b =

Columns 1 through 10

-0.0650 -0.0550 -0.0650 -0.0450 -0.0250 -0.0050 -0.0150 0.0150 0.0550 0.0550

Columns 11 through 12

0.0850 0.0650

测量列中不存在系统误差

2.秩和检验法

x1=[14.7 14.8 15.2 15.6];

x2=[14.6 15.0 15.1];

y=[x1 x2];

y=sort(y);

T=0;

for n=1:length(x2);

for i=1:length(y);

if(x2(n)==y(i))

T=T+i;

end

end

end

T1=7;T2=17;T

if((TT1))

disp('无根据怀疑两组数据之间存在系统误差')

end

T =10

无根据怀疑两组数据之间存在系统误差

3.t检验法

x=[1.9 0.8 1.1 0.1 -0.1 4.4 5.5 1.6 4.6 3.4];

y=[0.7 -1.6 -0.2 -1.2 -0.1 3.4 3.7 0.8 0.0 2.0];

nx=length(x);ny=length(y);

xp=mean(x);yp=mean(y);

for n=1:10;

remainx(1,n)=x(n)-xp;

remainy(1,n)=y(n)-yp;

end

sigmax2=sum(remainx.^2)/nx;

sigmay2=sum(remainy.^2)/ny;

t=(xp-yp)*sqrt(nx*ny*(nx+ny-2)/((nx+ny)*(nx*sigmax2+ny*sigmay2)));

mu=nx+ny-2;

aplha=0.05;

p=2.10;

if abs(t)

disp('无根据怀疑两组数据间存在系统误差')

else disp('两组数据间存在系统误差')

end

T= 1.8608

无根据怀疑两组数据间存在系统误差

实验五:线性函数的最小二乘法处理

(一)实验目的:本实验要求学生编写最小二乘数据处理程序并对组合测量数据进行处理,求出最佳估计值并进行精度分析。

(二)实验内容:

L=[1.015;0.985;1.020;2.016;1.981;3.032]

A=[1,0,0;0,1,0;0,0,1;1,1,0;0,1,1;1,1,1]

C=inv(A'*A)

X=C*A'*L

x1=X(1,1),x2=X(2,1),x3=X(3,1)

V=L-A*X

v1=V(1,1),v2=V(2,1),v3=V(3,1),v4=V(4,1),v5=V(5,1),v6=V(6,1)

b=sqrt((v1^2+v2^2+v3^2+v4^2+v5^2+v6^2)/3)

d11=C(1,1),d22=C(2,2),d33=C(3,3)

bx1=b*sqrt(d11)

bx2=b*sqrt(d22)

bx3=b*sqrt(d33)

bx1 =0.0095

bx2 =0.0095

bx3 =0.0095

实验六:一元/多元回归数据处理

(一)实验目的:通过本实验使学生掌握一元线性回归方程的求解和方差分析、显著性检验方法;掌握一元非线性回归方程的求解和显著性检验方法;掌握多元线性回归方程的求解和方差分析、显著性检验方法;掌握回归数据处理的程序设计方法。

(二)实验内容:

1.x=[26.8 25.4 28.9 23.6 27.7 23.9 24.7 28.1 26.9 27.4 22.6 25.6];

y=[26.5 27.3 24.2 27.1 23.6 25.9 26.3 22.5 21.7 21.4 25.8 24.9];

A=[ones(1,12);x]';

B=[ones(1,12);y]';

a=inv(A'*A)*A'*y';

b=inv(B'*B)*B'*x';

x1=20:.1:30;

y2=20:.1:30;

y1=a(1)+a(2)*x1;

x2=b(1)+b(2)*y2;

plot(x,y,'o',x1,y1,y2,x2)

yg=a(1)+a(2)*x;

U=sum((yg-mean(y)).^2);

Q=sum((y-yg).^2);

F=U./(Q./10);

S2=Q/10;

S=Q+U;

U,Q,F,S2,S

U =20.2621

Q =26.8845

F =7.5367

S2=2.6885

S =47.1467

2.x=[1.585 2.512 3.979 6.310 9.988 15.85];

y=[0.03162 0.02291 0.02089 0.01950 0.01862 0.01513];

z2=log(x),z1=log(y);

plot(z2,z1)

A=[ones(1,6);z2]';

a=inv(A'*A)*A'*z1';

x1=1:.1:20;

y1=exp(a(1))*x1.^a(2);

plot(x,y,'o',x1,y1)

3.

x1=[1.32 2.69 3.56 4.41 5.35 6.20 7.12 8.87 9.80 10.65];

x2=[1.15 3.40 4.10 8.75 14.82 15.15 15.32 18.18 35.19 40.40];

y=[6.40 15.05 18.75 30.25 44.85 48.94 51.55 61.50 100.44 111.42];

X=[ones(1,10);x1;x2]';

b=inv(X'*X)*X'*y'

yg=b(1)+b(2)*x1+b(3)*x2;

yp=ones(1,10)*mean(y);

U=sum((yg-yp).^2);

Q=sum((y-yg).^2);

F=(U./2)./(Q./7);

sigma2=Q./7;

C=inv(X'*X);

c=[C(1,1) C(2,2) C(3,3)];

p=(b.^2)'./c;

Fi=p./(ones(1,3)*sigma2)

计算结果为:

b =0.5800 2.7122 2.0497

U =1.0953e+04 Q =3.0213 F =1.2689e+04

c =0.8532 0.0946 0.0054

p =0.3942 77.7452 784.3587

Fi =0.9 180.1 1817.0*

F值远远大于F0.0127=9.55,则此回归方程在0.01的水平上是显著的。

F分布表,得F0.01(1,7)=12.25,F1=180.1F2=1817.0,两者远远大于F0.01(1,7)=12.25,故x1x2都为主要因素

基于MATLAB的误差数据处理实验报告

相关推荐