Диссертация (1149675), страница 9
Текст из файла (страница 9)
. .54Общее решение уравнения запишется в виде ряда x(t) = x0 + ktx20 + k 2 t2 x30 + . . .,который, внутри своей области сходимости, соответствует разложению точногорешения уравнения (3.7)x(t) =x0.1 − ktx0Модель Лотки – ВольтерраКласс нелинейных уравнений типа «хищник – жертва», введенный Вольтерра, описывает динамику популяции двух видовẋ = −y − xy,ẏ = x + xy,который в линейном случае приводит к решению представляющему собой гармонический осциллятор.0.83.50.630.42.50.2201.5−0.21−0.40.5−0.6−0.6−0.4−0.200.20.40.60.8000.5а)11.522.533.54б)Рис.
3.1. Сравнение пошагового интегрирование с применением матричного отображения: a)модель Лотки – Вольтерра, б) движение в окрестности устойчивого фокуса.Пример использования библиотеки mode.py для решения данной задачи приведен в Приложении B. На рис. 3.1 a) представлен фазовый потрет движения,соответствующий начальной точке x0 = 0.5, y0 = 0.5, уже лежащей в областивлияния нелинейных эффектов (искажение эллипса).55Движение в окрестности устойчивого фокусаНесколько более сложный пример представляет собой системаẋ = x(4 − x − y), ẏ = y(x − 2),которая имеет три неподвижные точки {(x, y) : (0, 0), (4, 0), (2, 2)}. Наиболееинтересно поведение решения в окрестности точки (2, 2). Проводя линейныйанализ устойчивости, можно заключить, что эта точка является устойчивым фокусом, спиральные кривые решения в окрестности которой закручены противчасовой стрелки.
На рис. 3.1 б) изображены траектории движения, соответствующие различным начальным точкам.Осциллятор Ван-дер-ПоляОбщеизвестным примером системы, обладающей предельным циклом, является осциллятор Ван-дер-Поля ẍ = −λ(1 − x2 )ẋ + ω 2 x = 0, который можнозаписать виде системы уравнений первого порядкаẋ = y, ẏ = −λ(1 − x2 )y + ω 2 x.Линейный анализ устойчивости622показывает, что при λ < 4ω неподвижная точка (0; 0) является неустойчивым фокусом. Однако с ростом x и543212y нелинейный член λx y начинает рас-0−1ти, и можно предположить затуханиеколебаний обратно по направлению к−2−3−4−3−2−10123началу координат.
Так как в окрестности нуля точки движутся от начала ко-Рис. 3.2. Предельный циклординат к центру, а вдали — в обратном направлении, то из непрерывности решений следует существование предельного цикла, представляющего собой за-56мкнутую траекторию. Решения, начинающиеся как внутри нее, так и снаружи,притягиваются ею и никогда ее не пересекают.
На рис. 3.2 изображены результаты численного моделирования системы для значения λ = ω = 1 с различныминачальными условиями.Модель Хенона – ХейлесаХенон и Хейлес рассмотрели динамическую систему, описываемую гамильтанианом H = (p21 + p22 )/2 + (q12 + q22 )/2 + q12 q2 − q23 /3. Численное интегрированиесоответствующих ему уравнений движенияq̇1 = p1 , q̇2 = p2 ,ṗ1 = −q1 − 2q1 q2 ,ṗ2 = −q2 − q12 + q22позволяет найти пороговое значение энергии H ≈ 0.11 после которого движениестановится хаотичным.0.50.50.40.40.30.30.20.20.10.100−0.1−0.1−0.2−0.2−0.3−0.3−0.4−0.4−0.5−0.5−0.6−0.4−0.200.20.40.60.8а)−0.6−0.4−0.200.20.40.60.8б)Рис.
3.3. Динамический хаос в модели Хенона – Хейлеса: a) матричное интегрирование, б)пошаговое интегрирование.На рис. 3.3 изображено отображение Пуанкаре {(q2 , p1 , p2 ) | q1 = 0}, полученное при интегрирования начального вектора состояния q1 = 0.000, q2 =0.670, p1 = 0.093, p2 = 0.000 (H ≈ 0.1285).57Заключение к главе. Представлен вывод метода численного матричного интегрирования систем обыкновенных дифференциальных уравнений. Подробноописана реализация алгоритма на псевдо-коде, а так же на языке программирования Python.
Указаны особенности в построении вычислительных библиотекс использованием языков C#/C++. Верификация разработанного алгоритма осуществляется покрытием программного кода серией модульных тестов, а валидация на основе исследования модельных задач нелинейной динамики. Результыисследования данной главы отражены в работах [8, 11, 12, 109, 111] и полностью решают задачу 2. В публикациях [12, 109] автором выполнена часть исследования, посвященная математической постановке задачи и формализации численного подхода для ее решения. Работа [111] содержит сравнение результатовчисленного моделирования с использованием различных прикладных пакетов ипрограмм, разработанных, в том числе, в рамках подготовки диссертации.584 Построение среды компьютерного моделированияРазработанная в главе 2 математическая модель и предложенный численныйметод матричного интегрирования систем ОДУ, описанный в предыдущей главе,реализованы в виден интегрированной среды моделирования.
Программа удовлетворяет требованиям, приведенным в главе 1, и позволяет строить матричноеотображение для заданного порядка нелинейности.4.1 Общая архитектура среды моделированияРазработанная среда моделирования (MODE) представляет собой интегрированную среду разработки (IDE), включающую в себя (см.
рис. 4.1) системууправления проектом, текстовый и визуальный редакторы кода, а также библиотеки, реализующие бизнес-логику матричного интегрирования уравнений спинорбитальной динамики. Среда работает под управлением операционной системыWindiows и написана на платформе .NET 3.5.GUIподсветкасинтаксисаподсистемасимвольныхвычисленийавтодополнениевизуальныйредакторавтогенерациякодаIDEфайловаяорганизацияпроектаразложение нелинейныхфункций в ряды ТейлорабиблиотекаэлектромагнитныхэлементовРис. 4.1. Общая архитектура среды моделирования59Хотя применение платформы .NET практически исключает возможность запуска разработанной среды на операционных системах семейства Linux, предоставляемые ею возможности позволяют значительно сократить время разработки программных кодов и достичь приемлемой вычислительной производительности [59].
Обоснование выбора средств программирования приведено в работах [68, 104, 113]. Особо следует отметить ряд возможностей платформы .NET3.5, которые активно использовались при разработки среды моделирования. Вопервых, повсеместно в коде применяются атрибуты, позволяющие описыватьметаданные кода. Процесс программирования при этом из процедурного преобразуется в декларативный, что повышает масштабируемость приложения, увеличивая возможности повторного использования кода. Так, механизм автодополнения и всплывающих подсказок в разработанной среде моделирования использует атрибуты классов, созданные в процессе описания доступных элементов.
Придобавлении новых управляющих элементов и расширения возможностей средывся необходимая информация будет автоматически загружаться и передаваться всоответствующие вычислительные модули.Вторым важным свойством используемой платформы является возможностьприменения динамических типов данных. Начиная с версии .NET 3.5 язык программирования C# содержит тип dynamic. Использование динамического типаданных оправдывает себя при построении компилятора, преобразующего декларативный пользовательский код в программные структуры данных.
Конкретныйтип данных становится известным только на этапе выполнения программы. Применение типа dynamic позволяет опустить проверку типизации при вызове операторов и строить дерево разбора кода с минимальными вычислительными затратами.Последним важным свойством, используемым при реализации вычислительных алгоритмов, является внедрение неуправляемого кода. Режим компиляцииunsafe платформы .NET позволяет использовать указатели и оперировать массивами данных непосредственно в памяти. Все вычислительные модули, реализующие алгоритм матричного интегрирования, написаны с использованием ука-60зателей без применения дополнительных возможностей платформы .NET. Этоделает код совместимым с языком программирования C++ и позволяет при необходимости реализовать его в виде кроссплатформенной библиотеки.4.1.1 Вычислительные модулиК вычислительным модулям относятся библиотеки разложения нелинейныхфункций в ряды Тейлора, алгоритмы преобразования систем обыкновенных дифференциальных уравнений к нелинейному матричному виду, построение матричного отображения, а также подпрограммы вычисления бета-функций и дисперсий.
Общая схема вычислительного процесса приведена на рис. 4.2 и описанав параграфе 4.2.заданиеуправляющихполейпостроениеуравненийдвиженияразложениеуравений вматричный рядмоделированиеспин-орбитальнойдинамикиматричноеотображениенелинейноематричноеинтегрированиеРис. 4.2. Процесс численного моделированияРазложение функций в ряды Тейлора производится автоматически. Здесь следует отметить, что контроль области сходимости получаемых рядов лежит наразработчике. При этом подразумевается, что все функции раскладываются вряд в окрестности нуля.Построение матричного отображения состоит, в свою очередь, из двух этапов. Во первых, строится матричная форма дифференциальных уравнений спинорбитальной динамики на основе заданных электромагнитных полей. Во-вторых,производится пошаговое интегрирование матричного отображения вдоль искомого интервала времени (длины поля).Процесс непосредственного численного моделирования (с целью повышенияпроизводительности вычислений) предполагается производить с использованием сторонних средств.
Так, для моделирования динамики на основе построенных61матричных отображений может быть использован вычислительный код, cгенерированный для языков MATLAB или C++. Кроме того, все построенные матрицысохраняются в простом текстовом формате и могут быть использованы в дальнейшем на произвольной вычислительной системе без необходимости запускасамой среды MODE.4.1.2 Интерпретатор командДля описания ускорителя вразработанной среде используется C-подобный нетипизированныйязык программирования.














