【发布时间】:2015-12-07 16:09:41
【问题描述】:
假设我有一个x的Python函数y,其中x必须是一个数字,返回值总是一个数字。 y 是一个变量的数学函数。
Python 中是否有一个函数(例如,numpy、scipy 等)能够求解产生所需返回值的x 的特定值——使用,比如梯度下降?
我正在寻找可以执行以下操作的 magic_function:
>>> from my_module import y
>>> from magic_package import magic_function
>>> desired = 10
>>> x = magic_function(y, desired)
>>> y(x)
10
【问题讨论】:
-
也许你想要root finding function?
-
@Evert 很好,这适用于
desired = 0的特殊情况。我想我想要的是scipy.optimize.minimize,其中fun传递给minimize是y(x) - desired。 -
当然不是:
x = scipy.optimize.root(y-desired, xguess)它适用于您的desired值。 -
@Evert 啊,好电话。是的,我想我们的任何一个选择都有效。我忘了我的工作必须是
abs(y(x) - desired)。 -
y - desired可能是错误的形式,但您可以轻松地将其包装起来:def newy(x): return y(x) - desired或类似的。然后将newy传递给scipy.optimize.root。
标签: python numpy optimization scipy solver