Matlab  |  Mathcad  |  Maple  |  Mathematica  |  Statistica  |  Другие пакеты Поиск по сайту
Internet-класс  |  Примеры  |  Методики  |  Банк задач  |  Консультации & Форум  |  Download  |  Ссылки  |  Конкурсы
Научно-практический журнал "Exponenta Pro. Математика в приложениях". Вышел 1/2004 номер журнала
Карта сайта | На первую страницу | Поиск |О проекте |Сотрудничество |
Exponenta Pro | Matlab.ru

Наши баннеры


Copyright © 2000-2003. Компания SoftLine. Все права защищены.

Дата последнего обновления информации на сайте: 11.05.04
Сайт начал работу 1.09.00

Программное обеспечение Microsoft, Macromedia, VERITAS, Novell, Borland, Symantec, Oracle и др.

 

 
Система Хенона-Хейлеса
выполнил: Кузнецов Сергей,
Нижегородский Государственный Педагогический Университет,
физический факультет, кафедра общей физики, 2003

archive.gif (75 bytes) Архив разработки (4 Кб, Maple)

Введение

 

Рассмотрим гамильтонову систему с функцией Гамильтона вида

.

Это набор невзаимодействующих консервативных осцилляторов или ротаторов.

Характерной особенностью фазового портрета такой системы является расслоение его на n-мерные интегральные торы с квазипериодическими или периодическими обмотками. Уравнения движения в этом случае приводятся к виду

,

а их решения   при некоторых общих предположениях являются периодическими функциями времени с периодами, зависящими от постоянных интегрирования.

Вопрос о сохранении такой структуры при мамлых возмущениях функции Гамильтона был предметом рассмотрения в теории КАМ. С ростом возмущения эта структура, как правило, разрушается, и могут возникнуть хаотические движения. Возможность такого разрушения численно была подтверждена в работе Хенона и Хейлеса (1964) для функции Гамильтона вида H = 1*(p1^2+p2^2)/2+1*(q1^2+q2^2)/2+epsilon*H1 , где H1 = q1^2*q2-1*q2^3/3 . С ростом параметра epsilon  появляются хаотические траектории, образующие в трёхмерном подпространстве постоянной энергии весьма сложные и запутанные клубки.

Литература :

Неймарк Ю. И., Ланда П.С.  Стохастические и хаотические колебания.

restart;

>    with(DEtools):with(plots):

параметр возмущения

>    epsilon:=0.2; #0, 0.2

Возмущение

>    H1:=q1^2*q2-1/3*q2^3;

Гамильтониан

>    H:=1/2*(p1^2+p2^2)+1/2*(q1^2+q2^2)+epsilon*H1;
Warning, the name changecoords has been redefined
epsilon := .2 

H1 := q1^2*q2-1/3*q2^3

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

Система уравнений

>    sys:=hamilton_eqs(H);

         
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)]

Процедура 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

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):

Построение:

>    display(qp1,qp2);

>    display(pp1,pp2);

[Maple Plot]

[Maple Plot]

Наверх