您现在的位置是:娱乐 >>正文
已知两向量坐标求余弦值
娱乐5893人已围观
简介两个向量夹角的余弦值,公式就一句话:cosθ = (A·B) / (|A|·|B|)。但真正用起来,很多人栽在“坐标”这两个字上——不是不会算,是算完不知道自己在算什么。 拿个具体例子。向量a = ( ...
两个向量夹角的已知余弦余弦值,公式就一句话:cosθ = (A·B) / (|A|·|B|)。两向量坐但真正用起来,标求很多人栽在“坐标”这两个字上——不是已知余弦不会算,是两向量坐算完不知道自己在算什么。
拿个具体例子。标求向量a = (3,已知余弦 4),向量b = (1,两向量坐 2)。先算点积:3×1 + 4×2 = 11。标求再算模长:|a| = √(3²+4²) = 5,已知余弦|b| = √(1²+2²) = √5。两向量坐除一下,标求cosθ = 11 / (5√5) ≈ 0.984。已知余弦这个数接近1,两向量坐说明两个向量方向很接近——你看,标求角度大概10度,确实几乎平行。
但如果你只背公式,不看几何意义,那这题就白做了。余弦值的本质是“方向相似度”,不是“长度相似度”。向量(6, 8)和(3, 4)长度差一倍,但余弦值是1,因为方向完全相同。坐标里那个倍数关系,在点积和模长的除法中抵消了。这才是公式最漂亮的地方——它把长度信息剥离掉,只留方向。
实际操作中,有个常见坑:三维向量和二维向量混用。比如你拿a = (1, 2)和b = (1, 2, 3)去算,点积根本没法定义,因为维度不匹配。这种事在编程里尤其常见,Python的numpy会直接报错,但手算时容易犯迷糊。先检查维度,再动手。
再说个更隐蔽的坑。如果向量分量是浮点数,比如a = (0.1, 0.2),b = (0.3, 0.6),算出来cosθ = 1,但如果你用二进制浮点运算,可能会得到0.9999999999999998。这时候别慌,设个阈值,比如差小于1e-10就当作1。工程上没人关心小数点后第15位,除非你在做卫星轨道计算。
公式本身简单到可以心算,但真正考验人的是“什么时候用”。推荐系统里,用户A的偏好向量是(5, 0, 3),用户B的是(4, 1, 2),算余弦相似度,得到0.98,说明口味接近。但注意,如果向量里全是正数,余弦值天然偏向高——因为负方向被阉割了。这时候你该考虑中心化,先减去均值再算,否则所有用户都“相似”,区分度就没了。
还有种情况,向量特别稀疏,比如一万维里只有三个非零值。余弦值会受零值位置影响。两个用户都看过《流浪地球》和《星际穿越》,但一个还看过《熊出没》,另一个看过《教父》。余弦值可能因为那个额外维度而拉低,但实际两人的品味重合度挺高。这时候用余弦就有点冤,不如用Jaccard相似度或者调整后的余弦。
回到坐标计算本身。二维情况有个速算技巧:cosθ = (x₁x₂ + y₁y₂) / √[(x₁²+y₁²)(x₂²+y₂²)]。你要是嫌开根号麻烦,可以先算cos²θ,最后再开。但注意,cos²θ会丢失符号信息——两个向量方向相反时,cosθ = -1,但cos²θ = 1。所以如果你需要知道是锐角还是钝角,老老实实保留符号。
我见过最离谱的错法,是把点积算成坐标差的平方和。a·b ≠ (x₁-x₂)² + (y₁-y₂)²,那是欧氏距离的平方。点积是“对应相乘再相加”,距离是“对应相减再平方再相加”。这俩差一个符号,结果天差地别。你算余弦值,点积算错,后面全白搭。
最后说个冷知识。余弦值的范围是[-1, 1],但如果你用整数坐标,比如a = (1, 2), b = (2, 1),算出来cosθ = 4/5 = 0.8。这个值本身没有单位,也不对应任何角度整数度数——它就是个纯数。所以当你看到cosθ = 0.8时,别试图说“角度约等于36.87度”,直接说“方向相似度0.8”更自然。毕竟,谁会在意那个无理数角度呢?
Tags:
上一篇:渗透thinkphp
下一篇:关于数据库注入攻击的说法正确的是
相关文章
burpsuit下载
娱乐Burp Suite下载这事,说简单也简单,说坑也坑。官网摆在那,但很多人第一次找它,愣是绕了远路——搜出来一堆第三方下载站,点进去全是捆绑插件和旧版本。真正靠谱的路径只有一条:PortSwigger ...
【娱乐】
阅读更多网络安全攻防新手教程
娱乐网络安全攻防新手教程 半夜两点,我盯着屏幕上的扫描结果,后背有点发凉。那台看起来人畜无害的学校服务器,居然开着3389端口,密码还是Admin@123。这不是电影,是我第一次真正意义上的“渗透测试”— ...
【娱乐】
阅读更多充值缴费支付出现漏洞属于
娱乐充值缴费支付出现漏洞属于什么?说白了,这是平台方的锅,不是用户手滑。去年某省水电缴费系统半夜崩了,用户充50块到账500,第二天系统自动扣回多出的部分,引发集体投诉。平台说“技术故障”,可用户不认—— ...
【娱乐】
阅读更多