使用函数作为参数计算三项式的导数

时间:2018-11-11 11:40:27

标签: python python-3.x functional-programming derivative

我需要使用前者作为参数来计算另一个函数中三项式函数的导数。到目前为止,这是我的代码:

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的定义,我也无法运行该代码它们在我调用函数时的值。

2 个答案:

答案 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