如何区分函数中的函数?

2024-10-03 02:38:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用^{}库来区分z(x)w.r.t.x,在这里我知道y(x)和z(y)。如果我不能解析地找到z(x),我怎样才能进行微分呢?换句话说,我试图避免链式规则计算,如下所示:

from ad import gh

def y(x):
    return 2*x

def z(y):
    return 3*y

dzdy,hy = gh(z)
dydx,hz = gh(y)

x0 = 0 # does not matter for this example
dydx_x0 = dydx(x0)

y0 = y(x0)
dzdy_y0 = dzdy(y0)

dzdx_x0 = dzdy_y0[0] * dydx_x0[0]

print(dzdx_x0)    # dz/dx = dz/dy*dy/dx = 3*2 = 6

Tags: return规则defgh区分链式微分dydx
1条回答
网友
1楼 · 发布于 2024-10-03 02:38:44
def z_of_x(x):
    return z(y(x))

gradient, hessian = gh(z_of_x)

只需定义一个函数,用x计算z,然后像往常一样应用自动微分。你知道吗

相关问题 更多 >