0

我想绘制一个包含在其中的函数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].

4

1 回答 1

2

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

plot = plt.plot(M, np.vectorize(S)(M))
于 2018-08-18T16:25:49.627 回答