当前位置: 首页 > news >正文

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

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)

相关文章:

  • SCSS预处理器(详细讲解、入门教程)
  • 【HarmonyOS Next之旅】DevEco Studio使用指南(一)
  • 第五章 起航14 后退一步也是一种保护?
  • C 语言中使用数组作为参数的函数
  • Linux第一课
  • 2025天津申论(综合市区) 第一题“反向旅游”
  • Linux断电重启后,硬盘挂载失败问题。
  • json.load
  • 线程池C++实现
  • 2025华为OD机试真题E卷 - 螺旋数字矩阵【Java】
  • 【数据集】社区天气资讯网络CoWIN-香港小时尺度气象数据(含MATLAB处理代码)
  • JavaScript基础-算数运算符
  • Java直通车系列14【Spring MVC】(深入学习 Controller 编写)
  • Linux下find命令的使用方法详解
  • [附JS、Python、C++题解] Leetcode面试150题 (5)
  • Odoo最佳业务实践:采购管理概述
  • 20250307学习记录
  • 大模型发展历程
  • C# 在Excel中插入和操作切片器-详解
  • 基于置换对称性的模型融合:实现凸盆地单盆地理论
  • 上海虹口网站制作/买卖友情链接
  • 手机网站案例/广州seo关键词优化外包
  • wordpress主题cms博客/安卓优化大师下载安装到手机
  • 北京网站建设方案/如何写营销软文
  • 网站上传不了照片/关键词排名网络推广
  • 网站建设公司推荐金石下拉网络/平台推广是做什么