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

Python出现RuntimeWarning: overflow encountered in cosh是什么意思?

问题解答

警告含义

RuntimeWarning: overflow encountered in cosh是Numpy抛出的运行时警告,指调用np.cosh()计算双曲余弦值时,输入参数过大,计算结果超出了当前Python默认双精度浮点数的可承载范围,发生数值溢出。

触发原因

结合你的代码逻辑,触发警告的直接原因如下:

  • 你定义N=2**15,生成的x数组取值范围是[-16384, 16383],数组内元素的绝对值最大可达16384
  • 双曲余弦函数的数值随输入绝对值增大呈指数级增长,双精度浮点数可承载的cosh输入阈值约为710:只要输入绝对值超过710,cosh的计算结果就会超过双精度浮点数最大值1.7976931348623157e+308,直接溢出为无穷大inf
  • 你代码中直接将整个x数组传入np.cosh()计算,数组内大量绝对值超过710的元素都会触发溢出逻辑。虽然后续计算1/(l1*np.cosh(x)**2)时,inf取倒数会得到0,不影响最终数值结果,但Numpy仍会对溢出行为抛出警告。

补充说明:MATLAB运行相同逻辑没有告警,是因为MATLAB默认关闭了数值溢出类的警告提示,并非不存在溢出问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 14:24:02