我无法以数字方式实现功能。它受到以下事实的影响:在较大的输入值下,结果是非常大的数字乘以非常小的数字。我不确定灾难性取消是否是正确的术语,如果是,请纠正我。出现问题的证据:
对于 6 的较大输入,如何避免振荡和 0.0 的分配?
这是我的功能:
import numpy as np
def func(x):
t = np.exp(-np.pi*x)
return 1/t*(1-np.sqrt(1-t**2))
我无法以数字方式实现功能。它受到以下事实的影响:在较大的输入值下,结果是非常大的数字乘以非常小的数字。我不确定灾难性取消是否是正确的术语,如果是,请纠正我。出现问题的证据:
对于 6 的较大输入,如何避免振荡和 0.0 的分配?
这是我的功能:
import numpy as np
def func(x):
t = np.exp(-np.pi*x)
return 1/t*(1-np.sqrt(1-t**2))
这确实被称为灾难性取消。事实上,这种特殊情况非常简单:使用等价的数值稳定表达式