Я пытаюсь построить график величины a, которая варьируется от 0 до 1, по сравнению с величиной HOt, которую я закодировал, чтобы решить ее как задачу дифференциальной интеграции. Я не знаю, если что-то не так с тем, что я использую «HOt» во время построения графиков, но не уверен что? Я получаю сообщение об ошибке, что только массивы размера 1 могут быть преобразованы в скаляры Python. Обновление: x и y должны иметь одно и то же первое измерение, но иметь формы (50,) и (1,) - это новая ошибка, после того как я исправил свой код.
HO = 67.8
a = np.linspace(0.01,1.00)
def x(a):
return np.log(a)
oR = 0.0000903
oL = 0.692
oM = 0.306
def f(a,oR,oL,oM):
return 1/(np.sqrt(oR/((a)**2))+(oL*(a)**2(oM/a))
def HOt(a, oR,oL,oM):
return integrate.quad(f, 0,a)[0]
def y(HOt):
np.log(HOt(a, oR,oL,oM))
return y
plt.clf()
plt.plot(x(a),y, '.')
plt.xlabel('a(t)')
plt.ylabel('time(in units of H0)')
plt.title('scale factor vs time')`