How to determine a new point's location using 4 distances from 4 known points?

1 Ansicht (letzte 30 Tage)
I have 4 point locations on a 2-D x,y plane, P1,P2,P3,P4 (X and Y ). I have 4 distances s1,s2,s3,s4 (in meters) from the 5th point say P5. I have to determine the location (X axis and Y axis) of P5. I tried the following methods:
Observation vector: [s1,s2,s3,s4] = [1925.56; 2957.43; 1827.43; 2199.27] (in meters)
Given coordinates:
P1=[x,y]=[47746.455,73932.482]
P2=[70210.345, 46085.117]
P3=[70417.924,49 057.160]
P4=[73468.228,50081.723]
Approximate values:
={X_0, Y_0] = [48355.45 72105.47]
I have to determine the balanced lines 𝑠1, 𝑠2, 𝑠3, 𝑠4 in an adjustment based on mediating observations.

Antworten (1)

Image Analyst
Image Analyst am 19 Dez. 2021
Some errors in your code that I've corrected:
% [s1,s2,s3,s4] =
s = [1925.56; 2957.43; 1827.43; 2199.27]; % (in meters)
% Given coordinates:
P1=[47746.455,73932.482];
P2=[70210.345, 46085.117];
P3=[70417.924, 49057.160];
P4=[73468.228, 50081.723];
viscircles([P1;P2;P3;P4], s);
grid on;
% Approximate values:
% = [X_0, Y_0] = [48355.45, 72105.47]
X_0 = 48355.45;
Y_0 = 72105.47;
hold on;
plot(X_0, Y_0, 'g+', 'LineWidth', 3, 'MarkerSize', 50)
As you can see there is no point where it matches all 4 distances from the respective points. And your "answer" (green crosshairs) is not near where three of the circles cross.
I'm attaching a demo that might help.
  2 Kommentare
Umair Ahmed
Umair Ahmed am 19 Dez. 2021
Thanks a lot. Also, I want to add that there seems a mistake in my explanation of X and Y coordinates here. They are different in my script. How about we switch x and y values here , lets say
P1=[73932.482,47746.455]; instead of previous one i.e. P1=[47746.455,73932.482];
and same for all. Would that make a difference?
Image Analyst
Image Analyst am 19 Dez. 2021
OK
% [s1,s2,s3,s4] =
s = [1925.56; 2957.43; 1827.43; 2199.27]; % (in meters)
% Given coordinates:
P1=[73932.482,47746.455];
P2=[70210.345, 46085.117];
P3=[70417.924, 49057.160];
P4=[73468.228, 50081.723];
viscircles([P1;P2;P3;P4], s);
grid on;
% Approximate values:
% = [X_0, Y_0] = [48355.45, 72105.47]
X_0 = 48355.45;
Y_0 = 72105.47;
hold on;
plot(X_0, Y_0, 'g+', 'LineWidth', 3, 'MarkerSize', 50)
Yes the 4 circles do seem like they all intersect at a really close location.
So how do you want to solve this? You said " I tried the following methods" but then you didn't actually list any of the methods you tried. All the "code" you gave was just setting up the initial parameters. It sounds like your homework so I probably can't just hand over the answer.
So list one or more of your methods and we'll try to fix them. Or you can try to adapt my explosion demo to your numbers.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Just for fun finden Sie in Help Center und File Exchange

Produkte


Version

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by