Я пытаюсь решить дифференциальное уравнение R'(t)^{2} = 1/R с начальным условием, что R(0) = 0 в Python. Я должен получить решение R(t) = (3/2 * t)^(2/3), как я получил из математики. График решения задачи R'[t]^2 = 1/R с начальным условием R(0) = 0
Я использовал следующий код на Python:
Код: Выделить всё
import numpy as np
from scipy.integrate import odeint
import matplotlib.pyplot as plt
sqrt = np.sqrt
# function that returns dy/dt
def model(y,t):
#k = 1
dydt = sqrt(1/y)
return dydt
# initial condition
y0 = [0.0]
# time points
t = np.linspace(0,5)
# solve ODE
y = odeint(model,y0,t)
# plot results
plt.plot(t,y)
plt.ylabel('$R/R_0$')
plt.xticks([])
plt.yticks([])
plt.show()
Однако я получаю только 0, поскольку в какой-то момент я, очевидно, делю на ноль график дифференциального уравнения Python R'[t]^2 = 1/R, что неверно. Может ли кто-нибудь указать, что я могу сделать, чтобы получить ожидаемое решение и сюжет.
Спасибо