Мне нужно получить Фазовый портрет системы при E = 0,5.
Если вы увеличиваете указанный интервал t, то выскакивает ошибка: ODEintWarning: Превышена работа над этим вызовом (возможно, неправильный тип Dfun). Запустите с full_output = 1, чтобы получить количественную информацию. warnings.warn (warning_msg, ODEintWarning), как с этим бороться? [1]: /wp-content/uploads/2021/05/67592649-im-1.png [2]: /wp-content/uploads/2021/05/67592649-im-2.png</ а>
#E=0.5
t2=linspace(-1,1,1000)
m=1
k=4
beta=1
x0=-sqrt(8)
def v0(x0,E0,k,m,beta):
v1=np.sqrt((2*(E0-k*x0**2/2+beta*x0**4/4))/m)
return v1
def f(y,t):
x,v = y
return [v, (-k*x+(beta*x**3))/m]
result3 = odeint(f,[x0,v0(x0,0.5,k,m,beta)],t2)
x3 = result3[:,0]
v3 = result3[:,1]
plot(x3,v3)
xlabel('x')
ylabel('v')
xlim(-4,4)
ylim(-7,7)
grid()
Этот пост может быть хорошим началом (та же ошибка):
stackoverflow.com/questions/66732046/ — person grom schedule 19.05.2021