Distanza euclidea

Da Wikipedia, l'enciclopedia libera.

In matematica, la distanza euclidea è la distanza fra due punti, ossia la misura del segmento avente per estremi i due punti.

Usando questa formula come distanza, lo spazio euclideo diventa uno spazio metrico (più in particolare risulta uno spazio di Hilbert). La letteratura tradizionale si riferisce a questa metrica come metrica pitagorica.

Distanza mono-dimensionale[modifica | modifica sorgente]

Per due punti monodimensionali, P=(p_x) e Q=(q_x), la distanza è calcolata come:

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

Si utilizza il valore assoluto dato che la distanza è di norma un numero intero positivo.

Distanza bi-dimensionale[modifica | modifica sorgente]

Per due punti in due dimensioni, P=(p_x,p_y) e Q=(q_x,q_y), la distanza è calcolata come:

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

Approssimazione 2D per applicazioni informatiche[modifica | modifica sorgente]

Un'approssimazione rapida della distanza in 2D basata su un intorno ottagonale può essere calcolata come segue. Sia dx = | p_x - q_x | (valore assoluto) e dy = | p_y - q_y|. Se dy > dx, la distanza approssimata è 0.41 dx + 0.941246 dy ; se dy < dx, si invertono i due valori.

La differenza dalla distanza esatta è fra il −6% e il +3%; più dell'85% di tutte le possibili differenze sono fra il −3% e il +3%.

Il seguente codice Maple implementa questa approssimazione e produce un grafico con la circonferenza reale in nero e l'intorno ottagonale approssimato in rosso:

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

Esistono altri tipi di approssimazione. Tutte cercano generalmente di evitare le radici quadrate, dato che sono costose in termini computazionali, e sono fonte di diversi errori: rapporto di velocità. Usando la notazione di cui sopra, l'approssimazione dx + dy − (1/2)×min(dx,dy) genera un errore fra lo 0% e il 12% (attribuito ad Alan Paeth). Un'approssimazione migliore in termini di errore RMS è dx + dy − (5/8)×min(dx,dy), per la quale è stimato un errore fra il −3% e il 7%.

È bene notare che se è necessario confrontare distanze (per le quali si vuole solo sapere ad esempio qual è la maggiore, e non l'effettiva differenza) non è necessario calcolare la radice quadrata di tutte se si tiene conto delle seguenti proprietà:

  • Se A^2 è maggiore di B^2, allora anche la distanza A sarà maggiore della distanza B;
  • Controllare se la distanza A è maggiore della distanza 2B è come confrontare A^2 con (2B)^2, (4B)^2 e così via.

Un esempio del primo caso potrebbe essere quello di provare a determinare in quale punto della griglia di un sistema CAD/CAM 2D potrebbe ricadere (snap to) un punto arbitrario. Questa non è realmente un'approssimazione, comunque, dato che il risultato è esatto.

Distanza tri-dimensionale[modifica | modifica sorgente]

Per due punti in tre dimensioni, P=(p_x,p_y,p_z) e Q=(q_x,q_y,q_z), la distanza è calcolata come:

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

Approssimazioni 3D per applicazioni informatiche[modifica | modifica sorgente]

Come indicato nella sezione sull'approssimazione 2D, quando si confrontano distanze (per le quali si vuole solo sapere ad esempio qual è la maggiore, e non l'effettiva differenza) non è necessario calcolare la radice quadrata di tutte. Infatti vale la regola che se A^2 è maggiore di B^2, allora anche la distanza A sarà maggiore della distanza B.

Ad esempio, se si cerca la minima distanza fra due superfici in uno spazio tridimensionale, usando un sistema CAD/CAM 3D, si potrebbe pensare di costruire una griglia di punti in ogni superficie e confrontare la distanza di ogni singolo punto nella prima superficie da ogni punto della seconda. Non è necessario conoscere la distanza effettiva, ma solo quale distanza è la minore. Una volta individuati i due punti più vicini, si può creare una griglia più piccola attorno a questi punti in ogni superficie e ripetere il procedimento. Dopo diverse iterazioni si riesce a valutare quali sono i punti più vicini in assoluto, e di questi calcolare la radice quadrata per ottenere un'ottima approssimazione della distanza minima fra le due superfici.

Distanza n-dimensionale[modifica | modifica sorgente]

In generale, per due punti in uno spazio n-dimensionale, P=(p_1, p_2, ..., p_n) e Q=(q_1, q_2, ..., q_n), la distanza è calcolata come:

\sqrt{(p_1-q_1)^2 + (p_2-q_2)^2 + \cdots + (p_n-q_n)^2} = \sqrt{\sum_{k=1}^n {(p_k-q_k)^2}}.

Voci correlate[modifica | modifica sorgente]

matematica Portale Matematica: accedi alle voci di Wikipedia che trattano di matematica