You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

n维空间中三点形成夹角的弧度值计算公式问询

n维空间中三点形成夹角的弧度值计算公式问询

嗨,这个问题的核心其实是利用向量点积的通用性质来推导,不管维度多少都适用,我给你拆解清楚:

首先得明确,$\widehat{abc}$是顶点在点b的夹角,所以我们需要先定义两个关键向量:

  • 向量$\vec{BA}$:由点b指向点a,坐标表示为 $(a_1 - b_1, a_2 - b_2, \dots, a_n - b_n)$
  • 向量$\vec{BC}$:由点b指向点c,坐标表示为 $(c_1 - b_1, c_2 - b_2, \dots, c_n - b_n)$

接下来,根据向量点积的几何定义,两个向量的点积等于它们的模长乘积乘以夹角的余弦值:
$$\vec{BA} \cdot \vec{BC} = |\vec{BA}| \times |\vec{BC}| \times \cos(\widehat{abc})$$

把这个公式变形,就能解出夹角的弧度值:
$$\widehat{abc} = \arccos\left( \frac{\vec{BA} \cdot \vec{BC}}{|\vec{BA}| \times |\vec{BC}|} \right)$$

再把向量的坐标代入,展开成具体的计算式:

  • 点积部分:$\vec{BA} \cdot \vec{BC} = \sum_{i=1}^{n} (a_i - b_i)(c_i - b_i)$
  • $\vec{BA}$的模长:$|\vec{BA}| = \sqrt{\sum_{i=1}^{n} (a_i - b_i)^2}$
  • $\vec{BC}$的模长:$|\vec{BC}| = \sqrt{\sum_{i=1}^{n} (c_i - b_i)^2}$

把这些代入后,最终的通用计算公式就是:
$$\widehat{abc} = \arccos\left( \frac{\sum_{i=1}^{n} (a_i - b_i)(c_i - b_i)}{\sqrt{\sum_{i=1}^{n} (a_i - b_i)^2} \times \sqrt{\sum_{i=1}^{n} (c_i - b_i)^2}} \right)$$

需要注意的是,这个公式的前提是$\vec{BA}$和$\vec{BC}$都不是零向量(也就是a、b不重合,b、c不重合),否则夹角没有定义。

备注:内容来源于stack exchange,提问作者Ter Maxima

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 07:27:57