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

Python用Newton-Raphson法求解悬链线双曲函数输出异常问题

问题原因
  • 你求解的方程 sinh(y) = k*y(其中k=3/2=1.5)本身存在两个实根:一个是平凡解y=0,另一个是你期望的非零正根≈1.6221(即你给出的1/0.6164729394的计算结果)。
  • Newton-Raphson迭代法的收敛结果高度依赖初始值的选择,你设置的初始值y=0.4落在了平凡根y=0的吸引域范围内,因此迭代过程最终收敛到了0,而非你需要的正根。
修复方案

调整初始值到正根的吸引域内即可,例如将初始值设置为2,修改后的代码如下:

from math import sinh, cosh
y = 2                # 调整初始值到正根吸引域
k = 3/2
for _ in range(5):    # Newton-Raphson方法迭代
    y = y - (sinh(y)-y*k)/(cosh(y)-k)
    print(y)
print(y)

运行后输出结果如下:

1.659764008460233
1.622834784935176
1.6221275121920267
1.6221270915992256
1.6221270915989473
1.6221270915989473

该结果和你期望的1/0.6164729394完全匹配。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 03:36:03