我正在尝试最大化一个函数,在我的RI代码中使用以下函数来确保,我得到的值为A,介于-1和1之间:
A=(exp(x)-1)/(exp(x)+1)
Run Code Online (Sandbox Code Playgroud)
问题是,当我例如在x = 3000或某个其他极值处评估函数时,它返回NaN而不是-1,它应该是.
有没有办法写这个以确保,这不会发生?
谢谢.
你可以做一点数学

这样,
A = 1 - 2/(exp(x)+1)就可以完成这项工作.
当x大,exp(x)等于Inf,从而2/(exp(x)+1)为0.
这是R的一个非常方便的功能,但实现成本太高.有时候,这些都归咎于R的慢速.