精华内容
下载资源
问答
  • 常用的向量距离公式

    千次阅读 2020-03-22 18:53:27
    欧几里得度量(educlidean metric),指在m维空间中两点之间的真实距离,或者向量的自然长度,即该点到原点的距离。 import numpy as np dist = np.sqrt(np.sum(np.square(x-y))) #或者 from scipy.spatial....

    目录

     

    1、欧式距离

    2、曼哈顿距离

    3、切比雪夫距离

    4、马氏距离


    1、欧式距离

    欧几里得度量(educlidean metric),指在m维空间中两点之间的真实距离,或者向量的自然长度,即该点到原点的距离。

    d(x,y)=\sqrt{\sum _{i=1} ^{n} (x_{i}-y_{i})^2}

    import numpy as np
    dist = np.sqrt(np.sum(np.square(x-y)))
    
    #或者
    from scipy.spatial.distance import pdist
    dist = pdist(np.vstack([x,y]))

    2、曼哈顿距离

    Manhattan Distance,也称为城市街区距离(City Block distance)。如果把欧式距离理解成点到点的直线距离,那么曼哈顿距离就指的是两点之间的实际距离(不一定是直线)。

    d(x,y) = \sum_{i=1}^{n} |x_i - y_i|

    import numpy as np
    dist = np.sum(np.abs(x-y))
    
    #或者
    from scipy.spatial.distance import pdist
    dist = pdist(np.vstack([x,y]),'cityblock')

    3、切比雪夫距离

    (Chebyshev Distance)

    d(x,y) = \lim_{i\rightarrow \infty } (\sum_{i=1}^{n} |x_i - y_i|)^{\frac{1}{i}}

    import numpy as np
    dist = np.max(np.abs(x-y))
    
    #or
    from scipy.spatial.distance import pdist
    dist = pdist(np.vstack([x,y]),'chebyshev')

    4、马氏距离

    (Mahalanobis Distance)

    d(x,y)=\sqrt{(x_i-y_i)^T S^{-1}(x_i - y_i)},其中S为协方差矩阵。

    若协方差矩阵是单位矩阵,即各个样本向量之间独立同分布,则公式就变成了欧式距离:

    d(x,y) = \sqrt{(x_i - y_i)^T (x_i - y_i)}

    若协方差矩阵是对角矩阵,公式就变成了标准化欧式距离:

    d(x,y) = \sqrt{\sum_{i=1}^{n}(\frac{x_i - y_i}{S_i})^2}

    import numpy as np
    
    X = np.vstack([x,y])
    X_T = X.T
    S = np.cov(X)#两个维度之间协方差矩阵
    SI = np.linalg.inv(S)#协方差矩阵的逆矩阵
    n = XT.shape[0]#样本之间两两组合
    dist = []
    for i in range(0,n):
        for j in range(i+1,n):
            delta = X_T[i] - X_T[j]
            d = np.sqrt(np.dot(np.dot(delta,SI), delta.T))
            dist.append(d)
    
    #or
    from scipy.spatial.distance import pdist
    X = np.vstack([x,y])
    X_T = X.T
    dist = pdist(X_T,'mahalanobis')
    
    
    #标准化欧式距离
    
    si = np.var(np.vstack([x,y]), axis=0, ddof=1)
    dist = np.sqrt(((x-y) **2 /si).sum())
    #or
    dist = pdist(np.vstack([x,y]), 'seuclidean')

     

    展开全文
  • 已知两点经纬度计算球面距离公式,一搜一大堆,形式如下: 可是至于这个公式为什么是这样的,今天推导了一下,详细推导过程如下。首先画个图(图1),要不然空间想象能力差的话容易犯糊涂。首先对图1做个大致的...

    已知两点经纬度计算球面距离的公式,一搜一大堆,形式如下:

    可是至于这个公式为什么是这样的,今天推导了一下,详细推导过程如下。首先画个图(图1),要不然空间想象能力差的话容易犯糊涂。首先对图1做个大致的说明,红色的半圆表示赤道,蓝色的圆弧表示本初子午线(也就是经度为0的子午线)。球最上方是北极点,点A和点B分别为要计算的两个点,坐标分别为A(jA,wA)和B(jB,wB)。

    图1 示意图

     

    再开始推导之前,我们需要在图中绘制一些辅助线,便于后面的描述和推导。如图1所示,A(jA,wA),B(jB,wB)两点分别为球面上的两点,坐标为经纬度表示。延A、B两点分别做垂直于赤道平面的垂线交赤道面为C、D两点。连接C、D两点,然后过A做CD的平行线交BD与点E。至此,所有的辅助线绘制完毕。假设地球为一个规则的圆球,半径为R(其实地球是一个椭球体,赤道的半径比极地的半径稍微大一点点)。

     

    第一步:确定已知条件,

     

     

    第二步:在直角和直角中有:

     

    第三步:在平面ABCD中,有:

     

    第四步:在直角中,使用勾股定理可以得到AB的直线长度。如下:

     

    第五步:这里需要引入一个公式(5),就是大名鼎鼎的余弦定理,假设三角形的三个角为A,B,C,则有:

    把上面的公式(1)、(2)、(3)、(5)带入(4)中,然后整理可以得到:

     

    最后,通过整理得到AB之间的直线距离为:

     

    第六步:我们已经知道AB的直线距离,那么AB的弧长距离可以先通过计算中对应的圆心角,然后用弧长公式计算出来。这里在依旧使用余弦定理公式(5),经过变形可以得到:

     

     

    把式(6)带入式(7),化简得到:

     

    最终,我们得到了一个关于圆心角的余弦值的公式:

     

    第七步:知道圆心角,计算弧长的公式很简单,使用半径乘以圆心角(弧度单位)即可:

     

    所以最后我们就得到了球面上AB的距离应该是:

    最后使用公式(10)就可以编写代码来计算球面上任意两点间的最短距离了。这里使用的是一个规则的球来代替的椭球的,肯定会有误差的,一般都用这个公式来进行计算。代码就不写了,也就一两句话就出来了。最后需要注意的就是,需要把经纬度都化成弧度单位。

    …………………………………………………华丽的分割线………………………………………………
    ……………………………………以下内容更新于2013年1月30日…………………………………………

    昨天使用立体几何的知识推导了一下球面两点的距离公式,发现比较复杂,今天想到一个简单的方法,使用空间直角坐标系来推导,很方便。首先我们需要建立一个空间坐标系:在赤道平面内,X轴由球心O指向本初子午线,Y轴在赤道平面内垂直于X轴,Z轴垂直于赤道平面朝向北极。还是假设AB两点的经纬度坐标为:A(jA,wA),B(jB,wB)。由该坐标系的定义以及经纬度的定义可以把上面的AB两点的坐标转换为该坐标系中的坐标如下:

     

    由两点距离公式可以得到AB的直线距离为:

     

    对于球面上的任意一个点(X,Y,Z),都有:

     

    把上面的公式整理就可以得到(下面用到了一个积化和差公式):

     

    好了,大功告成,是不是比用立体几何要简单的多。接下来就是用上面的弦长和弧长的关系来计算AB的弧长就可以了。

    展开全文
  • 谈“到直线距离公式”的向量推导方法 贵州省黄平县旧州中学 杨胜万 在人教大纲版高二数学上册中,关于到直线距离公式的推导方法,教材介绍了种推导方法,并详细给出了利用直角三角形的面积公式推导得出到直线...
    谈“点到直线距离公式”的向量推导方法
    贵州省黄平县旧州中学 杨胜万

      在人教大纲版高二数学上册中, 关于点到直线距离公式的推导方法, 教材介绍了两种推导方法, 并 详细给出了利用直角三角形的面积公式推导得出点到直线的距离公式的具体过程。其实关于点到直线的距离公式的推导方法,除上述方法之外,还有其它很多方法, 在这些方法中,向量法(利用平面向量的有关知识来推导的方法)是一种行之有效的推导方法。其推导思路简单明了、运算量也较小。下面笔者给出向量法推导点到 直线的距离的具体过程,以供同行参考:

    已知直线 和点 为点 到直线 的距离。现不妨设 ,则直线 的斜率为 ,其方向向量为 ,从而易知其法向量 ,又设点 为直线 上的任一点(如图所示),于是有:

    由平面向量的有关知识,可得:

    显然,当 时,上述公式仍成立。

    上述推导方法利用了向量的数量积知识来进行推导出了点到直线的距离公式,这是一种比较重要有数学思想方法。我们还可将这种思想方法进一步推广到在立体几何中,如何利用空间向量解决求点到平面的距离问题。

    展开全文
  • 通过向量乘积推导地球两点之间的球面距离 思路: 将点的经纬度坐标转换三维的直角坐标 根据空间中向量乘积公式a.b=∣a∣.∣b∣cos⁡θa.b=|a|.|b|\cos{\theta}a.b=∣a∣.∣b∣cosθ,得到两个点之间的角度 再根据...
    思路:
    • 将点的经纬度坐标转换三维的直角坐标
    • 根据空间中向量乘积公式a.b=a.bcosθa.b=|a|.|b|\cos{\theta},得到两个点之间的角度
    • 再根据圆弧长与圆角之间的关系lab=rθl_{ab}=r\theta,得到两个点的球面距离

    如下所示
    在这里插入图片描述
    其中A、B是球面上的两个点,O是球心,平面XOY是赤道平面,X轴方向表示0度经线,Y轴方向表示90度经线,Z轴表示北极方向。
    D是A点在赤道平面的投影, ∠AOD表示A点的维度WAW_A,∠XOD表示A点的经度JAJ_A
    C是B点在赤道平面的投影, ∠BOC表示B点的维度WBW_B,∠XOC表示B点的经度JBJ_B

    第1步:坐标转换

    xA=OD.cos(XOD)=OA.cos(AOD).cos(XOD)=r.cosWA.cosJAyA=OD.sin(XOD)=OA.cos(AOD).sin(XOD)=r.cosWA.sinJAzA=AD=OA.sin(AOD)=r.sinWAx_A=|OD|.\cos{(∠XOD)}=|OA|.\cos{(∠AOD)}.\cos{(∠XOD)}=r.\cos{W_A}.\cos{J_A} \\ y_A=|OD|.\sin{(∠XOD)}=|OA|.\cos{(∠AOD)}.\sin{(∠XOD)}=r.\cos{W_A}.\sin{J_A} \\ z_A=|AD|=|OA|.\sin{(∠AOD)}=r.\sin{W_A}

    上面rr表示地球半径, 同理可得B点的三维坐标
    xB=OC.cos(XOC)=OB.cos(BOC).cos(XOC)=r.cosWB.cosJByB=OC.sin(XOC)=OB.cos(BOC).sin(XOC)=r.cosWB.sinJBzB=AD=OB.sin(BOC)=r.sinWBx_B=|OC|.\cos{(∠XOC)}=|OB|.\cos{(∠BOC)}.\cos{(∠XOC)}=r.\cos{W_B}.\cos{J_B} \\ y_B=|OC|.\sin{(∠XOC)}=|OB|.\cos{(∠BOC)}.\sin{(∠XOC)}=r.\cos{W_B}.\sin{J_B} \\ z_B=|AD|=|OB|.\sin{(∠BOC)}=r.\sin{W_B}

    第2步:求解θ\theta角度

    根据空间中向量乘积公式OA.OB=OA.OBcosθ\overrightarrow{OA}.\overrightarrow{OB}=|OA|.|OB|\cos{\theta},得到AB两个点之间的角度
    cosθ=OA.OBOA.OB=OA.OBr2\cos{\theta}=\frac{\overrightarrow{OA}.\overrightarrow{OB}}{|OA|.|OB|}=\frac{\overrightarrow{OA}.\overrightarrow{OB}}{r^2}

    OA.OB=xA.xB+yA.yB+zA.zB=r.cosWA.cosJA.r.cosWB.cosJB+r.cosWA.sinJA.r.cosWB.sinJB+r.sinWA.r.sinWB=r2.cosWA.cosWB.(cosJA.cosJB+sinJA.sinJB)+r2.sinWA.sinWB=r2.cosWA.cosWB.cos(JAJB)+r2.sinWA.sinWB\overrightarrow{OA}.\overrightarrow{OB}=x_A.x_B+y_A.y_B+z_A.z_B\\ =r.\cos{W_A}.\cos{J_A}.r.\cos{W_B}.\cos{J_B} +\\ r.\cos{W_A}.\sin{J_A} .r.\cos{W_B}.\sin{J_B} + r.\sin{W_A}.r.\sin{W_B}\\ =r^2.\cos{W_A}.\cos{W_B}.(\cos{J_A}.\cos{J_B}+\sin{J_A}.\sin{J_B})+r^2.\sin{W_A}.\sin{W_B}\\ =r^2.\cos{W_A}.\cos{W_B}.\cos({J_A-J_B}) +r^2.\sin{W_A}.\sin{W_B}

    得到

    cosθ=cosWA.cosWB.cos(JAJB)+sinWA.sinWB\cos{\theta}=\cos{W_A}.\cos{W_B}.\cos({J_A-J_B}) +\sin{W_A}.\sin{W_B}

    第3步:求解AB两点的球面距离

    根据圆弧长与圆角之间的关系lab=rθl_{ab}=r\theta,得到
    lAB=r.θ=r.arccos(cosWA.cosWB.cos(JAJB)+sinWA.sinWB)l_{AB}=r.\theta=r.\arccos({\cos{W_A}.\cos{W_B}.\cos({J_A-J_B}) +\sin{W_A}.\sin{W_B}})

    展开全文
  • 向量距离(Distance)

    千次阅读 2019-10-31 20:31:35
    向量是一个有向线段,计算向量之间的距离,其实就是计算之间的距 离。 在 Unity 引擎内,我们可以直接通过 Vector3.Distance(v1, v2)来得到 向量之间的距离。 数学公式: 例: 公式解析: 1.求...
  • 数据距离公式

    千次阅读 2014-01-20 17:14:35
    令X=(x1,x2,..,xn)T,Y=(y1,y2,...yn)T为...相当于高维空间内向量说表示的到点之间的距离。 由于特征向量的各分量的量纲不一致,通常需要先对各分量进行标准化,使其与单位无关,比如对身高(cm)和体重(kg)个单
  • 向量距离与范数

    千次阅读 2015-04-05 14:39:38
    欧氏距离是最易于理解的一种距离计算方法,源自欧氏空间中两点间的距离公式。 (1)二维平面上两点a(x1,y1)与b(x2,y2)间的欧氏距离: 基于距离的计算方法 (2)三维空间两点a(x1,y1,z1)与b(x2,y2,z2)间的欧氏距离: ...
  • 到平面的距离公式推导

    万次阅读 2018-09-27 20:34:25
    预备知识: (1) 平面的一般表达式: 其中,n=(A,B,C)是平面的法向量,D决定了平面与原点之间的距离,当D=0时,平面经过原点。...到直线的距离公式推导:   参考博客:http://www.cnblogs.co...
  • 到平面的距离公式

    2020-08-14 17:09:17
    准备知识 平面的一般式方程 Ax +By +Cz + D = 0 其中n = (A, B, C)是平面的法...给定向量V1(x1, y1, z1)和V2(x2, y2, z2)则他们的内积是 V1V2 = x1x2 + y1y2 + z1z2 到平面的距离 有了上面的准备知识,则
  • 空间直线方程及直线的夹角 空间直线的一般方程 方向向量 直线的向式(对称式)方程 直线的夹角 直线相互垂直和平行的充分必要条件
  • 到平面的距离公式的推导

    千次阅读 2017-03-22 10:09:41
    到平面的距离公式 准备知识 平面的一般式方程 Ax +By +Cz + D = 0 其中n = (A, B, C)是平面的法向量,D是将平面平移到坐标原点所需距离(所以D=0时,平面过原点) 向量的模(长度) 给定一个向量V(x, y, z)...
  • SVM算法基础之到平面的距离公式推导 SVM算法基础之到平面的距离公式推导 平面的一般式方程 Ax +By +Cz + D = 0 其中n = (A, B, C)是平面的法向量,D是将平面平移到坐标原点所需距离(所以D=0时,平面过原点) ...
  • 直接运用两点距离公式 (x2-x1)^ 2+(y2-y1)^ 2开根号 //两点间距离 double getDistancePP(Point a,Point b) { //这个代码是部分代码,有些逻辑没有展现完全,大家往下看! Point c(b.x-a.x,b.y-a.y);//返回一个新的...
  • 到超平面距离公式的推导 损失函数的由来,为什么不考虑前面的系数。 学习率的作用是什么。 随机梯度下降法 算法收敛性中的误分类次数k的不等式 对偶形式中Gram矩阵的含义 1、在感知机中,输入空间Rn中任...
  • 欧式距离计算公式

    万次阅读 多人点赞 2019-06-26 15:06:02
    欧式距离也称欧几里得距离,是最常见的距离度量,衡量的是多维空间中两个点之间的绝对距离。 也可以理解为:m维空间中两个点之间...在二维和三维空间中的欧氏距离就是两点之间的实际距离 下面是具体的计算公式 ...
  • 准备知识 平面的一般式方程 Ax +By +Cz + D = 0 其中n = (A, B, C)是平面的法向量,D是将平面平移到坐标原点所需距离(所以D=0时,平面过原点) ...给定向量V1(x1, y1, z1)和V2(x2, y2, z...
  • 在机器学习领域中有非常多的问题需要求距离,常见的是向量距离的计算。比如判断A、B、C三种商品之间的相似性,可以先按照商品特征构建A、B、C的各自的...(1)二维平面上两点a(x1,y1),b(x2,y2)之间的欧式距离公式: ...
  • 如下图所示,在直线L上取两点与,则得到向量,与构成向量,根据下式计算得到两向量夹角。那么到直线L的距离为 方法二: 使用向量叉乘得到,如下图所示: 具体参考matlab中推导:...
  • 几种常见距离公式

    2021-05-07 11:40:48
    简介: 欧式距离是指m维空间中之间的真实距离,或者向量的自然长度(即该到原点的距离)。 计算公式 1、二维表示 2、推广到n维 用例 在非监督机器学习算法K-means算法以及KNN算法中中,使用的就是欧式距离...
  • 欧氏距离是最易于理解的一种距离计算方法,源自欧氏空间中两点间的距离公式。 (1)二维平面上两点a(x1,y1)与b(x2,y2)间的欧氏距离: (2)三维空间两点a(x1,y1,z1)与b(x2,y2,z2)间的欧氏距离: (3)两个n维向量a...
  • 到平面的基本距离推导公式

    万次阅读 2014-04-27 11:00:27
    其中n = (A, B, C)是平面的法向量,D是将平面平移到坐标原点所需距离(所以D=0时,平面过原点) 向量的模(长度) 给定一个向量V(x, y, z),则|V| = sqrt(x * x + y * y + z * z) 向量积(内积) 给定...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 248
精华内容 99
关键字:

两点向量距离公式