向量内积和夹角的关系

最近在做文本聚类,用到了奇异值分解,可是我不明白原理,于是复习线性代数。遇到了向量内积和夹角的关系,不太明白。

向量内积,也叫做向量的点积,是两个向量对应分量乘积之和。


如果两个向量是垂直的,那么点积为0。如果点积为0,那么两个向量是垂直的。

如果两个向量内积大于0,那么两个向量夹角小于90',如果两个向量内积小于0,那么两个向量夹角大于90’。




### 向量内积小于等于0时的夹角关系及其几何意义 当两个向量 $\vec{a}$ $\vec{b}$ 的内积满足 $ \vec{a} \cdot \vec{b} \leq 0$ 时,可以推断出这两者之间的夹角特性。 对于任意两非零向量 $\vec{a}$ $\vec{b}$ ,它们之间形成的夹角记作 $\theta$ 。根据定义有: \[ \vec{a}\cdot\vec{b}=|\vec{a}| |\vec{b}| \cos{\theta} \] 因此, - 若 $\vec{a}\cdot\vec{b}<0$ 则意味着 $\cos{\theta}<0$ 即此时夹角 $\theta$ 处于 $(90°,270°)$ 范围之内[^4]。这表明两个向量指向的方向相对较为相反,在二维平面上表现为一者需旋转超过直角但不超过三倍直角才能大致朝向另一者的方向。 - 特别的,如果 $\vec{a}\cdot\vec{b}=0$ 那么说明这两个向量正交即相互垂直,$\theta=90°$ 或者说在某些特殊情况下可能表示其中一个为零向量。 这种性质可用于检测物体运动轨迹是否相背离或是用于图形学中的光照计算等方面来决定表面法线光源位置的关系等实际应用之中。 ```python import numpy as np def angle_between(a,b): """ Returns the angle between vectors 'a' and 'b' in degrees.""" cosine_angle = np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b)) angle = np.arccos(np.clip(cosine_angle, -1.0, 1.0)) # Ensure numerical stability return np.degrees(angle) # Example usage with two opposite direction vectors vector_a = np.array([1, 0]) vector_b = np.array([-1, 0]) angle = angle_between(vector_a,vector_b) print(f"The angle between vector_a and vector_b is {angle:.2f} degrees.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值