导数,数值微分,偏导数,以及梯度下降的Python示例 | 您所在的位置:网站首页 › 求导公式推算方法 › 导数,数值微分,偏导数,以及梯度下降的Python示例 |
目录
导数数值微分偏导数梯度(gradient)
导数
一个函数在某一点的导数描述了这个函数在这一点附近的变化率: 解析性求导 :利用数学推导计算导数,如: y=x2, 则y’=2x 数值微分:利用微小的差分求导。即根据导数定义公式,代入一个极小的∆x,求出变化率。 python示例:分别用数值微分和解析求导计算f=x2在x=2处的导数: #定义函数f def f(x): return x*x # 定义数值微分计算方法 def numerical_diff(f, x): h = 1e-4 #0.0001,∆x,注意不能太小,会导致舍入误差而变成0 return (f(x+h)-f(x-h))/(2*h) #计算变化率 x=2 print('数值微分结果:{}'.format(numerical_diff(f, x))) print('解析求导结果:{}'.format(2*x)) 偏导数对于有多个自变量的函数,例如Z=f(X,Y),有下图: 对于有多个变量的函数,对每个变量分别计算偏导数,这些偏导数汇合而成的向量,称为梯度。 对于上面举的例子,在某一点分别计算X和Y的偏导数,这两个偏导数组成的向量,就是梯度。梯度代表着函数值变化率最快的方向: 输出结果为 [6. 8.] [0. 4.] #梯度的直观理解 上例中,y=x02+x12,通过python画图如下: |
CopyRight 2018-2019 实验室设备网 版权所有 |