Python:trig函数的派生

时间:2018-11-27 07:35:19

标签: python

我正在尝试确定Python中的trig函数的区别是什么问题。我使用scipy.misc.derivative。

正确的情况:

def f(x):
    return math.sin(x)
y=derivative(f,5.0,dx=1e-9)
print(y)
  

这将使math.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))。

我想念什么吗?

1 个答案:

答案 0 :(得分:1)

您必须与三角函数的参数一致。并不是“ Python接受弧度” ,我知道的所有编程语言默认都使用弧度(包括Python)。

如果要获得5度的导数,可以,首先转换为弧度,然后将其用作三角函数的参数。显然,当您这样做

y=derivative(f,5.0,dx=1e-9)

使用

def f(x):
    return math.sin(x)

您得到f'(x)=cos(x)的评估值为5(弧度)。如果要检查结果是否正确,这是要检查的功能,而不是f'(x)=cos(math.radians(x)),它将给您另一个结果。

如果要通过5度,是的,您需要先获得弧度:

y=derivative(f,math.radians(5.0),dx=1e-9)

cos(math.radians(5))相同。

这是一个可行的例子

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