Говорухин В., Цибулин Б. Компьютер в математическом исследовании (1185927), страница 94
Текст из файла (страница 94)
Материалом для данного примера послужит тема сохранения интеграла энергии при численном интегрировании системы дифференциальных уравнений для консервативной механической задачи. Для простоты ограничимся системой второго порядка, р означает импульс, а ц — координату. Гамильтониан системы имеет вид О= — +— 2 42 2 2 2 Здесь )с — коэффициент (безразмерная частота).
Отвечающая гамильтониану сис- тема дифференциальных уравнений записывается следующим образом: р = — а~о Данная система автономных уравнений (время 1 не входит явно) может быть записана в векторном виде. Введем вектор неизвестных г=(ч. р), тогда вектор правой части имеет вид р()() = (р-)сч') а общий вид системы дается формулой г =Р(г) Для интегрирования этой задачи воспользуемся тремя простыми методами 173] и выпишем соответствуюшие формулы: О Явный метод Эйлера Г „= 1' + й Р( У ) (3 Неявный метод Эйлера +1 н ( ~+$) 498 Глава тв.
Дополнения н припевы О Метод средней точки у,,= у +Во Здесь индекс и используется для обозначения решения в Еп-й момент времени. Явный метод Эйлера дает расчетную формулу для вь!числения решения на каждом шаге, а два других метода являются неявными, и для их реализации в общем случае необходимо решать нелинейные системы уравнений. Для рассматриваемого квадратичного гамильтониана эти методы можно записать в виде явных расчетных формул. Наша цель — реализовать указанные методы для гамнльтоновой системы и изучить преобразования фазовых объемов, получаемые этими методами.
Результаты иллюстрируют следующий эффект: при использовании методов, не являющихся симплектическими, фазовый объем гамильтоновой системы не сохраняется [73). Подготовим ряд функций для графического оформления окна, расчета по формулам и вывода информации. В файле 5уп)р п)епи.!и находится основная функция, содержащая описание глобальных переменных и элементов оформления.
При запуске функции 5У!пр пепи вызывается окно, в котором создается поле для фазового портрета, кнопки бо и С[ее г, список с названиями методов и текстовая надпись «Гармонический осциллятор». Для работы с графическими объектами необходимы дескрипторы, получающиеся в результате запуска графических команд, см. главу 14 «Графика МАТ[.АВ». Все дескрипторы объявлены глобальными переменными, а их имена начинаются с буквы П. Дескрипторы Пйит) и ПВи[2 связаны с кнопками, дескрипторы ПСПесх, П[15 и птехт используются соответственно для нанесения (удаления) сетки на графике, реализации выбора элемента из списка и вывода надписи.
Дескриптор пеб1[ используется для ввода числа в редактируемое текстовое поле, Переменная 65сер (число шагов) также является глобальной, и ее начальное значение задается перед вызовом функции 5уа)р пепи. Для размещения графических элементов в окне используем переменные хх и уу, задающие размер поля вывода, бх и бу, определяющие величину смещения по горизонтали и вертикали соответственно: типот!оп 5уор веги х пепи 91оЬа1 И51ер ПР19 ПАхев ПЕШС П[1в ПВит) ПВи[2 Птехт ПСПесК хх 300; уу )50: бх 20; бу 20; ПР19 119иге; веМПР19,'Ров!С!оп',[уу Уу хх+)2"бх Уу+5 бу]) Ппхев-!"Рагепт",ПЕ19,'Со)ог',[) 1 )].
. . "Оп!Се",'ро)птв','Ров!С!оп',[бх бу хх уу]) ПВищ-и)сопгго)!ПР19, 5СУ)е'.'риаПЬ!Птоп'. ... "5тг1пд",'Во'. "Ров!С!оп".[хх+)«бх 2"бу бх ау].... "Са))Ьасх",'5увр 6о'): ПВЬС2-и1соптго1!ПР1д.'5СУ1е'.'Ривпоиттоп'. ... "5тг1пд",'С1еаг', "Ров!С)оп".[хх+9«бх 2"бу 2«бх бу]... "Са1)Ьасх",'5уе!р С)еаг'); Разработка приложения с 601 ав99 и(песк-цтсопсго1(пйтд.'5су1е'.'спескэох', ... "5Сгтпд",'6г1б'. Ротнттоп'.(хх+Вябх 4"бу Вябх бу],... "Ногтгопта1А11дгияепС",'1е(С'); ПС(зт-ц1сопсго1(ПР(д.'5Су1е'.'1)зСЬох', "5Сг)пд",("Ехр11с)С Ец1ег".'Н)бро1ПС гц1е',... ' 1яр1~с~С Ец1ег"],'Тоо111р5Сгтпд','Нетпоб "Васидгоцпб",'нптте', "Ног1зопса1А1)дпаепт".'1етС'. "Роз~С1оп",(их+7*ох Вябу 5*бх 7/2*бу]); Птехт-изсоптго1(пгтд.'5Су1е','Сект', "5Сгтпд".'5Серз:',...
"Васядгоцпбсо1ог",(.75 .75 .75], "Ног1гопта141~дпаепт".')е(С'. "Роз1(зоп".(их+7+пи 5.8чбу 4,4*бх 1,2ибу]):... ПЕЙС=и~соп(го1ЕПЕтд.'5Су1е'.'егДС'.'5Сг)пд'.51гЕШС, "Васкдгоцпб".'нпз(е', "Ног1гопта141здпиепС",'1етв , "Тоо1Сзр5Сгзпд".'Раззт(че 1пседег'. "Роз~(топ",(хи+9*ох бчбу 2*бх бу]): Напомним назначение использованных в графических командах параметров: Розт- С1оп определяет местоположение и размер графического объекта, 5Су1 е — тип управ- ляюшего элемента, 5Сгтпд — текстовую надпись, СВ11Ьасй — имя вызываемой фун- кции, ВасПдгоцпбса1ог — цвет фона, НагттапСа1А1)дппепС вЂ” стиль выравнивания по горизонтали, Тоо1С1р5Сг1пд — текст всплывающей подсказки.
Имена параметров можно сокращать до тех пор, пока это позволяет однозначно их идентифициро- вать, для получения списка параметров достаточно выполнить команду деС(Н), где Н вЂ” дескриптор нужной команды. При каждом нажатии кнопки С(еаг вызывается функция очистки рисунка. Соот- ветствуюший файл 5уптр С!еапгл содержит строку описания глобальных перемен- ных п обращение к команде с1сс тцпсС1оп 5уир 61еаг Ж С1еаг - очистин рисунок 81оЬа1 М5Сер ПР)д ПАхез ПЕРНС П(1з ПВцС1 ПВц12 ПТехС ПСПесх ахея(ПАхез) с14 Прн нажатии кнопки 6о вызывается функция 5у(пр 6о, проводящая вычисления и рисование динамики изменения площади начальных данных на фазовой плоскости. Файл 5уптр 6о.гп содержит описание глобальных переменных, команды подготовки данных и комментарии, которые помогают понять назначение выполняемых операций.
Вычисления по формулам Эйлера с постоянным шагом реализованы без вызова функций и обращения к функции вычисления правой части системы дифференциальных уравнений: тцпсстол 5уэр 6о $ 6о - Гарнонйческий осциллятор и нетоды Эйлера.
Х Денонстрация нзненения фазового обьена. д1оЬа) М5Сер ПЕ18 Пдхез ПШ в ПВцС1 ПВцС2 ПТехС ПСПесх $ Импульсы и координаты р--2;.2;2; ц--1:. 1: 1: Е-(ядгС(5)+1)/2: Д Массив значений гаиильтониана Еяр.дд]-аезпдг1б(р.ц); Н (рр."2/2+К"2чдд."2)/2; В:вон чч 500 Глава 18. Дополнения и примеры По1б оп, ах(в([р( 1) р(епб) д( 1) О(епб)3 ) Д Начальная окрушность ЬЕ--рт:р1/12:рт: ХО-1+. 12ьобя((Е); уО-. 12*ятл((Е): П рт/8/К; $ Число шагов М51ер-ввг2пшя(дев(ПЕбт[,'51гтпд')); $ Линии уровня соп(оыг(р.д.Н.В,'с'); $ Сетка тт де(ГПСПеся. Ча1ие'), дгтб оп, е1ве дгтб от(, епб $ Выбор нетода тгк$ех-дет(п[тв,'Уа1ые'); се11Аг-де((П[тв.'5тгтпд'); ше(П-се1)Аг(тлях); вы(топ сьаг(ше[П) саве "Ехр1(стс Еы1ег" Ж Явный иетод Эйлера х-хб; у-уб; Гог 1-1:М5(ер (111(х,у.'у') х1 х; у1-у; х х1-К"2ЯП"у1: у у1ьП+х1: епб саве "Нтбротпт гы1е" $ Метод средней точки П-р /В/Д; х-хО; у-уО; б-1/( 1+А"2*П 2/4); (ог 1-1:М5(ер т(11(х,у.'С') х1 х у1-у; х"((1-П"2ьх"2/4)*х1-К"2*П у1)*б; у-(( 1-П"2*к"2/4)"у1чп*х1)"б; епб саве "1шр1(сто ен1ег" д неявный иетод эйлера х-хб: у=уО; 4-1/(1+К"2ьп"2): Гог 0-1:М5вер Г(11(х.у,'г'); х1-х; у1"у; х (х1-К"2"Пяу1)ьб; у-(у1+П:"хИьб; епб епб й епб вы(топ Д Начальнав окрушнбсть (111(хО.у0.'Ь') Для запуска подготовленного примера подготовим файл 5уптр бел)о с описанием глобальных переменных, заданием числа шагов М51ер и обращением к функции 5ушр шепы: д1оьа1 м5сер петд пАхев пебтс пе(в НВыс1 пдиь2 птех( пспеск М51ер-16; 5ушр шепы Теперь наберем в командной строке н 5уш(т бшяо Результат запуска представлен на рис, 18.7.
Начальные данные для каждого расчета размещаются на окружности [темный круг на рис. 18.7). Явному методу Эйлера отвечает увеличение Фазового объема, неявному — уменьшение, и только сим- трехмерная визуаяизация фуниций и ввиторных,порей 59(д плектический метод средней точки сохраняет начальную площадь. Для явного метода Эйлера интеграл энергии возрастает, для неявного — убывает, а для метода «средней точкна — имеют место осцилляции интеграла. Рмс. Зэ.з.
демонстрации изменения фазовых объемов в зависимости от негода интегрирования Трехмерная визуализация функций и векторных полей Графические команды МАТ1АВ являются не только мощным инструментом визуализации математических результатов, но и эффективным аппаратом исследования. Здесь мы проиллюстрируем работу команд, предназначенных для визуализации функций и трехмерных векторных полей в трехмерном пространстве, в частности течений жидкости.
Явное представление на экране структуры течений и их характеристик часто позволяет понять свойства течений и помочь при решении многих задач. Кроме того, этот пример демонстрирует, как можно совмещать на одном рисунке различные графические объекты. В этом разделе использованы некоторые графические команды, которые не были описаны ранее в книге, Перечислим их. Поверхность постоянного значения ча1 функции трех переменных, заданную значениями Ч в узлах с координатами Х, Ч 2, можно построить командой тзазцгтасе(Х,Ч,Е,Ч,ча1), а для вывода линий уровня этой функции на поверхности, заданной узлами зх, зу, зт, используется команда соптос гз11се(Х, Ч,й, Ч, зх, зу,'зт).
Для визуализации трехмерных векторных полей и течений в МАТ|АВ имеются следующие команды: о сопер1 ог — предназначена для изображения векторного поля при помощи кону;, сов или стрелок; сз зггеагв1 тпе — выводит линии тока; (з зсгеаятгт ЬЬоп — иллюстрирует направление потока вместе с его вращением; гЭ зтгеаатцве — изображает поток в виде трубок, ширина которых зависит от зна- , ет(яаннл ДИВЕРГЕНЦИИ ВЕКТОРНОГО ПОЛЯ. й02 Глава 18, Дополнении и примеры Обязательными параметрами всех этих команд являются: Х, У, 2 — массивы координат узлов, в которых задано векторное поле, О, У, И вЂ” значения компонент векторного поля в этих узлах и эх, ву, 52 — координаты узлов для вывода конусов (стрелок) или начальных точек для построения линий тока.
Действие перечисленных команд мы будем демонстрировать на примере векторного поля с компонентами (о.,рх,о,), определяющего течение сжимаемой жидкости в трехмерном пространстве. Динамика жидкой частицы в этом поле исследовалась в работе [73], где было показано, что линии тока формируют очень сложную структуру течения. Один из частных случаев рассматриваемого поля имеет внд [73]: в1пшг) в!п(х) в!п(у) о =сап(г)»4 сов)у'( г) сов)у*( г) ( ) 4в!и)!(г) 'вьйу) 2 в!п(х) о„= в сов( г) е 4 з ) 4» 2 сов( х) а сов( у! сов)!'( г) Здесь х, у, 2 — координаты в трехмерном пространстве, а е — параметр.