绘制函数(包括integrate.quad)时出错

时间:2018-08-18 15:54:03

标签: python matplotlib scipy quad

我想绘制一个其中有integrate.quad的函数。该函数在间隔中具有真实的浮点值。

import matplotlib.pyplot as plt
import numpy as np
import scipy.integrate as integrate

def S(M):
    s = integrate.quad(lambda k: np.exp(-k) * np.sin(2 * M), 0, 5)[0]
    return s

M = np.arange(10, 20, 1)
plot = plt.plot(M, S(M))
plt.show()

但是我收到此错误:

  

错误:提供的函数未返回有效的浮点数。

我不知道函数具有正确的浮点值的原因,我用[0]指定了quad输出的第一项。

1 个答案:

答案 0 :(得分:2)

S()无法处理向量输入。尝试通过以下方式将行替换为plot()

plot = plt.plot(M, np.vectorize(S)(M))