当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy optimize.approx_fprime用法及代码示例


本文简要介绍 python 语言中 scipy.optimize.approx_fprime 的用法。

用法:

scipy.optimize.approx_fprime(xk, f, epsilon=1.4901161193847656e-08, *args)#

标量或vector-valued 函数的导数的有限差分逼近。

如果一个函数从 映射到 ,它的导数形成一个称为雅可比矩阵的 m-by-n 矩阵,其中元素 是 f[i] 相对于 xk[j] 的偏导数。

参数

xk array_like

确定 f 梯度的坐标向量。

f 可调用的

要估计其导数的函数。有签名f(xk, *args)其中xk是一维数组形式的参数,并且参数是完全指定函数所需的任何附加固定参数的元组。参数xk传递给该函数的是一个形状为 (n,) 的 ndarray(即使 n=1,也绝不是标量)。它必须返回形状为 (m,) 或标量的一维数组。

epsilon {float, 数组},可选

增量为xk用于确定函数梯度。如果是标量,则对所有偏导数使用相同的有限差分增量。如果是一个数组,每个元素应该包含一个值xk.默认为sqrt(np.finfo(float).eps),约为 1.49e-08。

*args 参数,可选

要传递给 f 的任何其他参数。

返回

jac ndarray

f 到 xk 的偏导数。

注意

函数梯度由前向有限差分公式确定:

f(xk[i] + epsilon[i]) - f(xk[i])
f'[i] = ---------------------------------
                    epsilon[i]

例子

>>> import numpy as np
>>> from scipy import optimize
>>> def func(x, c0, c1):
...     "Coordinate vector `x` should be an array of size two."
...     return c0 * x[0]**2 + c1*x[1]**2
>>> x = np.ones(2)
>>> c0, c1 = (1, 200)
>>> eps = np.sqrt(np.finfo(float).eps)
>>> optimize.approx_fprime(x, func, [eps, np.sqrt(200) * eps], c0, c1)
array([   2.        ,  400.00004198])

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.optimize.approx_fprime。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。