有6个必要观测,4个多余观测的间接平差的matlab代码
时间: 2023-12-03 17:47:16 浏览: 98
以下是6个必要观测,4个多余观测的间接平差的MATLAB代码示例。
```matlab
% 6个必要观测
a = [100, 200];
b = [300, 400];
c = [500, 200];
d = [700, 400];
e = [900, 200];
f = [1100, 400];
% 4个多余观测
g = [1000, 300];
h = [600, 200];
i = [800, 400];
j = [1200, 200];
% 构建观测方程,共6个必要观测和4个多余观测
A = [-1, 0, 1, 0, 0, 0, 0, 0, 0, 0;
0, -1, 0, 1, 0, 0, 0, 0, 0, 0;
0, 0, -1, 0, 1, 0, 0, 0, 0, 0;
0, 0, 0, -1, 0, 1, 0, 0, 0, 0;
0, 0, 0, 0, -1, 0, 1, 0, 0, 0;
0, 0, 0, 0, 0, -1, 0, 1, 0, 0;
0, 0, 0, 0, 0, 0, -1, 0, 1, 0;
0, 0, 0, 0, 0, 0, 0, -1, 0, 1];
% 构建常数项
L = [b(1)-a(1); b(2)-a(2); c(1)-b(1); c(2)-b(2); d(1)-c(1); d(2)-c(2); e(1)-d(1); e(2)-d(2); f(1)-e(1); f(2)-e(2)];
% 加入多余观测
A = [A; -1, 0, 0, 0, 0, 0, 1, 0, 0, 0;
0, -1, 0, 0, 0, 0, 0, 1, 0, 0;
0, 0, -1, 0, 0, 0, 0, 0, 1, 0;
0, 0, 0, -1, 0, 0, 0, 0, 0, 1];
L = [L; g(1)-e(1); g(2)-e(2); h(1)-c(1); h(2)-c(2); i(1)-f(1); i(2)-f(2); j(1)-d(1); j(2)-d(2)];
% 求解正规方程组
N = A' * A;
d = A' * L;
X = N \ d;
% 输出结果
disp('坐标值为:');
disp(['a(', num2str(a(1)), ',', num2str(a(2)), ')']);
disp(['b(', num2str(b(1)), ',', num2str(b(2)), ')']);
disp(['c(', num2str(c(1)), ',', num2str(c(2)), ')']);
disp(['d(', num2str(d(1)), ',', num2str(d(2)), ')']);
disp(['e(', num2str(e(1)), ',', num2str(e(2)), ')']);
disp(['f(', num2str(f(1)), ',', num2str(f(2)), ')']);
```
阅读全文