如何对积分函数进行矢量化处理?

时间:2018-11-17 22:14:03

标签: numpy

我是numpy的初学者,我想向量化此功能:

enter image description here

我不太了解我需要做什么,但这是我想出的:

n = 1000000
h = 1/n
x = np.arange(1,n,1)

def f(x):
    return x ** 3

def rec(x):
    result = np.zeros_like(x)
    result[x < n] = f((x[x < n])*h)
    return result

integral = 0.5*h + h*rec(x)

print integral   

我最终得到一个0的数组。有人可以指出正确的方向吗?

1 个答案:

答案 0 :(得分:0)

尝试:

def trap(f, a, b, n):
    xs = np.linspace(a, b, n + 1)
    ys = f(xs)
    return (0.5 * ys[0] + 0.5 * ys[-1] + np.sum(ys[1:-1])) * (b - a) / n