Python:trig函数的派生函数



我正试图确定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

最新更新