这是我正在使用的代码:
import matplotlib.pyplot as plt
from scipy import integrate
import numpy as np
def g(t):
g_value= integrate.quad (t,0,t)
return (g_value)
def f(t):
f_value = t**3 - g(t)
return (f_value)
t1 = np.arange (-5, 5, 0.1)
plt.figure(1)
plt.subplot(211)
plt.plot(t1, f(t1))
plt.show()
在这里,这是我收到的错误消息: “ ValueError:具有多个元素的数组的真值不明确。请使用a.any()或a.all()”
答案 0 :(得分:0)
不进行广播就可以这样做。
import numpy as np
def g(t):
g_value= integrate.quad (lambda t: t, 0, t)
return (g_value)
def f(t):
f_value = t**3 - g(t)
return (f_value)
t1 = np.arange (-5, 5, 0.1)
ft1 = []
for tt in t1:
ft1.append(f(tt)[0])
plt.figure(1)
plt.subplot(211)
plt.plot(t1, ft1)
plt.show()
向量化版本可以像这样(mentioned here)
import numpy as np
def g(t):
g_value= integrate.quad (lambda t: t ,0,t)
return (g_value)
g_vectorized = np.vectorize(g)
def f(t):
f_value = t**3 - g_vectorized(t)
return (f_value)
t1 = np.arange (-5, 5, 0.1)
plt.figure(1)
plt.subplot(211)
plt.plot(t1, f(t1)[0])
plt.show()
两者都导致