MATLAB组合测量(最小二乘处理)减小随机误差


% 初始化必要参数
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)

代码中注释部分提供了验证参考

可用以下数据进行验证

数据来源《误差理论与数据处理》费业泰老师

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值