我需要使用前者作为参数来计算另一个函数中三项式函数的导数。到目前为止,这是我的代码:
def derivative(func):
num=func(a,b,c)
third=func(0,0,c)
first=func(a,0,0)
return (num-third)/x+first/x
def make_quadratic(a, b, c):
return lambda x: x*x*a+b*x+c
我想通过使用make_quadratic
函数,我还必须在func中添加3个参数(a,b,c)
。我想做的是删除c,除以x,然后添加ax,以便得到的导数为2ax + b,但是由于某些原因,即使我给出了a,b,c的定义,我也无法运行该代码它们在我调用函数时的值。
答案 0 :(得分:0)
为自己编写一个类似于以下内容的类:
class TrigonomialFunction:
def __init__(self, a, b, c):
self.a, self.b, self.c = a, b, c
def calculate(self, x):
return self.a * x ** 2 + self.b * x + self.c
def derivate(self):
return TrigonomialFunction(0, 2 ** self.a, self.b)
def __str__(self):
return "f(x) = %s x**2 + %s * x + %s" % (self.a, self.b, self.c)
然后可以通过以下方式使用它:
f = TrigonomialFunction(2, 3, -5)
print(f) # will return f(x) = 2 x**2 + 3 * x + -5
print(f.calculate(1)) # returns 0
print(f.calculate(-1)) # returns -6
derivateOfF = f.derivate()
print(derivateOfF) # returns f(x) = 0 x**2 + 4 * x + 3 which can be simplified to f(x) = 4*x + 3
print(derivateOfF.calculate(0)) # returns 3
derivateOfderivateOfF = derivateOfF.derivate()
print(derivateOfderivateOfF) # guess ;)
答案 1 :(得分:0)
您可以使用sympy计算任何函数的导数。
对于您的功能,您可以使用:
import sympy
def get_derivative(func, x):
return sympy.diff(func, x)
def make_quadratic(a, b, c):
x = sympy.symbols('x')
func = a * x**2 + b * x + c
return func, x
func, x = make_quadratic(1, 2, 3)
print(get_derivative(func, x))
哪个返回2*x + 2