Архив
разработки (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):
|
Построение:
Наверх
|