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

为什么R语言中norm(x, type='2')的运算结果与x%*%x不相等?

运算结果不一致的原因

两者计算的是完全不同的数学值,差异来源如下:

  • norm(x, type = '2')计算的是向量的L2范数,计算逻辑为所有元素平方和开平方,代入x=c(1,2,3)的结果为sqrt(1²+2²+3²) = sqrt(14) ≈ 3.74166
  • x %*% x计算的是向量与自身的内积,计算逻辑为所有元素平方和,代入x的结果为1²+2²+3² = 14
  • 二者相减的结果就是3.74166 - 14 ≈ -10.25834,和你得到的输出完全吻合,不存在运算异常。

如果要让两个值匹配,只要对L2范数的结果做平方即可,运行print(norm(x, type='2')^2 - x%*%x)就会得到接近0的结果(浮点数精度误差范围内可认为相等)。

内容的提问来源于stack exchange,提问作者profPlum

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 21:54:02