我正试图确定Python中trig函数的差异化问题所在。我使用scipy.msc.divative.
正确案例:
def f(x):
return math.sin(x)
y=derivative(f,5.0,dx=1e-9)
print(y)
这将给出一个数学.cos(5(对吗?
我的问题就在这里。由于python接受弧度,我们需要更正sin函数内部的内容。我使用math.radians.
如果我再次编码:
def f(x):
return math.sin(math.radians(x))
y=derivative(f,5.0,dx=1e-9)
print(y)
这将给出一个不等于我想要的答案,应该是math.cos(math.radians(5((.
我是不是错过了什么?
您必须与三角函数的参数保持一致。并不是说"Python接受弧度">,我所知道的所有编程语言都默认使用弧度(包括Python(。
如果你想得到5度的导数,是的,首先将其转换为弧度,然后将其用作三角函数的自变量。很明显,当你做时
y=derivative(f,5.0,dx=1e-9)
使用
def f(x):
return math.sin(x)
得到以CCD_ 2(弧度(计算的CCD_。如果你想检查结果是否正确,这是要检查的函数,而不是f'(x)=cos(math.radians(x))
,它会给你另一个结果。
如果你想通过5度,是的,你需要首先获得弧度:
y=derivative(f,math.radians(5.0),dx=1e-9)
其将与CCD_ 4相同。
以下是的工作示例
from scipy.misc import derivative
import math
def f(x):
return math.sin(x)
def dfdx(x):
return math.cos(x)
y1 = derivative(f,5.0,dx=1e-9)
y2 = dfdx(5)
print(y1) # 0.28366
print(y2) # 0.28366