2014仪器精度理论上机作业
2014仪器精度理论上机作业
题目:
今有两个电容器,分别测量其电容,然后又将其串联和并联测量,得到如下结果:
C 1=0.2071μF
C 2=0.2056μF
C 1+C 2=0.4111μF
C 1C 2=0.1035μF C 1+C 2
试求电容器电容量的最可信赖值及其精度。
Matlab 源代码:
%首次求解X 的估计值
L=[0.2071;0.2056;0.4111]
A=[1 0;0 1;1 1];
A_transpose=A';
C_inv=inv(A_transpose*A);
X=C_inv*A_transpose*L
%L矩阵迭代初值
L_line=[0.2071;0.2056;0.4111;0.1035]
%迭代求解X 最佳估计值
i=0;
while i
i=i+1
%方程表达式
syms c1 c2
f1=c1;
f2=c2;
f3=(c1+c2);
f4=((c1*c2)/(c1+c2));
%求解偏差系数矩阵
a11 = subs(diff(f1,c1),c1,X(1));
a12 = subs(diff(f1,c2),c2,X(2));
a21 = subs(diff(f2,c1),c1,X(1));
a22 = subs(diff(f2,c2),c1,X(2));
a31 = subs(diff(f3,c1),c1,X(1));
a32 = subs(diff(f3,c2),c2,X(2));
a41_temp = subs(diff(f4,c1),c1,X(1));
a42_temp = subs(diff(f4,c2),c2,X(2));
a41 = subs(a41_temp, c2, X(2));
a42 = subs(a42_temp, c1, X(1));
A_line=[a11 a12;a21 a22;a31 a32;a41 a42]
A_line_transpose=A_line';
%将估计值代入方程, 求解L'
c1=X(1);
c2=X(2);
L_line_p=L_line-[eval(f1);eval(f2);eval(f3);eval(f4)];
%最小二乘法求解deta 的值
C_line_inv=inv(A_line_transpose*A_line);
Deta=C_line_inv*A_line_transpose*L_line_p
%迭代i 次的最佳估计值
X=X+Deta
%计算标准差
c1=X(1);
c2=X(2);
L_error=L_line-[eval(f1);eval(f2);eval(f3);eval(f4)];
L_error_transpose=L_error';
sigema=sqrt((L_error_transpose*L_error)/2)
%计算估计量的标准差
sigema_c1=sigema*sqrt(C_line_inv(1))
sigema_c2=sigema*sqrt(C_line_inv(4))
end
运行结果:
L =
0.2071
0.2056
0.4111
X =
0.[**************]
0.[**************]
L_line =
0.2071
0.2056
0.4111
0.1035
i =
1
A_line =
1 0
0 1
1 1
0.[**************] 0.[**************]
Deta =
4.[1**********]972e-005
4.[1**********]686e-005
X =
0.[**************]
0.[1**********]188
sigema =
0.[***********]
sigema_c1 =
0.[***********]
sigema_c2 =
0.[***********]
i =
2
A_line =
1 0
0 1
1 1
0.[**************] 0.[**************]
Deta =
1.[1**********]188e-009
-1.[1**********]759e-009
X =
0.[**************]
0.[**************]
sigema =
0.[***********]
sigema_c1 =
0.[***********]
sigema_c2 =
0.[**************]67
i =
3
A_line =
1 0
0 1
1 1
0.[**************] 0.[**************]
Deta =
-2.[1**********]378e-012
2.[1**********]16e-012
X =
0.[**************]
0.[**************]
sigema =
0.[***********]
sigema_c1 =
0.[***********]
sigema_c2 =
0.[***********]
i =
4
A_line =
1 0
0 1
1 1
0.[**************] 0.[**************]
Deta =
3.[1**********]699e-015
-3.[1**********]553e-015
X =
0.[**************]
0.[**************]
sigema =
0.[***********]
sigema_c1 =
0.[***********]
sigema_c2 =
0.[***********]
i =
5
A_line =
1 0
0 1
1 1
0.[**************] 0.[**************]
Deta =
-7.[1**********]008e-018
8.[1**********]521e-018
X =
0.[**************]
0.[**************]
sigema =
0.[***********]
sigema_c1 =
0.[***********]
sigema_c2 =
0.[***********]
由程序运行结果可以知,经过5次迭代,
C1的最可信赖值取0.[**************],相应标准差为0.[***********]; C2的最可信赖值取0.[**************],相应标准差为0.[***********]。