从毕达哥拉斯定理到向量距离和夹角的计算

1 毕达哥拉斯定理和余弦定理

1.1 毕达哥拉斯定理(勾股定理)

对于 毕达哥拉斯定理(勾股定理) 大家应该都比较熟悉,在一个直角三角形中,两条 直角边的平方之和 等于 斜边的平方
例如一个直角三角形两个直角边分别是 a 和 b, 斜边为 c,其数学表达式可以写为:
a 2 + b 2 = c 2 a^2 + b^2 = c^2 a2+b2=c2

1.2 从毕达哥拉斯定理(勾股定理)到余弦定理

那么,我们可以很自然的推导出 ab 夹角是锐角和钝角的情况,如下表所示:

ab夹角表达式
< 90度 a 2 + b 2 − c 2 > 0 a^2 + b^2 - c^2 > 0 a2+b2c2>0
= 90度 a 2 + b 2 − c 2 = 0 a^2 + b^2 - c^2 = 0 a2+b2c2=0
> 90度 a 2 + b 2 − c 2 < 0 a^2 + b^2 - c^2 < 0 a2+b2c2<0

将上述表达式除以 2ab 消除边长对计算结果的影响,使计算结果落在 -1 - 1之间,由此我们便从毕达哥拉斯定理出发得到了余弦定理的公式
cos ⁡ γ = a 2 + b 2 − c 2 2 a b \cos\gamma=\frac{a^2+b^2-c^2}{2ab} cosγ=2aba2+b2c2

2.向量距离和夹角余弦的计算

机器学习中常用的向量距离夹角余弦的计算使用上述两个公式便可以很容易的计算出来。

本文中关于 向量的距离 仅仅讨论 欧氏距离

2.1 向量的距离计算

2.1.1 以二维空间为例推导

假设有两个二维向量 ( x 1 , x 2 ) , ( y 1 , y 2 ) (x_1, x_2) , (y_1, y_2) (x1,x2),(y1,y2),要计算这两个向量之间的欧式距离即为计算下图中 c 的长度,依据勾股定理便能轻松计算
在这里插入图片描述
a = y 1 − x 1 b = x 2 − y 2 带入毕达哥拉斯定理: c = ( x 1 − y 1 ) 2 + ( x 2 − y 2 ) 2 a = y_1 - x_1 \\ b = x_2 - y_2 \\ 带入毕达哥拉斯定理:\\ c = \sqrt{(x_1 - y_1)^2 + (x_2 - y_2)^2} a=y1x1b=x2y2带入毕达哥拉斯定理:c=(x1y1)2+(x2y2)2

2.1.2 扩展到多维

E D ( x , y ) = ∑ i = 1 n ( x i − y i ) 2 ED(x,y)=\sqrt{\sum_{i=1}^n\left(x_i-y_i\right)^2} ED(x,y)=i=1n(xiyi)2

2.2 向量夹角余弦的计算

2.2.1 以二维空间为例推导

如下图所示,只要将 a, b, c的值带入 cos ⁡ γ = a 2 + b 2 − c 2 2 a b \cos\gamma=\frac{a^2+b^2-c^2}{2ab} cosγ=2aba2+b2c2 即可

a = x 1 2 + x 2 2 b = y 1 2 + y 2 2 c = ( x 1 − y 1 ) 2 + ( x 2 − y 2 ) 2 a = \sqrt{x_1^2 + x_2^2} \\ b = \sqrt{y_1^2 + y_2^2} \\ c = \sqrt{(x_1 - y_1)^2 + (x_2 - y_2)^2} a=x12+x22 b=y12+y22 c=(x1y1)2+(x2y2)2
带入 cos ⁡ γ = a 2 + b 2 − c 2 2 a b \cos\gamma=\frac{a^2+b^2-c^2}{2ab} cosγ=2aba2+b2c2

cos ⁡ γ = x 1 2 + x 2 2 2 + y 1 2 + y 2 2 2 − ( x 1 − y 1 ) 2 + ( x 2 − y 2 ) 2 2 2 ∗ x 1 2 + y 1 2 ∗ x 2 2 + y 2 2 \cos\gamma = \cfrac{ {\sqrt{x_1^2 + x_2^2}}^2 + {\sqrt{y_1^2 + y_2^2}}^2 - {\sqrt{(x_1 - y_1)^2 + (x_2 - y_2)^2}}^2}{2*\sqrt{x_1^2 + y_1^2}*\sqrt{x_2^2 + y_2^2}} cosγ=2x12+y12 x22+y22 x12+x22 2+y12+y22 2(x1y1)2+(x2y2)2 2

化简后得到:
cos ⁡ γ = x 1 y 1 + x 2 y 2 ( x 1 2 + x 2 2 ) ( y 1 2 + y 2 2 ) \cos\gamma =\cfrac{x_1 y_1 + x_2 y_2} {\sqrt{(x_1^2+x_2^2)(y_1^2 + y_2^2)}} cosγ=(x12+x22)(y12+y22) x1y1+x2y2
在这里插入图片描述

2.2.1 扩展到多维

c o s γ = ∑ i = 1 n ( x i × y i ) ∑ i = 1 n x i 2 × ∑ i = 1 n y i 2 \mathrm{ cos } γ =\frac{\sum_{i=1}^n(x_i\times y_i)}{\sqrt{\sum_{i=1}^nx_i^2\times\sum_{i=1}^ny_i^2}} cosγ=i=1nxi2×i=1nyi2 i=1n(xi×yi)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值