Find x,y,z coordinations of a point given a set of other points with known distances
2 views (last 30 days)
Show older comments
Hi,
I have a data set where I have 4-7 points (x,y,z) with known coordinates over time (100 time frames). At one time frame I have another point (C), from which I can extract the distance to each of the 4-7 known points. In all of the other frames, I want to determine the x,y,z coordinate of where that point (C) would be. What is the easiest way to do this? I figure this must be a triangulation problem, but Im not sure how to get at it. Or if there are toolboxes that might have code set up to do this.
Thanks,
1 Comment
John D'Errico
on 28 Oct 2014
Edited: John D'Errico
on 28 Oct 2014
I added the multilateration tag because that is the name used when I find this problem described in the literature.
Accepted Answer
John D'Errico
on 27 Oct 2014
Edited: John D'Errico
on 27 Oct 2014
If you have more than 3 points, then it is possible (actually very likely) that there is no exact solution.
Essentially, if you KNOW the distance from a given point, then the solution MUST lie on the surface of a sphere of that radius. The intersection of 2 such spheres, assuming that the problem is non-degenerate, will be a circle. A third sphere will intersect with that circle in two points (or one or none.) Add a 4th sphere (or more) to the mix, and if these are measured points with some noise in them, then there will be probably no exact solution.
One can actually formulate the problem in a linear least squares sense. I imagine there must be some code on the file exchange. (I'll look and coem back to this.)
4 Comments
Sam Tong
on 25 Sep 2016
So is there any progress with this question? Is there some solution for adapt with 4 or more points in 2D space?
John D'Errico
on 25 Sep 2016
Edited: John D'Errico
on 25 Sep 2016
If the actual distances to a given set of points are known, then the answer is easy, as the problem reduces to a linear system of equations in the unknown best point. Thus, write out the system as a set of equations for circles, then subtract one from the rest. All of the squared terms in the unknowns should drop out, leaving a linear system to solve. backslash will then suffice.
If only the relative differences are known, then the problem reduces to a nonlinear optimization problem. That is the classical multilateration problem. It is solvable using tools from the optimization toolbox. lsqnonlin should work.
So which case is your problem?
More Answers (0)
See Also
Categories
Find more on Triangulation Representation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!