-6

如果我想创建一个计算函数导数的程序。

对于简单的情况,考虑我们的程序可以处理的可接受的函数只是多项式。

我的问题是:

  • 使用 Python 设计这样的程序需要什么背景?
  • 这个项目对于 Python 初学者来说会是一个困难的项目吗?
  • Python 是一种合适的语言,可以用来设计这样的程序,还是用另一种语言更容易完成?
4

2 回答 2

2

接受一个函数很容易......就像任何其他参数一样。

def example(somefunc):
  somefunc() 

example(someFunction)
example(lambda x: x ** 2)

退回一个有点棘手,但不多。

您可以返回一个 lambda:

def example2():
  return lambda x: x + 1

或者你可以构建一个内部函数,然后返回它

def example3():
  def rf(x):
    return x + 2
  return rf

myfunc = example3()
myfunc(2) #returns 4
于 2013-04-09T14:37:46.833 回答
1

math.sqrt(x) 不是(Python)函数,math.sqrt 是一个函数。注意缺失的 (x)。同样, 1/(2 * math.sqrt(x)) 不是函数,但 (lambda x: 1/(2 * math.sqrt(x))) 是函数。

问题是

a = lambda x: x

b = lambda x: x

将产生两个不同的 python 函数,从数学的角度来看它们是等效的。因此,测试函数是否相等并没有多大帮助。您需要实际“解析”它们才能找到数学导数。

解析内部定义是可能的,但甚至不是很简单。

于 2013-04-09T14:42:47.830 回答