% 定义目标点位置
x_target = 100;
y_target = 150;
% 初始飞机位置
x_aircraft1 = 0;
y_aircraft1 = 0;
x_aircraft2 = 0;
y_aircraft2 = 50;
% 计算飞机到目标点的距离
distance_to_target1 = @(x, y) sqrt((x - x_target)^2 + (y - y_target)^2);
distance_to_target2 = @(x, y) sqrt((x - x_target)^2 + (y - y_target)^2);
% 计算飞机到目标点的角度
angle_to_target1 = @(x, y) atan2(y_target - y, x_target - x);
angle_to_target2 = @(x, y) atan2(y_target - y, x_target - x);
% 模拟飞机的运动和测量
for t = 1:20
% 更新飞机位置(简单起见,假设飞机匀速运动)
x_aircraft1 = x_aircraft1 + 10;
y_aircraft1 = y_aircraft1 + 6; % 沿对角线运动,使其有一定的角度
x_aircraft2 = x_aircraft2 +10;
y_aircraft2 = y_aircraft2 +6;
% 记录飞机位置
trajectory_aircraft1 = [trajectory_aircraft1; x_aircraft1, y_aircraft1];
trajectory_aircraft2 = [trajectory_aircraft2; x_aircraft2, y_aircraft2];
% 计算测量角度,用弧度表示
angle1 = angle_to_target1(x_aircraft1, y_aircraft1);
angle2 = angle_to_target2(x_aircraft2, y_aircraft2);
% 计算目标的位置坐标的斜率
m1 = tan(angle1);
m2 = tan(angle2);
x_position=(y_aircraft1- y_aircraft2-m1*x_aircraft1+m2*x_aircraft2)/(m2-m1);
y_position=(y_aircraft1*m2-m1* y_aircraft2-m1*m2*x_aircraft1+m1*m2*x_aircraft2)/(m2-m1);
%计算目标的位置坐标
% 显示结果
fprintf('时刻 %d:\n', t);
fprintf('飞机1的位置:(%d, %d)\n', x_aircraft1, y_aircraft1);
fprintf('飞机2的位置:(%d, %d)\n', x_aircraft2, y_aircraft2);
fprintf('飞机1测量到的角度:%.10f\n', rad2deg(angle1));
fprintf('飞机2测量到的角度:%.10f\n\n', rad2deg(angle2));
fprintf('m1:%.10f\n\n',m1);
fprintf('m2:%.10f\n\n', m2);
fprintf('目标X坐标:%.10f\n\n', x_position);
fprintf('目标Y坐标:%.10f\n\n', y_position);
end
求助大佬们,为什么算的目标位置一直是准确位置100,150