% 初始化必要参数
A=[1 0 0;0 1 0;0 0 1;1 1 0;1 0 1;0 1 1;1 1 1];
%A=[1 0 0;0 1 0;0 0 1;1 1 0;0 1 1;1 1 1];
%输入测量得到的数据
L_1=input("输入X_1:");
L_2=input("输入X_2:");
L_3=input("输入X_3:");
L_12=input("输入X_1+X_2:");
L_13=input("输入X_1+X_3:");
L_23=input("输入X_2+X_3:");
L_123=input("输入X_1+X_2+X_3:");
%进行计算
L=[L_1;L_2;L_3;L_12;L_13;L_23;L_123];
%L=[L_1;L_2;L_3;L_12;L_23;L_123];
C_1=inv(A'*A);
x=C_1*A'*L;
fprintf("估计值为:\n");
disp(x);
V=L-A*x;
[r,c]=size(A);
sigm=sqrt((V'*V)./(r-c)); %sigma
fprintf("精度为:\n");
disp(sigm)
sigma_123=[sigm.*sqrt(C_1(1,1)),sigm.*sqrt(C_1(1,1)),sigm.*sqrt(C_1(3,3))];
fprintf("估计量的标准差为:\n");
disp(sigma_123)
代码中注释部分提供了验证参考
可用以下数据进行验证
数据来源《误差理论与数据处理》费业泰老师