En matematiko la eŭklida distancoeŭklida metriko estas la "ordinara" distanco inter du punktoj, mezurebla per rektilo. Tiu distanco estas invarianta sub turnado (rotacio) de la koordinata sistemo, kio povas esti pruvita per ripetita apliko de la pitagora teoremo. Per uzo de tiu formulo kiel distanco, eŭklida spaco iĝas metrika spaco, eĉ hilberta spaco. Pli malnova literaturo nomas tiun metrikon pitagora metriko.

Difino

La eŭklida distanco inter du punktoj kaj , en eŭklida n-spaco estas difinita kiel:

Unu-dimensia distanco

Por du 1D-punktoj, kaj , la distanco estas kalkulebla kiel:

La absolut-valoraj signoj estas uzataj, ĉar distanco estas normale konsiderata kiel sensigna skalara valoro.

Du-dimensia distanco

Por du 2D-punktoj, kaj , la distanco estas komputita kiel:

Proksimumaj du-dimensiaj kalkuladoj por komputilaj aplikoj

Rapida proksimuma kalkulado de du-dimensia distanco bazita sur okangula rando povas esti komputita kiel sekvas. Estu (absoluta valoro) kaj . Se , proksimuma distanco estu . (Se , interŝanĝu tiujn valorojn.) La diferenco al la ĝusta distanco estas inter −6 % kaj +3 %; pli ol 85 % de ĉiuj eblaj diferencoj estas inter −3% kaj +3%.

image:fasteuclid.png

Jena Maple-kodo realigas tiun proksimuman kalkuladon kaj produktas la grafikan prezenton dekstre, kun vera cirklo en nigro kaj la okangula proksimuma rando en ruĝo:

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(rad(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
);

Ankaŭ aliaj proksimumaj kalkuladoj ekzistas. Oni ĝenerale provas eviti la kvadratan radikon, kiu estas multekosta operacio rilate al procezada tempo, kaj atingi diversajn rilatumojn inter eraro kaj rapido. Per uzo de la ĉi-supra notacio, dx + dy − (1/2)×min(dx,dy) rezultigas eraron en intervalo de 0 % al 12 % (atribuita al Alan Paeth). Pli bona proksimuma kalkulado rilate al RMS-eraro estas: dx + dy − (5/8)×min(dx,dy), rezultiganta eraron en intervalo de −3 % al 7 %.

Ankaŭ notu, ke kiam oni komparas distancojn (por trovi la pli grandan, ne por kalkuli la diferencon), tute ne necesas kalkuli la kvadratan radikon. Se distanco estas pli granda ol distanco , tiam ankaŭ estos pli granda ol . Aŭ, kiam oni kontrolas, ĉu distanco estas pli granda ol , tio estas la sama kiel kompari kun , kaj tiel plu. Ekzemplo de la unua kazo povus esti, kiam oni provas difini, kiu punkto el punkto-krado estas plej proksima al donita ne-krada punkto. Tio tamen ne vere estas proksimuma kalkulado, ĉar la rezultoj estas ekzaktaj.

Tri-dimensia distanco

Por du 3D-punktoj, kaj , la distanco estas kalkulebla kiel:

Proksimumaj tridimensiaj kalkuladoj por komputilaj aplikoj

Kiel notite en la sekcio pri du-dimensia proksimuma kalkulado, kiam oni komparas distancojn (por trovi la pli grandan), tute ne necesas preni la kvadratan radikon. Se distanco estas pli granda ol distanco , tiam ankaŭ estos pli granda ol .

Ekzemplo estas kiam oni serĉas la minimuman distancon inter du surfacoj en 3D-spaco. Komence oni konstruas punktan kradon sur ĉiu surfaco, kaj komparas la distancon de ĉiu krada punkto sur la unua surfaco kun ĉiu krada punkto sur la dua surfaco. Ne necesas scii la realajn distancojn, sed nur kiu distanco estas la plej malgranda. Kiam la plej proksimaj du punktoj estas trovitaj, oni kreas multe pli malgrandan punktan kradon ĉirkaŭ tiuj plej proksimaj punktoj sur ĉiu surfaco kaj ripetas la procezo. Post kelkaj ripetoj, la plej proksimaj du punktoj povas tiam esti komputitaj kun ajna dezirata precizeco; nur tiam oni prenas (unufoje) la kvadratan radikon por kalkuli ilian distancon.

Vidu ankaŭ

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.