Когда я компилирую следующую программу, Python генерирует ошибку TypeError: только скалярные массивы могут быть преобразованы в скалярный индекс.
Это выглядит как относительно простое выполнение программы, но я не могу ее решить.
Частота
import matplotlib.pyplot as plt
import numpy as np
def period(n):
#masses
m = [1] * n
#lengths
l = [2] * n
M = sum(m)
num = 2 * math.pi * n
for i in range(n):
dem = dem + math.sqrt(g * m[i]/(l[i] * M))
return num/dem
x = np.arange(1, 10,1)
y = period(x)
plt.plot(x,y)
plt.show()
Пусть M == sum from j==1 to n of the masses m_j
. Я ожидаю, что программа просто отобразит график period
, где period(n)
просто определяется суммой от 1
до n
из sqrt(g * m_j/(l_j * M))
.