我正在尝试确定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))。
我想念什么吗?
答案 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