计算函数的导数
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
语句,让您大致了解从哪里开始查找。
我是编程新手,很难在 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
语句,让您大致了解从哪里开始查找。