python - 在 python 中使用 *args 区分多变量函数 w.r.t 不同的维度

标签 python numerical-methods

以下是我尝试创建一个函数来区分多变量函数,但如您所见,它似乎只能区分第一个位置参数(即 x)。我如何扩展它才能对 y 和 z 求偏导数?

def firstderivative(func,x,*args):
    return((func(x+0.001,*args)-func(x-0.001,*args))/0.002)
def afunc(x,y,z):
    return(x*y+x*z+y*z)
print(firstderivative(afunc,2,4,5))

最佳答案

从元组转换后,您可以将 args 视为列表。

def firstderivative(func, n, *args):
    # args[0] is x, args[1] is y and args[2] is z
    args_0 = list(args)
    args_0[n] -= 0.001

    args_1 = list(args)
    args_1[n] += 0.001

    return ((func(*args_1) - func(*args_0)) / 0.002)


def afunc(x, y, z):
    return (x * y + x * z + y * z)

print(firstderivative(afunc, 0, 2, 4, 5))  # x
print(firstderivative(afunc, 1, 2, 4, 5))  # y
print(firstderivative(afunc, 2, 2, 4, 5))  # z

关于python - 在 python 中使用 *args 区分多变量函数 w.r.t 不同的维度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70048069/

相关文章:

PHP 数值方法

python - 从python中的一组非线性方程中查找复根

python - python中的枚举

python - 如何使用多行正则表达式完成删除整行?

python - 使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()

scheme - 什么是定点?

c++ - 如何在特定机器上找到尾数长度?

python - 四阶龙格-库塔

python - Pandas 情节 : fixing a color by value

python - 只清除 turtle 图形中的一部分屏幕