Я создал функцию, которая возвращает значение для силы в зависимости от позиции z (z_pos). Я хотел бы построить эти результаты (диаграмма сдвига для инженеров здесь), однако я получаю следующую ошибку:Как построить результаты функции с помощью matplotlib в python
ValueError: Значение истинности массива с более чем одним элементом неоднозначно. Используйте a.any() или a.All()
Я попытался это как с arange и LINSPACE, увидеть код здесь:
import matplotlib.pyplot as plt
import numpy as np
#values in kN and m
FyFL = 520
FyRL = 1246
L = 40.
Lf1 = 2.
Lf2 = 25.5
g = 9.81
W = 60000
q = (3*g*W/L)/1000 #kN/m
print q
def int_force_y(FyFL, FyRL, L, Lf1, Lf2, q, z_pos):
if z_pos <= Lf1:
int_fc_y = -q*z_pos
elif z_pos > Lf1 and z_pos < Lf1+Lf2:
int_fc_y = -q*Lf1 + FyFL-q*z_pos
elif z_pos >= Lf2 and z_pos <= 40.:
int_fc_y = -q*Lf1 + FyFL-q*(Lf1+Lf2)-q*z_pos
else:
return "No valid z_pos"
return int_fc_y
z_pos = np.arange(0,41,1)
y = int_force_y(FyFL, FyRL, L, Lf1, Lf2, q, z_pos)
plt.plot(z_pos,y)
plt.show()
Помощь очень ценится!
Это не даст ему желаемого результата, так как функция вернет только одно значение, а не массив всех значений результата. – jotasi