Я хотел бы решить нелинейное дифференциальное уравнение первого порядка с использованием Python.Решение нелинейных дифференциальных уравнений первого порядка с использованием Python
Например,
ДФ/дт = е ** 4
Я написал следующую программу, но у меня есть проблема с Matplotlib, так что я не знаю, если метод, который я использовал с SciPy верно.
from scipy.integrate import odeint
import numpy as np
import matplotlib.pyplot as plt
derivate=lambda f,t: f**4
f0=10
t=np.linspace(0,2,100)
f_numeric=scipy.integrate.odeint(derivate,f0,t)
print(f_numeric)
plt.plot(t,f_numeric)
plt.show()
что приводит к следующей ошибке:
AttributeError: 'float' object has no attribute 'rint'
попробовать 'т = np.linspace (0,0.00033,1000)' – HYRY
Это странно, потому что код выше работает хорошо для меня, когда я изменить '' scipy.integrate.odeint' к odeint' (так как вы на самом деле не импортировали пространство scipy namespace, функцию odeint следует вызывать только по его имени) –
@HYRY: Я пробовал 't = np.linspace (0,0.00033,1000)', и он работает для этого t, как могу ли я заставить его работать для 't = np.linspace (0,2 100)'? @Azrathud: Он работает с вашим советом ... но не все время. На самом деле, если вы попробуете мой код 10 раз, он не будет работать 10 раз: будет 'AttributeError'. Есть ли у вас другой совет, чтобы он работал? – Jack