Архив разработки (4 Кб, Maple)
Введение
Рассмотрим гамильтонову систему с функцией Гамильтона вида
.
Это набор невзаимодействующих консервативных осцилляторов или ротаторов.
Характерной особенностью фазового портрета такой системы является расслоение его на n-мерные интегральные торы с квазипериодическими или периодическими обмотками. Уравнения движения в этом случае приводятся к виду
,
а их решения при некоторых общих предположениях являются периодическими функциями времени с периодами, зависящими от постоянных интегрирования.
Вопрос о сохранении такой структуры при мамлых возмущениях функции Гамильтона был предметом рассмотрения в теории КАМ. С ростом возмущения эта структура, как правило, разрушается, и могут возникнуть хаотические движения. Возможность такого разрушения численно была подтверждена в работе Хенона и Хейлеса (1964) для функции Гамильтона вида , где . С ростом параметра появляются хаотические траектории, образующие в трёхмерном подпространстве постоянной энергии весьма сложные и запутанные клубки.
Литература :
Неймарк Ю. И., Ланда П.С. Стохастические и хаотические колебания.
restart;
> |
with(DEtools):with(plots): |
параметр возмущения
Возмущение
Гамильтониан
> |
H:=1/2*(p1^2+p2^2)+1/2*(q1^2+q2^2)+epsilon*H1; |
Warning, the name changecoords has been redefined
![H1 := q1^2*q2-1/3*q2^3](images/henon_heiles_system8.gif)
![H := 1/2*p1^2+1/2*p2^2+1/2*q1^2+1/2*q2^2+.2*q1^2*q2-.6666666667e-1*q2^3](images/henon_heiles_system9.gif)
Система уравнений
![](images/henon_heiles_system10_1.gif)
![](images/henon_heiles_system10_2.gif)
![sys := [diff(p1(t),t) = -q1(t)-.4*q1(t)*q2(t), diff(p2(t),t) = -q2(t)-.2*q1(t)^2+.2000000000*q2(t)^2, diff(q1(t),t) = p1(t), diff(q2(t),t) = p2(t)], [p1(t), p2(t), q1(t), q2(t)]](images/henon_heiles_system11.gif)
Процедура ff -решает систему.
> |
ff:=dsolve({sys[1][1],sys[1][2],sys[1][3],sys[1][4],p1(0)=1,q1(0)=1,p2(0)=1,q2(0)=2},
{p1(t),q1(t),p2(t),q2(t)}, type=numeric,method=lsode, output=listprocedure): |
Процедуры fp,fw-решения для q1 и q2 соответственно.
> |
fp := subs(ff,q1(t)): fw := subs(ff,q2(t)): |
Процедуры fpp,fwp-решения для p1 и p2 соответсвенно.
> |
fpp:=subs(ff,p1(t)):fwp:=subs(ff,p2(t)): |
Начальное и конечное время, количество шагов.
> |
steps:=3000; init_t:=0; fin_t:=100*Pi; |
![steps := 3000](images/henon_heiles_system12.gif)
![init_t := 0](images/henon_heiles_system13.gif)
![fin_t := 100*Pi](images/henon_heiles_system14.gif)
g,h - временные ряды для q1,q2
> |
g:=seq([(fin_t-init_t)/steps*i,fw((fin_t-init_t)/steps*i)],i=0..steps): |
> |
h:=seq([(fin_t-init_t)/steps*i,fp((fin_t-init_t)/steps*i)],i=0..steps): |
gp,hp - координаты точек фазовых портретов (q1,p1) и (q2,p2)
> |
gp:=seq([fpp((fin_t-init_t)/steps*i),fp((fin_t-init_t)/steps*i)],i=0..steps): |
> |
hp:=seq([fwp((fin_t-init_t)/steps*i),fw((fin_t-init_t)/steps*i)],i=0..steps): |
Колебания:
> |
qp1:=pointplot([h],connect=true,color=red,title="oscillations ",labels=[time,q],color=red): |
> |
qp2:=pointplot([g],connect=true,color=red,title="oscillations",labels=[time,q],color=green): |
Фазовый портрет:
> |
pp1:=pointplot([hp],connect=true,color=red,title="phase portrait",labels=[coordinate,velocity],color=red): |
> |
pp2:=pointplot([gp],connect=true,color=red,title="phase portrait",labels=[coordinate,velocity],color=green): |
Построение:
![[Maple Plot]](images/henon_heiles_system15.gif)
![[Maple Plot]](images/henon_heiles_system16.gif)
Наверх
|