САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
КАФЕДРА КОМПЬЮТЕРНОГО МОДЕЛИРОВАНИЯ И МНОГОПРОЦЕССОРНЫХ
СИСТЕМ
Бертисова Людмила Сериковна
Выпускная квалификационная работа бакалавра
Графический интерфейс для анализа динамических
систем
Направление 010300
Фундаментальная информатика и информационные технологии
Научный руководитель,
доктор физ.-мат. наук,
профессор
Андрианов С.Н.
Санкт-Петербург
2016
Содержание
Введение ................................................................................................................... 3
Постановка задачи ................................................................................................... 5
Обзор литературы.................................................................................................... 6
Глава 1. Постановка и формализация задачи ....................................................... 8
1.1. Гамильтонова механика ............................................................................... 8
1.2. Условие симплектичности ......................................................................... 10
1.3. Методы численного интегрирования ........................................................ 13
1.4. Сечение Пуанкаре ....................................................................................... 17
Глава 2. Разработка программного обеспечения ............................................... 19
2.1. Используемые IT технологии .................................................................... 19
2.2. Структура программы ................................................................................ 20
Глава 3. Тестирование и демонстрация программного обеспечения .............. 24
3.1. Маятник с нелинейным возмущением ...................................................... 24
3.2. Система Хенона-Хейлеса ........................................................................... 25
3.3. Вычислительный эксперимент .................................................................. 26
Выводы ................................................................................................................... 31
Заключение ............................................................................................................ 32
Список литературы ............................................................................................... 34
2
Введение
В последнее время огромное распространение получает компьютерное
моделирование,
так
как
вычислительная
мощность
современных
компьютеров и техники постоянно растет. Построение компьютерной модели
какого-либо
процесса
или
объекта
часто
начинают
с
описания
соответствующей динамической системы. Под динамической системой
подразумевают совокупность некоторых элементов в заданный момент
времени и закон, однозначно определяющий изменение (эволюцию)
состояния во времени.
С
точки
зрения
энергии
динамические
системы
делятся
на
диссипативные и консервативные. В отличие от диссипативных систем,
энергия консервативных систем не изменяется с течением
времени. В
данной работе будут рассматриваться именно консервативные системы.
Большинство консервативных физических процессов можно описать в
терминах гамильтоновой системы с соответствующей функцией Гамильтона
(гамильтонианом). Анализ таких систем имеет широкое применение во
многих областях науки, таких как физика, химия, биология и так далее.
Исследование консервативных систем является очень актуальным в
сфере космологических задач. Пример такой системы — солнечная система.
Очевидно, компьютерное моделирование и анализ консервативных систем
является
необходимым
инструментом
в
данной
области,
так
как
астрономические исследования ресурсозатратны, а иногда и невозможны.
Одной из практически распространенных задач в этой области является
задача Хенона-Хейлеса.
Более того, большое применение анализ гамильтоновых систем
находит в физике пучков. В последнее время стали появляться сложные
электрофизические установки, такие как ускоритель частиц. В реальном
мире физик не может точно знать, что произойдет в результате работы
машины при изменении различных параметров, поэтому приходится
3
проводить различные тесты, изменяя те или иные опции для достижения
желаемого результата. Однако это приводит к большим ресурсным затратам.
Поэтому более целесообразно все тесты проводить на виртуальной машине.
Вот почему компьютерное моделирование гамильтоновых систем в области
физики пучков занимает одну из важнейших позиций в современной научной
картине мире. Такой
системой описывается движение электрона в
электромагнитном поле.
С использованием гамильтонова подхода к описанию механики,
динамическую систему можно описать системой из 2n дифференциальных
уравнений
(ОДУ)
первого
порядка.
Эти
уравнения
называются
каноническими уравнениями Гамильтона. Для построения численной модели
необходимо провести интегрирование заданной системы уравнений.
При численном моделировании динамических систем на длительных
промежутках времени важной особенностью является проблема сохранения
ее
энергии.
В
терминах
данной
проблемы
говорят
о
свойстве
симплектичности гамильтоновых систем. Именно поэтому важно выбрать
такой метод интегрирования, который будет сохранять симплектическую
структуру гамильтониана. Такие методы называются симплектическими. В
данной работе будут рассмотрены:
стандартные схемы Рунге-Кутты;
симплектический вариант методов Рунге-Кутты;
симплектические методы Эйлера и Штѐрмера-Верле.
При проведении анализа также рассматривают такое понятие, как
фазовый портрет – изображение, характеризующее качественное поведение
решений системы или, проще говоря, графическое изображение точек,
полученных путем интегрирования системы. Целью данной работы является
создание программного продукта с удобным графическим пользовательским
интерфейсом для интегрирования гамильтоновых систем разными методами
и их анализа путем изменения различных параметров. Программа должна
позволять строить и отображать фазовые портреты анализируемых систем.
4
Обобщая вышесказанное, сформулируем более точно актуальность
данной работы.
Актуальность темы.
Как говорилось выше, анализ динамических систем имеет большое
значение в самых разных областях науки. Несмотря на то, что в наше время
динамические системы повсеместно исследуются, свойство симплектичности
нередко не упоминается или не рассматривается, что может привести к
ошибочным
выводам.
Следует
также
отметить,
что
русскоязычные
источники на данную тематику практически отсутствуют, а существующие
не всегда актуальны и обладают полной необходимой информацией.
Есть большое количество разных численных методов интегрирования,
а программного продукта, реализующего их как единое целое, нет. Большая
часть применяемых вычислительных программных пакетов, таких как Matlab
или Maple, не имеют должного графического интерфейса. Вследствие этого
они сложны в освоении для рядового пользователя, не являющегося
специалистом в информационных технологиях.
Более того, разрабатываемая программа будет полезной не только для
исследователей различных областей науки, но и в качестве наглядного
пособия
для
преподавателей
и
обучающихся
на
профильных
и
специализированных курсах.
Постановка задачи
Целью
данной
работы
является
разработка
программного
обеспечения, сочетающего в себе достаточно широкий функционал для
анализа динамических систем и удобный графический интерфейс.
Для осуществления данной цели необходимо выполнить следующие
задачи:
рассмотреть различные методы численного интегрирования, в том
числе методы, обеспечивающие сохранение энергии системы;
5
разработать программное обеспечение, удовлетворяющее описанным
ниже требованиям;
провести тестирование разработанного приложения на нескольких
нетривиальных динамических системах;
Разработанное
программное
обеспечение
должно
удовлетворять
нижеследующим базовым требованиям:
1. Соответствие последним стандартам в области информационных
технологий.
2. Предоставление достаточного инструментария для решения широкого
класса задач относительно эффективными методами.
3. Наличие эстетически приятного графического интерфейса, удобного и
понятного как для опытного пользователя, так и для начинающего.
Обзор литературы
Основными источниками, описывающими проблемы, возникающие
при интегрировании гамильтоновых систем, явились [8], [9], [10], [13], [14].
Работы [8] и [9] были одними из первых в изучаемой области. В них
приводятся условия симплектичности преобразований и примеры первых
симплектических интеграторов.
В [10] рассматриваются примеры применения некоторых методов
интегрирования к конкретным динамическим системам. Однако результаты
представлены достаточно кратко и в основном заключаются в графическом
представлении решений систем без их анализа.
В работах [13] и [14] раскрывается проблема сохранения энергии при
интегрировании консервативных систем, а так же выводятся некоторые
симплектические схемы интегрирования. В этих работах сохранение энергии
исследуется на достаточно тривиальном примере – линейном маятнике.
Важно заметить, что большая часть литературы, посвященной
моделированию
динамических
систем
6
и
проблеме
сохранения
их
симплектичности, является англоязычной. Из русскоязычных источников
можно выделить [6], где
синтезируются симплектические варианты
стандартных схем Рунге-Кутты.
В статьях [11] и [12] описывается система Хенона-Хейлеса, ставшая
одной из классических в области астрономических задач и впоследствии
выбранная для демонстрации разработанной программы.
Так же следует отметить, что опорой для изучения гамильтоновых
систем и их симплектической структуры являлись учебное пособие Ландау и
Лифшица [3] и курс Гантмахера [2]. Также можно упомянуть книгу [5] и
официальное руководство [17], используемые при реализации программной
части работы.
Важно заметить, что хоть и существует относительно достаточное
количество
англоязычной
литературы,
исследующей
симплектические
интеграторы, графического средства для анализа заданных гамильтоновых
систем автору не известно. В известных автору работах и статьях численные
методы, пусть даже и симплектические, рассматриваются на конкретных
примерах, часто тривиальных, без указания, каким образом эти методы были
реализованы и какими средствами проводилось построение фазовых
портретов.
7
Глава 1. Постановка и формализация задачи
В данной главе рассматриваются основные понятия, необходимые для
анализа динамических систем. Также уделяется внимание закону сохранения
энергии и свойству симплектичности. Приводятся схемы некоторых методов
интегрирования. Текст главы опирается на учебное пособие Ландау и
Лифшица [3] и курс Гантмахера [2].
1.1. Гамильтонова механика
Согласно [1] под динамической системой понимают любой объект или
процесс, для которого однозначно определено понятие состояния как
совокупности некоторых величин в данный момент времени и задан закон,
который описывает изменение (эволюцию) начального состояния с
течением времени.
Динамические системы можно разделить
на диссипативные и
консервативные. Энергия консервативных систем не изменяется с течением
времени. В данной работе будут рассматриваться именно консервативные
системы. Практически все консервативные физические процессы могут быть
описаны в терминах «подходящего» гамильтониана (функции Гамильтона).
Исходя из этого, далее рассмотрим подробнее гамильтонов подход к
описанию механики.
Полагаем, что положение системы с n степенями свободы задается
T
величинами q (q1,, qn ) , называемыми обобщенными координатами (это
могут быть декартовы координаты, углы и т.д.). Пусть выражение
, ),
T T (q q
T
где q (q1,, q n ) − соответствующие обобщенные скорости, представляет
кинетическую энергию, и функция
U U (q )
представляет
потенциальную
энергию.
лагранжиан:
8
Обозначим
соответствующий
L T U.
Тогда, для координат q1 , , qn записываются следующие дифференциальные
уравнения
d L L
,
dt q q
(1.1)
которые представляют собой уравнения Лагранжа для динамической
системы.
Интегрирование
данных
уравнений
позволяет
предсказать
движение любой такой системы из заданных начальных данных.
Гамильтон
(1834)
упростил структуру
уравнений
Лагранжа
и
преобразовал их в симметричную форму следующим образом. Для каждой
обобщенной скорости можно записать так называемый сопряженный
импульс
pi
L
(q,q ), i 1, , n.
qi
(1.2)
Тогда гамильтониан определяется, как функция Гамильтона
H (p q
, ) pTq L(q ,q ).
(1.3)
Гамильтонова функция системы является результатом преобразований
Лежандра.
Из дифференциального равенства
dH p i dqi q i dpi ,
следуют уравнения
q i
H
,
pi
p
i
H
.
qi
(1.4)
Это уравнения движения в переменных p и q, называемые каноническими
уравнениями Гамильтона. Система, заданная уравнениями (1.4), называется
гамильтоновой.
Из определений (1.2) и (1.3) для импульсов p и
гамильтониана H нетрудно видеть, что уравнения (1.4) эквивалентны
уравнениям Лагранжа (1.1):
9
H
q L q
q T pT
q T ,
p
p q p
H
q L L q
L
pT
.
q
q q q q
q
Уравнения Гамильтона составляют систему из 2n ОДУ первого порядка,
заменяющих собой n уравнений второго порядка метода Лагранжа.
Функция I ( y ) является первым интегралом системы y f ( y ) , если [10]
I ( y ) f ( y ) 0
y.
Иначе говоря, каждое решение y (t ) системы y f ( y ) должно удовлетворять
условию I y(t ) const.
Функция Гамильтона H (p q, ) является первым интегралом системы
(1.4). Так как в данном случае уравнения преобразования, определяющие
обобщѐнные координаты, не зависят явно от времени t, гамильтониан равен
полной энергии (выраженной как функция координат и импульсов), то есть
H T U.
Значит, гамильтоновы системы являются консервативными, и при движении
системы гамильтониан сохраняет постоянное значение энергии, зависящее
только от начальных условий. Таким образом, можно говорить о том, что
фазовое пространство гамильтоновой системы имеет симплектическую
структуру. Очень часто при моделировании динамических систем о свойстве
симплектичности забывают, что нередко приводит к ошибочным выводам о
поведении системы [13]. В следующем параграфе рассмотрим более
подробно понятие симплектичности, а также условие, при котором можно
говорить о симплектичности системы.
1.2. Условие симплектичности
В соответствии с [2] преобразование координат в 2n-мерном фазовом
пространстве (содержащее в общем случае переменную времени t как
параметр)
10
qi qi t( , qk , pk )
(q1 , p1 , , qn , p n )
i 1, , n;
0
p i p i t( , qk , pk )
(q1 , p1 , , qn , pn )
(1.5)
называется каноническим, если это преобразование переводит любую
гамильтонову систему
dqi
dt
H dp i
H
,
,
pi dt
qi
i 1, , n
(1.6)
снова в гамильтонову систему (вообще говоря, с другой функцией
Гамильтона H ):
dqi
dt
H dp i
H
,
,
p i dt
qi
i 1, , n.
После последовательного выполнения в фазовом пространстве двух
канонических преобразований получившееся в результате преобразование
будет
каноническим.
Преобразования,
которые
дополнительно
характеризуются неравенством
(q1 , , qn )
0,
(q1 , , qn )
называются свободными [2].
Запишем матрицу Якоби канонического преобразования
q
q
M=
p
p
где
q
− матрица Якоби n-порядка
q
матрицы
q
p
,
p
p
qi
qk
. Аналогично определяются
q p p
,
,
.
p p p
Рассмотрим соотношение
M TJM cJ ,
где J – специальная матрица порядка 2n
11
(1.7)
O
J
E
E
.
O
E − единичная матрица n-го порядка. Константа c называется валентностью
преобразования
(1.5).
Если
c 1,
то
преобразование
называется
унивалентным [4].
Именно условие (1.7) является условием симплектичности, а матрица
M , удовлетворяющая ему при c 1 , называется симплектической.
Движение гамильтоновой системы (1.6) можно рассматривать как
свободное унивалентное каноническое преобразование. Это значит, что его
матрица Якоби симплектична и ее определитель равен 1.
При использовании симплектических методов для интегрирования
уравнений (1.6) не происходит постоянного увеличения погрешности
энергии, поскольку
значение
гамильтониана сохраняется близким к
исходному [8].
Точное
решение
уравнений
Гамильтона
(1.6)
удовлетворяет
следующим свойствам. Отображение (q,p ) в точке t 0 в (q,p ) в точке
t , соответствующее точному решению,
(i) удовлетворяет условию симплектичности (1.7)
и
(1.8)
(ii) сохраняет энергию, т.е. H (q p, ) H (qp, ).
Если для интегрирования системы (1.6) используется традиционный метод
(например, метод Эйлера), который не сохраняет симплектическую природу
гамильтониана, то описанные выше условия легко нарушаются [14].
Например, одномерный гармонический осциллятор с гамильтонианом
1
H ( p 2 q 2 ) имеет точное решение
2
q() cos sin q(0 )
,
p( ) sin
cos p(0 )
которое, естественно, удовлетворяет описанным выше условиям (1.8).
12
(1.9)
Самый примитивный метод интегрирования (здесь метод Эйлера)
аппроксимирует (1.9) следующим образом:
q 1
p
q
.
p
1
(1.10)
Преобразование (1.10) не является симплектичным, и на каждом шаге
2
значение энергии будет умножаться на (1 ) , то есть
2
2
2
2
2
(p
q ) (1 )( p q ),
что ведет к неопределѐнному возрастанию энергии.
Небольшая поправка в (1.10) сделает отображение (q,p ) (q ,p )
симплектичным:
q
q 1
p
.
2
p
1
С использованием симплектических численных методов погрешность
вычисления энергии не меняется со временем, а лишь колеблется в
определенном промежутке. В следующем параграфе более подробно
рассмотрим
стандартные
несимплектичные
и
симплектичные
схемы
численного интегрирования.
1.3. Методы численного интегрирования
Как говорилось выше, гамильтонова система описывается уравнениями
(1.4). Далее рассмотрим различные методы численного интегрирования ОДУ
первого порядка вида:
yt( ) f (t, y (t )),
с начальными заданными условиями y (0) y0 . Функции y и f могут быть
заданы векторами.
Явные методы
Рунге-Кутты.
Методы
семейства Рунге-Кутты
являются одними из самых известных и распространенных методов
интегрирования ОДУ.
Такие методы являются одношаговыми, но с
13
несколькими этапами за шаг. Семейство явных методов Рунге-Кутты можно
представить в виде
s
yn 1 yn h b ik i ,
i
где
k1 f (tn , yn ),
k2 f (tn c2h ,y n h(a 21k 1 )),
k3 f (tn c3h ,y n h(a 31k 1 a32k 2 )),
k s f (tn csh ,y n h(a sk1 1 ask2 2 as ,s 1k s 1 ))
где h – размер шага, коэффициенты ci , bi и aij зависят от конкретной
реализации схемы Рунге-Кутты. Иногда коэффициенты удобней упорядочить
в так называемую таблицу Бутчера (Батчера) [7]:
0
c2 as1
cs as1 as ,s 1
b1 b2 bs
Методы такого вида являются явными, так как правые части уравнений
содержат величины, которые получаются на предыдущем шаге вычислений.
Приведем наиболее используемую схему Рунге-Кутты 4-го порядка:
k1 hf (tn , yn ),
h
k
k2 hf (tn , yn 1 ),
2
2
h
k
k3 hf (tn , yn 2 ),
2
2
k4 hf (tn h,y n k3 ).
Данный метод очень часто применяется на практике, так как известен своей
относительной простотой и достаточной степенью точности.
14
Симплектические методы Рунге-Кутты. Рассмотрим неявный sэтапный метод Рунге-Кутты для системы ОДУ первого порядка y f (t, y )
при начальных условиях y (t 0 ) y0
s
yn1 yn h b j f (tn c jh ,k j ),
j 1
где
s
c j 0,
c
j
1
j 1
s
a
j 1, , s
cj,
ji
i 1
b
1 ,
j
j
а k j − решения системы уравнений
s
k j yn h a jif (tn c jh ,k i ).
i 1
Таблица Бутчера будет иметь вид:
a11
cs as1
b1
c1
a1s
ass
bs
c
A
bT
Если выполняются соотношения
bi aij bj a ji bb
0, i, j 1,, s
i j
,
то метод Рунге-Кутты является симплектическим [9].
Приведем схему симплектического одноэтапного метода Рунге-Кутты:
h 1
yn1 yn hf tn , ( yn yn 1 ) .
22
Данный
метод
также
называют
методом
Гаусса-Лежандра.
гамильтоновой системы схему (1.11) можно записать в следующем виде
yn1 yn hJ 1H ( yn1 yn ) / 2.
15
(1.11)
Для
Симплектические методы. Существуют симплектические методы для
интегрирования именно гамильтоновых систем (1.6). Рассмотрим метод
Эйлера
pn1 pn hH qp(
n 1
, qn )
qn1 qn hH p ( pn1 , qn )
(1.12)
.
Дифференцирование по ( pn , qn ) дает
T
E hH qp
hH pp
E
E ( pn , qn ) 0
0 ( pn1 , qn1 )
hH qq
,
E hH qp
где H qp , H pp , − матрицы частных производных, вычисленные в ( pn1 , qn ).
( pn1, qn1 )
Это отношение позволяет вычислить
и убедиться в выполнении
(
p
,
q
)
n
n
T
( pn1 , qn1 ) ( pn1 , qn1 )
условия симплектичности
J ( p , q ) J . Это показывает,
(
p
,
q
)
n
n
n n
что метод Эйлера вида (1.12) удовлетворяет условию (1.7) и является
симплектическим методом первого порядка.
Схемы Штѐрмера-Верле
h
pn1/2 pn H q ( pn1/2 , qn )
2
h
qn1 qn H q ( pn 1/2 , qn ) H p ( pn1/2 , qn1 )
2
h
pn1 pn1/2 H q ( pn1/2 , qn 1 )
2
и
h
H q ( pn , qn1/2 )
2
h
pn1 pn H p ( pn , qn 1/2 ) H p ( pn 1 , qn1/2 )
2
h
qn 1 qn1/2 H q ( pn1 , qn1/2 )
2
qn 1/2 qn
16
являются симплектическими методами второго порядка. Это является
непосредственным следствием того, что схема Штѐрмера-Верле является
композицией двух симплектических методов Эйлера (1.12).
1.4. Сечение Пуанкаре
Поскольку в данной работе рассматриваются системы с двумя
степенями свободы, а значит, их движение происходит в четырехмерном
пространстве, очень важно рассмотреть такое понятие, как сечение или
отображение Пуанкаре.
Для этого рассмотрим систему с двумя степенями свободы с
гамильтонианом
H (q p, ).
Движение,
соответственно,
происходит
в
четырехмерном пространстве. Поскольку энергия консервативным систем
остается постоянной, мы можем выразить одну из переменных через
оставшиеся, например, p1 p1q( q1 , 2 , p1 , p2 ). Тогда получаем трехмерное
фазовое пространство ( q1q, 2 , p2 ).
Опишем далее, в чем заключается идея метода сечения Пуанкаре. В
фазовом пространстве выбирается некоторая поверхность, обычно, это
плоскость. Далее изучается пересечение фазовой траектории с выбранной
плоскостью. Рассматриваются точки, попавшие на заданную поверхность
(плоскость). Это позволяет рассматривать движение системы в двумерном
пространстве.
На Рис. 1.1 представлена иллюстрация метода сечения Пуанкаре.
Изображающая точка последовательно занимает положения, отмеченные
точками 1, 2, 3, 4.
Для расчета точек при очень маленькой толщине сечения Пуанкаре
может потребоваться много времени, но при большой толщине – точность
изображения может снизиться.
17
Рис. 1.1. Иллюстрация метода сечения Пуанкаре.
Этот метод является очень важным при анализе динамических систем,
так как двумерное пространство строится проще и быстрее, а главное,
наглядно показывает изменение движения системы.
18
Глава 2. Разработка программного обеспечения
В данной главе рассматривается программная часть и связанные с ней
аспекты. Приводятся используемые технологии и обоснование их выбора.
Кратко
рассматриваются
интерфейсу.
Описывается
обеспечения,
особенности
требования
к
структура
стандартному
графическому
разработанного
программного
графического
интерфейса
пользователя,
рекомендации по работе с программой.
2.1. Используемые IT технологии
В качестве основного инструмента для разработки программного
продукта были выбраны .NET технологии. Платформа .NET основана на
общеязыковой среде исполнения (CLR), которая подходит для разных языков
программирования. Это позволяет легко и быстро интегрировать компоненты,
написанные на других CLR-совместимых языках. Разработка приложения
осуществлялась на языке C# [16] в среде Microsoft Visual Studio 2015. C# −
язык, ориентированный на разработку
приложений,
исполняемых
в
среде .NET Framework. Следует заметить, что во время обучения в
университете большинство прослушанных курсов было ориентировано на
семейство языков C. Кроме того, СПбГУ сотрудничает с Microsoft, поэтому у
студентов есть свободный доступ к таким средам разработки, как Visual
Studio. Более того, по рейтингу TIOBE на май 2016 язык C# занимает
четвертое место в мире [15].
Приведем ключевые преимущества языка C# [5]:
1) C# является типобезопасным и чисто объектно-ориентированным
языком.
2) C# открывает доступ всему обширному количеству библиотек .NET
Framework.
3) Множество конструкций языка, отсутствующих в других языках, таких
как делегаты и перегрузка операторов.
19
4) Дизайн .NET и C# обеспечивает простую работу с платформой,
удовлетворяя все нужды разработчика.
5) Не нужно уделять время таким проблемам, как утечка памяти. Имеет
встроенный сборщик мусора.
6) Для
работы
разработанных
приложений
требуется
только
установленный .NET Framework.
Для построения графиков использовалась библиотека ZedGraph [17].
Эта библиотека является открытой, что позволило беспрепятственно ее
использовать. Более того, она является одной из самых удобных и
эффективных для построения графиков.
2.2. Структура программы
Структура разработанной программы. Программное обеспечение
представляет собой графический интерфейс, позволяющий пользователю
производить анализ динамической системы. Программа представлена в виде
исполняемого файла (*.exe) и динамической библиотеки (*.dll).
Структура программы описывается следующим образом:
инициализация начальных данных;
выбор метода интегрирования;
вычисления;
вывод результатов.
Интерфейс программы можно увидеть на рис. 2.1.
Инициализация
начальных
данных.
В
начале
исследования
пользователь вводит начальные данные в зависимости от выбранной
динамической системы. Например, для системы Хенона-Хейлеса это:
коэффициенты системы;
толщина сечения Пуанкаре;
желаемое количество точек в сечении;
начальные значения для интегрирования уравнения.
20
Имеется возможность ввода пользовательских коэффициентов.
Рис. 2.1. Интерфейс разработанной программы.
Выбор метода интегрирования. Пользователь имеет возможность
выбора метода интегрирования динамической системы. На данный момент в
программном комплексе реализованы:
классический метод Рунге-Кутты 4-го порядка;
одноэтапный симплектический метод Рунге-Кутты (который также
называют методом Гаусса-Лежандра);
метод Штѐрмера-Верле.
Вычисления. При нажатии кнопки «Вычислить» программа вычисляет
следующую точку, проверяет, попадает ли она в заданный слой сечения и
при необходимости сохраняет ее.
Вывод результатов. Вывод результатов происходит после нажатия
кнопки «Вычислить». После нахождения заданного количества точек
программа строит два графика: фазовый портрет системы и график
изменения
гамильтониана
энергии. Графики
можно масштабировать.
Помимо графиков на экран выводится общее количество посчитанных точек
и время, затраченное на их вычисление. Цвет линий графика можно менять с
21
помощью кнопки «Цвет...». Последующие фазовые портреты строятся в
одной области вывода, что позволяет эффективно производить анализ
динамическое системы, сравнивая фазовые портреты, полученные на
предыдущих шагах. Для очистки области вывода следует использовать
кнопку «Очистить».
Также имеется возможность пошагового построения графика фазовых
кривых. Пользователь выбирает переменную, на основе которой он хочет
производить исследование, и желаемый шаг, с которым переменная будет
изменяться. Пользователь может последовательно просматривать графики,
используя кнопку «Следующий шаг».
Важной отличительной функциональной особенностью разработанной
программы является возможность добавления и удаления пользовательской
динамической системы. Для этого следует воспользоваться строкой меню
(Рис. 2.2).
Рис. 2.2. Строка меню.
После
выбора
соответствующей
опции
добавления
появится
диалоговое окно (Рис. 2.3). Пользователю будет необходимо ввести название
новой динамической системы, ее функцию Гамильтона,
а так же
канонические уравнения. Некоторые поля могут оставаться пустыми.
Программа сама определит количество координат и импульсов в системе.
Также
следует
коэффициентов
заметить,
что пользователь
(параметров),
используемых
может
в
ввести названия
системе.
Они
будут
автоматически добавлены в список пользовательских параметров. Благодаря
этому программа становится более универсальной, так как пользователь не
ограничен в наборе параметров и затем может проводить анализ систем,
изменяя требуемые параметры, которых изначально в программе встроено не
22
было. После нажатия кнопки «Добавить» новая система вместе с
параметрами будет добавлена в программный комплекс (Рис. 2.4).
Рис. 2.3. Диалоговое окно добавления системы.
Рис. 2.4. Список с добавленной пользователем системой.
После выбора соответствующей опции удаления появится диалоговое
окно (Рис. 2.5). В нем будет представлен список всех добавленных на данный
момент систем. Для удаления какой-либо из этих систем требуется выбрать
соответствующий пункт и нажать кнопку «Удалить».
При желании графики полученных вычислений можно сохранить в
формате
.jpeg,
.png
или
.bmp.
Для
этого
нужно
использовать
соответствующую опцию в строке «Меню», которую можно увидеть на Рис.
2.2.
Рис. 2.5. Диалоговое окно удаления системы.
23
Глава 3. Тестирование и демонстрация программного
обеспечения
На данный момент для проведения тестирования и демонстрации
разработанной программы в программный комплекс
добавлены две
динамические системы: маятник с нелинейным возмущением и система
Хенона-Хейлеса. В настоящей главе кратко описываются указанные системы.
Проводится тестирование программы на этих системах. Сравнивается работа
различных методов интегрирования. Демонстрируется работа разработанного
программного продукта.
3.1. Маятник с нелинейным возмущением
В первую очередь была встроена система, которую можно записать в
следующем виде:
2
n
x x x .
Очевидно, что гамильтониан для данной системы будет выглядеть
следующим образом (через p x обозначим x ):
H
px 2 2 x 2 ax n1
.
2
2
n 1
Запишем уравнения Гамильтона вида (1.4):
x px
.
p x 2 x ax n
Маятник с нелинейным возмущением является системой с одной
степенью свободы. Система была выбрана для демонстрации работы
программы, так как является относительно простой, однако, ввиду своей
нелинейности, имеет нетривиальное поведение.
24
3.2. Система Хенона-Хейлеса
Майкл Хенон и Карл Хейлес изучали нелинейное движение звезд
вокруг центра Галактики, где движение ограничено на плоскости. После
своих исследований в 1964 году они опубликовали статью [11], в которой
были описаны так называемые хаотические траектории гамильтоновой
системы, возникающие при увеличении числа точек.
Гамильтониан системы Хенона-Хейлеса представим в виде [12]:
H
1
2
2
( px2 p 2y )
2
( x 2 y 2 ) ax 2y
b
3
y3 ,
где ( x,y ) − обобщенные координаты, ( px , py ) − обобщенные импульсы.
Тогда уравнения Гамильтона записываются следующим образом:
x px
p x 2 x 2axy
y p y
p y 2 y ax 2 by 2 .
Система Хенона-Хейлеса стала одной из самых популярных систем для
демонстрации того, как в системе появляется хаос. Данная система является
системой имеет две степени свободы. Фазовое пространство этой системы
является
четырехмерным,
поэтому
эта
она
хорошо
подходит
для
демонстрации реализации метода сечения Пуанкаре. Более того, так как
гамильтониан является разделяемым, а энергия H 0 остается постоянной,
значение p x можно выразить через функцию Гамильтона, используя
заданное значение H 0 . В связи с указанными выше причинами, а так же в
связи
с
простой
концептуальностью
системы
и
практической
распространенностью, для демонстрации работы программы была выбрана
система Хенона-Хейлеса.
25
3.3. Вычислительный эксперимент
Маятник
с
нелинейным возмущением.
Проведем численный
эксперимент на примере описанной в предыдущих параграфах системы с
маятником.
В
качестве
начальных
коэффициентов
возьмем
a 1, 2 1, n 3. Начальные значения x и px будут варьироваться на
промежутке [1,5;1,5]. На Рис. 3.1 можно увидеть полученные результаты.
Было посчитано 10000 точек.
Рис. 3.1: портрет, полученный а) методом Рунге-кутты; б) симплектическим методом
Рунге-Кутты; в) методом Штѐрмера-Верле.
При x 0 появляются три особые точки. Две из них появляются при
x 1 и x 1
и называются устойчивыми или эллиптическими точками,
другая (в месте соединения двух ветвей сепаратрисы при x=0) является
неустойчивой или гиперболической особой точкой.
Можно видеть, что фазовые портреты, представленные на Рис. 3.1,
полученные разными методами интегрирования, почти одинаковы. Однако
если взглянуть на график эволюции гамильтониана
(Рис. 3.2), можно
убедиться, что работа разных методов все-таки различается. На Рис. 3.2 а)
видно, что энергия хаотично возрастает и не остается в пределах
26
определенного диапазона. Это и объясняется тем, что интегрирование
происходило не симплектическим (а значит, не сохраняющим энергию)
методом. На Рис. 3.2 б), показывающем использование симплектического
метода Рунге-Кутты, видим, что изменение гамильтониана остается в
определенном
промежутке,
лишь немного
возрастая с увеличением
количества точек. Это связано с более высокой погрешностью метода,
вследствие того, что он является неявным, и при его использовании
коэффициенты рассчитываются приближенно методом Ньютона, а не
аналитически. Рассмотрим же метод Штѐрмера-Верле. На Рис. 3.2 в) видно,
что гамильтониан изменяется в малых промежутках с определенным
периодом и никогда не выходит за пределы определенного диапазона. Это
происходит благодаря тому, что метод является симплектичным.
Рис. 3.2. График эволюции гамильтониана при использовании: а) метода Рунге-Кутты; б)
симплектического метода Рунге-Кутты; в) метода Штѐрмера-Верле.
Система Хенона-Хейлеса.
Проведем численный эксперимент с
описанной в предыдущих параграфах системой Хенона-Хейлеса. Поведение
этой системы является более интересным, чем предыдущей.
Коэффициенты будем полагать равными:
2
1, a 1,b 1. Толщину
сечения Пуанкаре возьмем равной 0,0005.
Проанализируем систему, постепенно увеличивая значение энергии.
Здесь приводятся результаты, полученные методом Штѐрмера-Верле. Рис. 3.3
27
а) построен для небольшого значения энергии H
1
. Фазовый портрет
24
выглядит, как несколько замкнутых кривых. При увеличении энергии H
(рис. 3.3 б)) и H
1
10
1
(рис.3.3 в)) видно, что в некоторых областях точки
8
располагаются случайным или хаотичным образом, что и означает появление
хаоса. Однако при этих значениях энергии все-таки можно видеть островки
устойчивости и эллиптические точки. При энергии же равной H
1
(рис. 3.3
6
г)) областей устойчивости практически не видно и наблюдается сплошной
хаос.
Рис. 3.3. Фазовый портрет для системы Хенона-Хейлеса при энергии: а) H
H
1
; б)
24
1
1
1
; в) H ; г) H .
10
8
6
Теперь же проанализируем поведение системы и ее гамильтониана при
использовании различных методов интегрирования. Начальные значения:
28
H
1
, x0 0, y0 0,1, p y 0 0. На Рис. 3.4 представлен фазовый портрет,
24
полученный методом Рунге-Кутты. Точки разбросаны в пределах некоторой
области и не образуют единую кривую. Энергия же системы резко падает с
течением
времени,
что
объясняется
тем,
что
метод
не
является
симплектическим.
Рис. 3.4. Портрет и график эволюции гамильтониана, полученные методом Рунге-Кутты.
Рассмотрим теперь результаты, полученные симплектическим методом
Рунге-Кутты (рис. 3.5). На фазовом портрете видим замкнутую кривую.
Гамильтониан возрастает, но постепенно и медленно по сравнению с
предыдущим методом. Как и в случае с маятником, это объясняется
погрешностью при приближенном вычислении коэффициентов в методе.
Рис. 3.5. Фазовый портрет и график эволюции гамильтониана, полученные
симплектическим методом Рунге-Кутты.
Графики, построенные методом Штѐрмера-Верле, можно увидеть на
Рис.
3.6.
Точки
предшествующем
образуют
методе.
еще
более
Гамильтониан
чѐткую
кривую,
находится
в
промежутке и не выходит за его пределы с течением времени.
29
чем
при
определенном
Таким образом, выбор метода интегрирования является важным шагом
при моделировании системы. Часто симплектические методы показывают
более точные результаты. Однако, при сравнении рис. 3.4, 3.5 и 3.6, можно
видеть, что для расчетов методом Рунге-Кутты понадобилось меньшее
количество точек. Можно сделать вывод, что иногда целесообразнее
использовать не симплектический метод, например, когда энергия небольшая
и компьютерные ресурсы ограничены.
Рис. 3.6. Портрет и график гамильтониана, полученные методом Штѐрмера-Верле.
Приведем
последний
интересный
пример
поведения
гамильтониана при использовании различных методов. Начальные значения:
H
1
6
, x0 0, y0 0, p y 0 0.
Видим,
что
при
использовании
не
симплектического метода Рунге-Кутты (рис. 3.7 а) энергия меняется
случайным образом и ведет себя непредсказуемо. При симплектических же
методах (рис. 3.7 б) и в)) энергия сохраняется в определенном диапазоне,
близком к исходной энергии.
Рис. 3.7. График эволюции гамильтониана системы Хенона-Хейлеса.
30
Выводы
Для достижения поставленной цели был решен ряд задач. Была
исследована проблема сохранения энергии гамильтоновых систем. Были
описаны симплектические методы интегрирования гамильтоновых систем и
показано, что они удовлетворяют свойству симплектичности.
В рамках данной работы было разработано программное обеспечение,
позволяющее:
строить фазовые портреты гамильтоновых систем;
масштабировать и сохранять полученные изображения;
изменять коэффициенты исследуемой системы и параметры метода
интегрирования;
получать информацию о работе программе: времени вычислений и
количестве вычисленных точек;
добавлять и удалять пользовательские системы с разным количеством
степеней свободы.
В программе были реализованы:
классический метод Рунге-Кутты 4-го порядка;
одноэтапный симплектический метод Рунге-Кутты;
метод Штѐрмера-Верле.
Таким образом, был разработан программный продукт, позволяющий
проводить разносторонний анализ гамильтоновых систем.
Созданное программное обеспечение было протестировано на двух
примерах: нелинейном маятнике с возмущением и системе Хенона-Хейлеса.
С помощью программы были подтверждены теоретические утверждения о
свойствах симплектических интеграторов. Было показано поведение системы
Хенона-Хейлеса, а именно появление хаоса.
Из вышесказанного следует, что была достигнута сформулированная
цель и выполнены поставленные задачи.
31
Заключение
В данной работе была рассмотрена проблема сохранения энергии при
численном моделировании динамических систем. Так как ими можно
описать
большую
часть
физических
процессов,
компьютерное
моделирование таких систем − актуальная задача во многих областях науки.
В рамках данной работы, в силу своей распространенности, были
рассмотрены гамильтоновы системы, которые описываются системой ОДУ
первого порядка. Для компьютерного моделирования необходимо произвести
численное
интегрирование
соответствующей
литературы
этих
уравнений.
были
выбраны
После
и
изучения
реализованы
симплектические интеграторы: симплектический метод Рунге-Кутты (метод
Гаусса-Лежандра) и метод Штѐрмера-Верле.
Было
разработано
программное
обеспечение,
предоставляющее
исследователю инструментарий для разностороннего изучения динамических
систем. Программный продукт имеет хорошо оформленный графический
интерфейс и удовлетворяет заявленным требованиям. Приложение позволяет
строить фазовые портреты систем, варьировать параметры, сравнивать
результаты. Имеется возможность добавления пользовательских систем и
удаления уже добавленных, а также сохранения полученных фазовых
портретов в виде файлов изображений.
Перспективы развития программной части:
добавление в программу новых методов интегрирования для более
разнообразного анализа динамических систем;
распараллеливание вычислений для решения более масштабных и
сложных задач;
внедрение
разработанного
продукта
в
обучающие
программы
университета в виде облачного сервиса, например, при помощи
Microsoft Azure.
32
С помощью созданной программы была решена задача Хенона-Хейлеса,
изучено ее поведение. Также был смоделирован маятник с нелинейным
возмущением.
Приложение
использовалось
для
анализа
эфолюции
гамильтониана при использовании методов, сохраняющих энергию и нет.
Было произведено практическое подтверждение теоретических утверждений,
рассмотренных в работе, а именно экспериментально показано, что методы
Гаусса-Лежандра и Штѐрмера-Верле сохраняют первый интеграл близким к
исходному. При использовании симплектических методов гамильтониан
менялся в пределах определенного диапазона.
Из вышесказанного следует, что была достигнута сформулированная
цель и выполнены поставленные задачи.
33
Список литературы
1. Анищенко В. С., Владивасова Т.Е.. Лекции по нелинейной динамике.
Саратов: Изд-во Сарат. ун-та, 2010. 322 с.
2. Гантмахер Ф.Р. Лекции по аналитической механике Изд. 2-е, испр. М.:
Наука, 1966. 300 с.
3. Ландау Л. Д., Лифшиц Е. М. Теоретическая физика. Том 1. Механика. Изд.
4-е, стереотип. М.: ФИЗМАТЛИТ, 2004. 224 с.
4. Маркеев А.П. Теоретическая механика. Изд. 2-е, доп. М.: ЧеРо, 1999. 572
с.
5. Рихтер Дж. CLR via C#. Программирование на платформе Microsoft .NET
Framework 4.5 на языке C#. Изд. 4-е. СПб.: Питер, 2013. 896 с.
6. Сурис Ю.Б. Гамильтоновы методы типа Рунге-Кутты и их вариационная
трактовка // Математическое моделирование, 1990. Т. 2, № 4. С. 78–87.
7. Butcher J. C. The effective order of Runge — Kutta methods // Conference on
the Numerical Solution of Differential Equations, Lecture Notes in
Mathematics, 1969. Vol. 109. P. 133–139.
8. Calvo M. P., Sanz-Serna J. M. Numerical Hamiltonian Problems. London,
Chapman and Hall, 1994. 207 p.
9. Feng K., Qin M.Z. The symplectic Methods for computation of Hamiltonian
systems // Lecture Notes in Math, 1987. Vol. 1297. P. 1–37.
10. Hairer E. Geometric numerical integration. Berlin, Springer Series, 2006. 644 p.
11. Henon M., Heiles C. The Applicability of the Third Integral of Motion: Some
Numerical Experiments // Princeton University Observatory, Astronomical
Journal, 1964. vol. 69, P. 73 – 79.
12. Henon M., Heiles C. Numerical exploration of Hamiltonian Systems // Iooss,
G., Chaotic Behaviour of Deterministic Systems, Elsevier Science Ltd, 1983. P.
53–170.
13. Markiewicz D. W. Survey on Symplectic Integrators // Tech. rep., University
of California at Berkley, 1999. P. 1–13.
34
14. Yoshida H. Symplectic Integrators for Hamiltonian Systems: Basic Theory //
IAU Symposia, 1992. Vol. 152. P. 407–411.
15. Рейтинг TIOBE. http://www.tiobe.com/tiobe_index
16. Справочник по C# https://msdn.microsoft.com/ru-ru/library/618ayhy6.aspx
17. ZedGraph Library. https://sourceforge.net/projects/zedgraph/
35
Отзывы:
Авторизуйтесь, чтобы оставить отзыв