読者です 読者をやめる 読者になる 読者になる

mu chance or much chance ?

日々の戯れ言

距離の可視化

math

仕事で,『ユークリッド距離』,『マンハッタン距離』,『チェビシェフ距離』を

使用する機会があったので,gnuplotで可視化してみました.

ユークリッド距離

ピタゴラスの公式によって求められる一般的な距離

{P_{1}(x_{1}, y_{1})}と点{P_{2}(x_{2}, y_{2})}ユークリッド距離は,

{ \displaystyle
d_{e} = \sqrt{(x_{1} - x_{2})^{2} + (y_{1} - y_{2})^{2}}
}

となる.

gnuplot> set isosample 100, 100
gnuplot> set xrange[-10:10]
gnuplot> set yrange[-10:10]
gnuplot> set size square
gnuplot> set pm3d map
gnuplot> splot sqrt(x * x + y * y)

f:id:muchance:20160705195517p:plain
2次元の場合,○(円)上に距離が広がります.

マンハッタン距離

各座標の差の絶対値の総和

{P_{1}(x_{1}, y_{1})}と点{P_{2}(x_{2}, y_{2})}のマンハッタン距離は,

{ \displaystyle
d_{m} = |x_{1} - x_{2}| + |y_{1} - y_{2}|
}

となる.

gnuplot> set isosample 100, 100
gnuplot> set xrange[-10:10]
gnuplot> set yrange[-10:10]
gnuplot> set size square
gnuplot> set pm3d map
gnuplot> splot abs(x) + abs(y)

f:id:muchance:20160705200747p:plain
2次元の場合,◇(ひし形)上に距離が広がります.

チェビシェフ距離

各座標の差の絶対値の最大値

{P_{1}(x_{1}, y_{1})}と点{P_{2}(x_{2}, y_{2})}のチェビシェフ距離は,

{ \displaystyle
d_{c} = max(|x_{1} - x_{2}|, |y_{1} - y_{2}|)
}

となる.

gnuplot> set isosample 100, 100
gnuplot> set xrange[-10:10]
gnuplot> set yrange[-10:10]
gnuplot> set size square
gnuplot> set pm3d map
gnuplot> splot abs(x) > abs(y) ? abs(x) : abs(y)

f:id:muchance:20160705201451p:plain
2次元の場合,□(正方形)上に距離が広がります.

このように可視化すれば,イメージしやすいのでオススメです.

この記事を書くのに

gnuplot> splot abs(x) > abs(y) ? abs(x) : abs(y)

上記のような,三項演算子を使用したplotの方法が一番勉強になりました.