Архив разработки (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
Система уравнений
Процедура 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; |
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): |
Построение:
Наверх
|