为中央差异创建增量值

时间:2016-02-03 22:01:22

标签: python calculus

代码的第一部分工作正常,并以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)

1 个答案:

答案 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