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

error in plotting a function, including integrate.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()

但是我收到这个错误:

error: Supplied function does not return a valid float.

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

S() 无法处理矢量输入。尝试用 plot() 替换该行:

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