Говорухин В., Цибулин Б. Компьютер в математическом исследовании (1185927), страница 52
Текст из файла (страница 52)
1781): изучаются мех1ппхэмы взаимодействий, динамика популяций,.влияние факторов среды и др. В качестве иллюстративного примера нами выбрана математическая модель взаимодействия двух популяций, которая была предложена и исследована в, работр (4Я, Исследованнеуравненийвчастныхпроизводныхметодомгалерйнна кне5 Исследуем модель взаимодействия двух популяций: способных направленно перемещаться хищников и не способных к этому жертв.
Рассматривается вытянутый лреал обитания популяций, который можно считать отрезком и без потери общности принять его длину равной единице. Предполагается, что ускорение направленного перемещения популяции хищников пропорционально градиенту плотности популяции жертвы. Локальные процессы размножения и гибели жертв описываются классической моделью Лотки-Вольтерра, а для хищников вклад этих процессов не рассматривается. Переменными модели являются следующие функции, зависящие от времени С и пространственной координаты х: с(С. х) — отклонение плотности популяции хищников от среднего значения С-сопзс, 5(с,х) — плотность популяции жертв, ч(т.х) — скорость перемещения хищников.
Теперь приведем уравнения модели н присвоим их переменным в Мар)е. Уравнения для скорости жертв и плотностей хищников и жертв при надлежащем масштабировании имеют вид 146]: х еп1:-б)тт(ч(с,х) л)-аарра*б1тт(5(с,х),х)+ бе)са))О"б1(т(ч(с.х),х52); ец1:= — ч(ьх) = х~ — Ыпх)~+ Ю вЂ” ч(ьх) > еп2:-б)тт(с(1. х), С)--С*б111(ч(5. х), х) -б1 тт(с(С, х)'ч(С, х) .
х)+ бе)та))1'б111(с(т.х).х52): > е)3:-б11((5 С(.х).С)-5(т,х)*(5-5(т,х)-с((.х))». бе11а))2'ч)1(т(5(т,х).х52); д ( дт АЗ:=-а(сх) а(т,х)(5-5(т,х)-с(ьх))+52~ — а(е,х) '=де ~д' > 5:"1-С: В этих уравнениях присутствуют следующие параметры: С вЂ” средняя плотность хищников, коэффициент к характеризует миграционную активность, Ы, Ь2, бЗ— диффузионные коэффициенты.
Ареал сообщества предполагается замкнутым, то есть потоки особей через границу местообитания отсутствуют, что описывается следующими граничными условиями: дс дв Ц = — (,= — ~,=о дх дл Решение системы (ец1, е()2. е()з),' будем разыскивать в виде отрезка ряда из я членов по линейно-независимым функциям, удовлетворяющим граничным условиям. Для ч(с,х) такими функциями являк)тся 51п(1 и х), а для с(с» х) и 5(с,х)- СО551 я х);где1 О, 1, ',„ Определим два набора ортонормированных базисных функций (н и че»1 > рн1:"1-чвсгс(2)е51п(1~Р1*х);, В: Е-а,/2 Мп(е'ях) > Р51»-1->1т 1 О СПЕП 1 Е)ва 5ОЕС(2)аСО5(1"Р1"Х) т1; 276 Глава 1О.
Примеры решения задач Чг за ргос (() орооп арегагаг, аггач«; Ы! = О Жеп 1 е1зе зяп(2)мсоз((мшгх, епп К епо' ргос Решения будем разыскивать в виде: » ч(г.х): 5оп(ч[!)(Г)*рш(!).(-1..И). л ч(г,х):=,~~ «(г),(2 Нп(хп() 1=! > с(;,х):=5ое(с[!)(С)*рз!(!).! 1..И): К с(г, х):=,~~ с(г) з(2 сов(х и () -1 > з(г,х);-зз(Г)гоп(з[!)(()*Рз((!),1-1. И); ( и з(г, х);= зО(г) +>,~~~ з(г)./2 сов(хп() Меняя и, можно изучить динамику для различных аппроксимации и определить необходимый для сходимостн результатов порядок приближения.
Мы представим вывод уравнений для (2 членов ряда, для чего зададим параметр И: > И:"12: Очевидно, что суммарное количество неизвестных коэффициентов ч! ( [), с! (1), з! (: ) будет следующим: > Ип»=З И+1: Для хранения дифференциальных уравнений введем массив > еепас;=аггау( 1..Ип): Вывод галеркинской системы Перед выводом галеркинской системы обсудим процедуру получения этой системы в Мар!е.
Проецирование на базисные функции, как уже отмечалось, сводится к интегрированию выражений, состояших из суммы произведений базисных функций с символьными коэффициентами. Интегрирование громоздких выражений может быстро исчерпать всю оперативную память, что повлечет использование виртуальной памяти и приведет практически к «завнсанию» компьютера. Рассмотрим пример интегрирования суммы произведений тригонометрических функций с символьными коэффициентами.
Переменной Гезт присвоим сумму 14 слагаемых и оценим оперативную память, необходимую для интегрирования этого выражения: > Гезм-зов(а[!)*гн п((*Р!*х)*сов(!"Р!*х)*з(п((!«1)*Р!*х)е 5!П(2*!>Р!*х),! 1..14): > МЬуге:-еча1т(хогне)оргз(Ьугеза))ос)/1024г1024): > !пс(Сез(.х-з.. Ы: ехрапо(Х): Исследование уравнений в частных производных иетодои Галеркина 277 128 288 512 800 1152 1568 32 пз !155 4 3689 « 8487 з 16269 ~е 27755 ~т 43665 + + + + + + 165 я и и п и и и > еча)т/Кегле)орта(Ьутеза))ос)/1024/1024)-ноуте; 2.062122345 Итак, для интегрирования суммы 14 слагаемых понадобилось около 2 Мбайт оперативной памяти. Если попытаться так вычислять сумму 30 подобных слагаемых, то зто приведет к «зависанию» компьютера с 32 Мбайт ОЗУ.
С этим можно бороться, интегрируя не все выражение, а каждое его слагаемое отдельно: > МЬуте:-еча)тцхегпе)орта(Ьутеза))ос)/1024/1024): пп:=пора/Сеет): гез;=0 тог ) тгап 1 со пп оо Сир:-'Сир'. Сир:-зпт<ор/) Лезт),х-о .1): гез:-гез»сир: ос: В результате применения этих команд оперативной памяти потребовалось почти в семь раз меньше, чем прн интегрировании сразу всего выражения: гча) Пхегпе)орта(оутеза))ос)/1024/1024)-ноуте; .3!2442780 Такие же проблемы с использованием оперативной памяти возникают и при выводе галеркинской системы большой размерности. Поэтому ниже непосредственное интегрирование громоздких выражений заменено интегрированием каждого слагаемого и их суммированием. Однако при большом М и это не позволит провести все необходимые выкладки за один сеанс работы с Мар!е в силу ограниченности оперативной памяти компьютера.
Поэтому предусмотрим проверку достаточности оперативной памяти и сохранение полученных уравнений в файле при ее нехватке. При повторном запуске программы зта информация будет считана и вывод уравнений продолжится. Опишем процедуру СЬесйнеа)огу, которая проверяет количество использованной за сеанс памяти (в мегабайтах), записывает массив с уравнениями еооат и счетчик полученных уравнений МЕО в файлы в случае превышения величины Мл)Ьу0е и осуществляет выход из сеанса Мар!е: > СпесКМегогу:-ргос() )оса) !Ьуте; )Ьуте:=еча) Пхегпе)орта(Ьутеза)1ос)/1024/1024): зт !Ьуте>ММЬуте тпеп заче ееоат,"с:ч)Сеир)чесп,тхт": заче ИЕО."с: 1'чтеяр))пео.охт"; ои)с: т1; епо; При первом обраШении к программе файл едп.Ьх1 должен отсутствовать, а файл пей.Ьхг должен содержать записви МЕО: 0: Следующие две команды считывают уравнения и значение счетчика нз соответствующих файлов.
Мы приводим результаты работы этих команд при первом обрашении к программе: 278 Глава 1о. примеры решения задач г геащ "с:1)гесрОецплхг"); Еггог. апаые Со геаа "с:)Семр)ецп.гхг" Сообщение об ошибке здесь не должно пугать, так как при первом обращении еще нет файла с уравнениями > геаа("с:1)оеар))пец.гхг"): ЛСЕЯ:= 0 Теперь перейдем непосредственно к выводу галеркинской системы обыкновенных дифференциальных уравнений. В первую очередь раскроем все суммы в уравнениях: > ец1:-«а)ае(ец1): ец2:-на)ие(ец2): ес)З:-«а)ае(е)З): Следующий цикл вычисляет уравнения для коэффициентов «,(1).
Для этого переменную ец1 проецируем последовательно на каждую функцию ф,. Напомним, что в нашем случае проекция определена следующим образом: 1 ~ец)р, с(х о При выводе уравнений интегрируем отдельно левую и правую части ец1: Гог 1 (гоа 1 Со М ао 11 1>МЕО Еьеп ециаг(~1:-~пм)Пз(ец1)*р)н (1),х-0 ..1) -1пг(глз(ец1)*рн)(1).х-0..1); МЕО:-МЕО+1; 11; рг1пт(ецааг(11); ощ В результате получим М уравнений относительно коэффициентов «, (1). Приведем только первое из них: — «,(с) =-п 60 «,(с)- пкз,(с) д После подстановки отрезков рядов во второе уравнение ец2 непосредственное проецирование его на базисные функции в силу громоздкости выражения приведет к трудностям, описанным выше. Поэтому преобразуем правую часть уравнения ец2 в сумму слагаемых, воспользовавшись командой са1 )ес1, и определим число слагаемых в левой и правой частях уравнения: >1; '1': > ееа2:-со))ест(гла(«а)ае(ец2)).(аец(с(1)(С),1-1..М), зец(«(11(С).1-1.,МН, 01аг«1ьоге)); 12:-пора(еец2).
11:-пора(ща(ец2)). 12:ю 168 11 ш12 Итак, в результате преобразований правая часть'состоит из 168 слагаемых, а левая — из 12. Теперь при выводе дифференциальных уравнений относительно коэффициентов с,(с) будем отдельно интегрировать произведение каждого слагаемого на базисную функцию.
С помощью процедуры СвесММевогу проверим количество использованной оперативной памяти после вывода каждого уравнения. В праце: луре Свесьншпогу используется глобальная переменная ммьусе, которая задает мана Исследование уравнениИ в частных производных Метадон Галериина 279 симальный допустимый объем использованной оперативной памяти. Присвоим ей значение 12 Мбайт: > МНЬуье:-12: > тог ! (гоп 1 са й оо !т (1+М)>МЕО Гйвп )ни;-')ни': гпи:-'гни'; )пи:-0: тог З Ггаи 1 со !) Оо 1Ьи:-!Ьи+ !пс(ар().)нь(ец2))*рь!(!),х-О..)) сх): гни:-0; (ог 3 тгоп 1 то 12 Оо гьи:-гни+ !пс(ор(З, еец2)*рю (! ), х-0 .. 1) о); ецио([!+М):-1Ьи-гои: МЕО:-ИЕО+); СпесКМепюгу(); (1: рг!пт()нь(ециат[(~й))): оп': В результате выполнения этих циклов будут получены следующие Х галеркин- ских уравнений. Для примера представим левую часть последнего уравнения: а Зс со(') Аналогичным образом проведем выкладки для уравнения ецЗ, предварительно разбив его на слагаемые.