代码的第一部分工作正常,并以sin
弧度的增量打印.01
的值。在0-25
(度)之间,即2500个值。代码的第二部分是尝试使用中心差异方法评估sin(x)
,同时应用相同的增量步骤。
这第二部分只返回一个数字。它不会生成增量列表。这是我尝试编写差异的第一次尝试;我做错了什么?
#1 evaluation of sin
import numpy as np
import math
def sin(x):
return math.sin(math.radians(x))
for i in np.arange(0, 25, .01):
print sin(i)
#Evaluation of sin(x) using CDM, which would yield cos
def dfdxsin(f, a, b, n):
h=float(b-a)/n
dfdx=0.0
for i in np.arange(0,25,.01):
dfdx += (f(a+h)+i)-f((a-h)+i)/(2*h)
return dfdx
def f(x):
return math.sin(math.radians(x))
print dfdxsin(f,0,25,2500)
答案 0 :(得分:0)
你只是按照你得到的每个值递增浮点数0.0。你想要创建一个列表,然后追加,而不是添加它。
dfdx = []
for i in np.arange(0,25,.01):
dfdx.append((f(a+h)+i)-f((a-h)+i)/(2*h))
return dfdx