特定の時点で関数の一次導関数と二次導関数を計算するためのこのコードがあります
def yy(x):
return 1.0*x*x
def d1(func, x ,e):
x = x
y = func(x)
x1 = x + e
y1 = func(x1)
return 1.0*(y - y1)/(x - x1)
def d2(func ,x, e):
x = x
y = d1(func, x, e)
x1 = x + e
y1 = d1(func, x1, e)
return 1.0*(y - y1)/(x - x1)
yy は実際の関数です。1 次および 2 次導関数を計算する d1 および d2 関数。それらは私が最適化に興味を持っているものです。ご覧のとおり、どちらもほぼ同じコードを持っています。基本的には 3 次、4 次などの微分のような関数を書き続けることができますが、微分レベルをパラメーターとして指定する単一の関数として記述できないかどうか疑問に思っています。