nic*_*ine 9 numerical numpy scipy
我有一个Python函数:
def f(x):
return x[0]**3 + x[1]**2 + 7
# Actually more than this.
# No analytical expression
Run Code Online (Sandbox Code Playgroud)
它是向量的标量值函数.
我怎样才能在numpy或scipy数字上近似Jacobian和Hessian这个函数?
Dou*_*gal 14
(2017年末更新,因为这个领域有很多更新.)
你最好的选择可能是自动分化.现在有很多软件包,因为它是深度学习的标准方法:
另一个选择是用有限的差异来近似它,基本上只是评估(f(x + eps) - f(x - eps)) / (2 * eps)(但显然需要付出更多的努力).这可能比其他方法更慢,更准确,特别是在中等高度方面,但是完全通用,不需要更改代码.numdifftools似乎是标准的Python包.
您也可以尝试使用完全符号导数SymPy,但这将是一个相对手动的过程.
| 归档时间: |
|
| 查看次数: |
11103 次 |
| 最近记录: |