【问题标题】:Solving hyperbolic function using Newton-Raphson in python在 python 中使用 Newton-Raphson 求解双曲函数
【发布时间】:2021-10-05 10:48:50
【问题描述】:

我试图求解悬链线方程,并想使用 Newton-Raphson 方法。

from math import sinh, cosh
y = 0.4                #Has taken to initiate the iteration.
k = 3/2
for _ in range(5):    #Iterations for Newton-Raphson Method
    y = y - (sinh(y)-y*k)/(cosh(y)-k)
    print(y)
print(y)
  • 输出
-0.05174312094834577
9.262910138898434e-05
-5.298477449974456e-13
0.0
0.0
0.0

我期待的意外输出1/0.6164729394

【问题讨论】:

  • 为什么不是x + (sinh....
  • cmets,做一个好的版本历史,其他用户可以跟踪。预期的输出是什么?
  • 数学运算不正确或数字太小导致舍入错误。 pythonhosted.org/bigfloat
  • 我的意思是你的输出有 6 行,有 6 行的预期输出是什么,我假设其他值不匹配
  • 您的解决方案也是“有效的”,因为它导致 0/0,这几乎是未定义的,因此也可以等于 3/2。因此,您的解决方案不一定在技术上(w.r.t. 算法实现)是错误的,甚至在数学上也不一定是错误的,但实际上,您必须为最小化例程提供一个良好的起点。

标签: python math decimal hyperbolic-function python-fractions


【解决方案1】:

你的曲线有 3 个根:

您的解决方案 (y = 0) 是一种解决方案。在 1.622 处有正解,在 -1.622 处有对称负解。

如果你不知道你的公式,最好是实际查看它(如果可能;这里很容易做到),以获得一些见解。

此外,Newton-Raphson 的结果,即根,将取决于您的起点,以及它如何收敛到根(有大跳跃或小跳跃,取决于函数和导数值)。请注意这一点。


相关:https://math.stackexchange.com/questions/3472880/solving-sinh-x-kx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-02
    • 2013-03-06
    • 2014-01-30
    • 1970-01-01
    • 2020-05-06
    相关资源
    最近更新 更多