Я пытаюсь определить функцию, в которой я хочу ограничить часть функции. Я пытаюсь сделать это с помощью min()
, но он возвращает
The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Мой код:
def f(x, beta):
K_w = (1+((0.5*D)/(0.5*D+x))**2)**2
K_c = min(11,(3.5*(x/D)**(-0.5))) # <-- this is what gives me the problem. It should limit K_c to 11, but that does not work.
K_tot = (K_c**2+K_w**2+2*K_c*K_w*np.cos(beta))**0.5
return K_tot
x = np.linspace(0, 50, 100)
beta = np.linspace(0, 3.14, 180)
X, Y = np.meshgrid(x, beta)
Z = f(X, Y)
fig = plt.figure()
ax = plt.axes(projection='3d')
ax.contour3D(X, Y, Z, 100, cmap = 'viridis')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z');
Я ожидал, что K_c
будет ограничено 11, но это дало
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Возможно, я делаю ошибку новичка, но помощь очень ценится!