返回NaN而不是-1

Ku-*_*ala 2 r

我正在尝试最大化一个函数,在我的RI代码中使用以下函数来确保,我得到的值为A,介于-1和1之间:

A=(exp(x)-1)/(exp(x)+1)
Run Code Online (Sandbox Code Playgroud)

问题是,当我例如在x = 3000或某个其他极值处评估函数时,它返回NaN而不是-1,它应该是.

有没有办法写这个以确保,这不会发生?

谢谢.

Ran*_*Lai 6

你可以做一点数学

在此输入图像描述

这样, A = 1 - 2/(exp(x)+1)就可以完成这项工作.

x大,exp(x)等于Inf,从而2/(exp(x)+1)为0.

这是R的一个非常方便的功能,但实现成本太高.有时候,这些都归咎于R的慢速.