Euclidean distance

From Wikipedia, the free encyclopedia

(Redirected from Euclidean metric)
Jump to: navigation, search

In mathematics, the Euclidean distance or Euclidean metric is the "ordinary" distance between two points that one would measure with a ruler, which can be proven by repeated application of the Pythagorean theorem. By using this formula as distance, Euclidean space becomes a metric space (even a Hilbert space). Older literature refers to this metric as Pythagorean metric. The technique has been rediscovered numerous times throughout history, as it is a logical extension of the Pythagorean theorem.

Contents

The Euclidean distance between points P=(p_1,p_2,\dots,p_n)\, and Q=(q_1,q_2,\dots,q_n)\,, in Euclidean n-space, is defined as:

\sqrt{(p_1-q_1)^2 + (p_2-q_2)^2 + \cdots + (p_n-q_n)^2} = \sqrt{\sum_{i=1}^n (p_i-q_i)^2}.

For two 1D points, P=(p_x)\, and Q=(q_x)\,, the distance is computed as:

\sqrt{(p_x-q_x)^2} = | p_x-q_x |

The absolute value signs are used, since distance is normally considered to be an unsigned scalar value.

For two 2D points, P=(p_x,p_y)\, and Q=(q_x,q_y)\,, the distance is computed as:

\sqrt{(p_x-q_x)^2 + (p_y-q_y)^2}

Alternatively, expressed in circular coordinates (also known as polar coordinates), using P=(r_1, \theta_1)\, and Q=(r_2, \theta_2)\,, the distance can be computed as:

\sqrt{r_1^2 + r_2^2 - 2 r_1 r_2 \cos(\theta_1 - \theta_2)}

A fast approximation of 2D distance based on an octagonal boundary can be computed as follows. Let dx = | pxqx | (absolute value) and dy = | pyqy | . If dy > dx, approximated distance is 0.41\, dx + 0.941246\, dy . (If dy < dx, swap these values.) The difference from the exact distance is between -6% and +3%; more than 85% of all possible differences are between −3% to +3%.

The following Maple code implements this approximation:

fasthypot :=
  unapply(piecewise(abs(dx)>abs(dy), 
                    abs(dx)*0.941246+abs(dy)*0.41,
                    abs(dy)*0.941246+abs(dx)*0.41),
          dx, dy):
hypot := unapply(sqrt(x^2+y^2), x, y):
plots[display](
  plots[implicitplot](fasthypot(x,y) > 1, 
                      x=-1.1..1.1, 
                      y=-1.1..1.1,
                      numpoints=4000),
  plottools[circle]([0,0], 1),
  scaling=constrained,thickness=2
);

Other approximations exist as well. They generally try to avoid the square root, which is an expensive operation in terms of processing time, and provide various error:speed ratio. Using the above notation, dx + dy − (1/2)×min(dx,dy) yields error in interval 0% to 12% (attributed to Alan Paeth). A better approximation in term of RMS error is: dx + dy - (5/8)×min(dx,dy) and yields error in interval −3% to 7%.

Also note that when comparing distances (for which is greatest, not for the actual difference), it isn't necessary to take the square root at all. If distance A is greater than distance B, then A2 will also be greater than B2. Or, when checking to see if distance A is greater than 2B, that is the same as comparing A2 with (2B)2 or 4B2, etc. An example of the first case might be when trying to determine which nearest grid point an arbitrary point should "snap to" in a 2D CAD/CAM system. This isn't really an approximation, however, as the results are exact.

For two 3D points, P=(p_x,p_y,p_z)\, and Q=(q_x,q_y,q_z)\,, the distance is computed as

\sqrt{(p_x-q_x)^2 + (p_y-q_y)^2+(p_z-q_z)^2}.

As noted in the 2D approximation section, when comparing distances (for which is greatest, not for the actual difference), it isn't necessary to take the square root at all. If distance A is greater than distance B, then A2 will also be greater than B2. An example is when searching for the minimum distance between two surfaces in 3D space, using a 3D CAD/CAM system. One way to start would be to build a point grid on each surface, and compare the distance of every grid point on the first surface with every grid point on the second surface. It isn't necessary to know the actual distances, but only which distance is the least. Once the closest two points are located, a much smaller point grid could be created around those closest points on each surface, and the process repeated. After several iterations, the closest two points could then be fully evaluated, including the square root, to give an excellent approximation of the minimum distance between the two surfaces. Thus, the square root only needs to be taken once, instead of thousands (or even millions) of times.

Advanced Search
Included Web Search Engines


Safe Search

close

Top Matching Results

Occasionally Search.com will highlight specialized results that are based on the context of your query. Examples of specialized results include specific links to news, images, or video.

Top Matching Results may highlight information from other Search.com pages, content from the CNET Network of sites, or third party content. The listings are based purely on relevance. Search.com does not receive payment for listings in this section but our partners that provide this data may get paid for listing these products.

Sponsored Links

This section contains paid listings which have been purchased by companies that want to have their sites appear for specific search terms and related content. These listings are administered, sorted and maintained by a third party and are not endorsed by Search.com.

Search Results

Search.com sends your search query to several search engines at one time and integrates the results into one list which has been sorted by relevance using Search.com's proprietary algorithm. You can customize the list of search engines included in your metasearch from the preferences.

The search engines that are used in your metasearch may allow companies to pay to have their Web sites included within the results. To view the Paid Inclusion policy for a specific search engine, please visit their Web site. Search.com does not accept payment or share revenue with any search engine partner for listings in this section.