2

我需要在域 [0,1) 中评估此函数的逆:反转功能

有一个解析逆(我不会费心把它放在这里,因为它很大),但它只适用于常数 A 的有限范围,即如果 A>0.385f(x)。然后,我想到了两种可能的解决方案:

  1. 使用 Newton-Raphson 方法(或任何其他求根方法)来评估每个 f(x) 的 x;
  2. 用 sigmoid 函数逼近逆并通过最小二乘法确定参数。

我倾向于(2),因为它看起来很简单并且不会像(1)那样减慢我的代码,但我对近似值的有效性不安全。我也很感激其他建议。

如果有一些内置的方法可以解决我的问题,我的代码是用 C++ 编写的。

4

2 回答 2

1

尽管您建议的两种建议方法对于更一般的情况都很有趣,但可以分析地反转此函数。

在 Mathematica 中,您可能会反转它并得到这个“错误”的答案:

正确的真实答案是平方根的绝对值。

这是一个说明这个“正确”答案有效的情节:

于 2018-08-01T13:04:53.933 回答
0

y = Ax/(1-x**2)**(1/3),然后y**3 = A**3*x**3/(1-x**2),然后A**3*x**3 = y**3*(1-x**2)。这是一个三次方程。解决它,你会发现 x(y)。

于 2018-08-01T12:16:50.610 回答