计算函数的导数

Calculating the Derivative of a Function

我是编程新手,很难在 Python 中创建函数。

在尝试计算导数时,我为我的 x 值创建了一个 np.linspace,然后为 y 值创建了一个空列表。我使用 for 循环创建了一个 y 值列表,这些值是通过函数传递 x 值的结果。在将 for 循环的结果附加到空列表后,A 尝试创建一个函数来使用有限差分近似求导。当我 运行 程序时,我收到 无效语法 .

的错误

我做错了什么?

import numpy as np
from math import *

xvalue = np.linspace(0,100,20)
yvalue = []

for i in xvalue:    
    q = i**2+4
    yvalue.append(q)  

def diff(f,x):

    n= len(x)
    y = []

    for i in range(n):

        if i == n-1:
            y.append((f[i]-f[i-1])/(x[2]-x[1]))
        else:
            y.append((f[i+1]-f[i]/(x[2]-x[1]))

    return y

print xvalue
print yvalue

diff(xvalue,yvalue)

您在

上缺少括号
 y.append((f[i+1]-f[i]/(x[2]-x[1]))

应该是这样的

 y.append((f[i+1]-f[i]/(x[2]-x[1])))

诊断这些语法错误可能有些棘手:

File "path/to/my/test.py", line 20
    return y
         ^
SyntaxError: invalid syntax

既然您知道所讨论的行很可能没有问题(return y 没有问题),接下来要做的就是查看上一行。正如@ljetibo 的回答,您缺少一个括号。如果由于某种原因前一行看起来没问题,请在文件中继续向上,直到找到罪魁祸首。

拥有匹配括号的文本编辑器也很有帮助。

编辑

正如@ljetibo 所指出的,如果您使用的是 IDLE,则不会有像上面那样的回溯。相反,它会创建一个带有确定按钮的提示 window 并突出显示 return 语句,让您大致了解从哪里开始查找。