Говорухин В., Цибулин Б. Компьютер в математическом исследовании (1185927), страница 53
Текст из файла (страница 53)
Отметим, что это уравнение оказывается еще более громоздким и при [ч-12 после подстановки приближенного решения его правая часть состоит из 247 слагаемых: > еецЗ:-со1)ест(гпь(ецЗ).[ьец(с[1](т),1-)..й). ьец(ь[!3(С),1-)..ИП .и!ьтг!Ьиьесц: !2:-парь(еецЗ); т):-парь()ьь(ецЗ)): )2:= 247 !):=!3 >тог! ЕгопО Сойеа п[ (!+2*и>1)>МЕО Ьйеп 1пи: ')пи'; гни:-'гпи'; )Ьи:"0: Гог З (гси 1 Со 1) с)о 1пи:-)пи+ !пт(ор(),1пь(ецЗ))+рь((1),х-0..)) аи: тли:-0; тог З !гоп 1 Со т2 Оа гни:-гни+ !пс(ар(З,еецЗ)'рь!(!),х-О.п)) а!): ециа[[1+2>И+)):-)ни гйш МЕО:-йЕО+1; Снесйнеиогуы: 11; рг1пт()йь(ециаь[!+2*И+13)); оо: — по(п)' д ас 2ВО Глава 10.
Примеры решения задач Мы привели только левую часть уравнения относительно коэффициента г«(Е). В результате получено еще )х)+1 обыкновенных дифференциальных уравнений относительно 0,(Е), 1=0,1,...,М. Сохраним все полученные уравнения и общее их число в файлах: >вече ецовц "с:()(еар(чецп гх("; звче меО."с:и оеар()пец.гхе": Итак, построена аппроксимация исходной задачи в частных производных в виде системы 3)х)+1 обыкновенных дифференциальных уравнений. В примере использовано значение )х)-12, и нам не пришлось запускать программу несколько раз для вывода всех уравнений (потребовалось чуть больше 8 Мбайт оперативной памяти), но при [ч)=20 это необходимо уже для компьютера с 64 Мбайт оперативной памяти. Численное решение системы обыкновенных дифференциальных уравнений с использованием ИАП.АВ Следующим этапом исследования рассматриваемой задачи является численное решение полученной системы обыкновенных дифференциальных уравнений (ОДУ).
Такое решение можно получить средствами Мар!е, но предпочтительнее, особенно для систем большого порядка, использовать программные средства численного анализа. Рассмотрим применение МАТ[.АВ для численного интегрирования получен- ной системы ОДУ. В Мар!е проведем замену переменных, приблизив их имена к синтаксису МАТ[АВ. Вместо переменных ч((Е), с1(0), вз(Е) введем перемен- ные у[М), для чего оформим множество (переменная робвв), задающее нужную подстановку; > робы .=(вец(ч[1)(Г)-у(1),1=)..М), зец(с[1)(Г)-у(1+М),1=!..М).в0(Е)=у(2*и+)).
вец(в[1)(()-у(1+2*и>1).з-!..М)): Для численного решения значения всех параметров звдачи должны быть опреде- лены. Выберем один набор величин и сформируем множество рагвоЬв для подста- новки значений параметров в уравнения: > рагзооз:-(бе)са()0-0,0000), бе)(а)1)-0.2,бе)га)(2-0.000 Лсарра-б.С-0.60); рагзиьз:= ( к = 6, С= .65, 60 = .0000),Ы = .2, б2 = .005 ) Для преобразованных уравнений опишем массив и присвоим его элементам пра- вые части дифференциальных уравнений, в которых произведены описанные под- становки: > ецоо(:-аггау()..МЕО): > Гог 1 Ггоа ) Ео МЕО бо ецоот[1): гнз(еча)Е(зоов(рвгвооз.зчоз(робя(.ецоаг[1))))): об: Для обращения к команде решения системы ОДУ пакета МАТ) АВ необходимо сформировать файл, задающий правые части системы (см.
главу 15 «Чис- Исследование уравнений в частных производных иетодон Галерхина 281 ленный анализ в МАТ[.АВ» второй части книги). Следующие команды создают процедуру на языке МАТ1.АВ (щ-файл) и записывают ее в файл рабочего каталога МАТ1.АВ: » преп("сд(иат)аЬЙ!1!)Мосх((свар!е,в",)(Й!ТЕ). нг((е)(пе("с: ((Мат)аЬЙ11((нога((тиар)елп", "[опсС!оп ( - гиар)е((.у)"); нг(те)!пе("с:\(Мат)аЬЙ11((нога((гаер)ел",''Г-[ ..."): (ог ! Ггоа 1 Со НЕО Оо пп:-пора(едока[[(1): 1:=1: пп:=О; ны )е ?<=по Оо он:-ни<ор(),едоп[[! 1). !т (Сгппс(3?3)»3)-) СПЕП ([ 1<По ГЬЕП ЗСГЕПСЙ!ь"» .." е)зе (т (-меО сьеп зсгепо:="1:" е)зе зсгепе:-"; ..." [! т!. нгзте)(пе("с.!)Мас)аЬЙ!1)(тога)(гвар)ел".
сас(сопчегс(ип.зсгзпд).зт.гепп)); оо:-0: т); 3:-3+1: о): (( по<>0 Епеп (Г (<>неО гьеп нг(се!(пе("с:(!мас)аьЙ11)(ноге)(гиар)е.и", са((соптегС(ии.зтгзпд),";...")) е)зе нг(Се)(пе("с ((Ма()аЬЙ)1\(нога\)гиар)е.п", сас(соптегс(пи.зсг(пд),"]:")) [(: (!. ое: с)азе("с:((Мат)аЬЙ11!(Мосе\(свар)е е"): В результате в файле ппар[е. (и будут содержаться команды МАТ1.АВ, реализую- щие вычисление правых частей полученной системы обыкновенных дифферен- циальных уравнений.
Приведем начало и конец созданной процедуры: топот)оп т - геар)е(с.у) [ [ -.9869604404е-4"у(1)-18.84955592'у(26):... -2."у(37)"у(25)-б.?56П51?1<у(37)-.?071067810"у(31)"2+... -.70?1067810 у(18)*у(31)-.7071067810"у(17)"у(32)- 1.»у(25)<у(24)<... -.7071067810<у( 13)"У(36)-1.414213562"у(30)»у(32)- .7071067810"у(22)»у(27)+... -1.414213562'у(26)"у(36)-.70?1067810"у(20)"у(29)- .7071067810»у(23)'"у(26)+... -.70П067810<у(15)"у(34)-1.414213562<у(28)"у(34)- .7071067810»у(19)"у(30)»... -.7071067810<у( 16)'У(33)-.7071067810 у( 14)"у(35)- 1.414213562<7(27)<у(35)+... -.7071067810<у(21)»у(28)-!.414213562"у(29) у(33)1! Перед вызовом команд МАТ[.АВ из Мар1е подключим необходимую библиотеку; > щтв(мас)ащ: Для решения задачи Коши и вычисления одного из возможных режимов суще- ствования популяции определим начальные значения неизвестных:- 232 Глава 10.
Примеры реаении задач, > у1п1С:-аггау(1..ИЕО); > Уог 1 Угов 1 Со ЙЕО Оо у1п1СП ]:-0.01; оо: > у1п|С[Н+П: 0.2: у!гас[2"Н>П: 0.5: у101С[2"Н>2].' 0.1; Теперь два раза обратимся к команде ове45 для решения системы обыкновенных дифференциальных уравнений методом Рунге-Кутты. Первый расчет проводится для установления режима, то есть полученные в его результате значения переменных являются начальными для второго расчета, По второму решению можно судить об установившемся режиме взаимодействия популяций: > 11:" 0: СУ: 40 0: > (т, Узо1) :- озе45(-Умар)е".
11..(У. у(п(С, "СЬ1"-.01): > Ы :" 0: (Г:- 40.0; > (Т. Ухо)) :- оде45("гпар1е". С1..СУ, у1п(С, "Со1"-.001): Следующая строка выводит количество точек численного решения: > пзо);гв)зе(чво1)[П; пзо! и> 13993 Для визуализации решения вычислим аналитически две величины — среднее по отрезку значение съеденных жертв и среднее их кодичество: > и-'1': чагр1ЬС1:-зиЬз(роозт,рагзиЬз. 1пс(ча)ие(С+с(С.х))*ча)ие(з(с,х)),х-0..1)): гагр!ог!:= у( 14) у(25 ) + у(20) у(31 ) + у( 19) у(30) + у( 13 ) у(24) + у( 17 ) у(28) + у(12) у(23) + у(16) у(27) + у(15) у(26) + .65 у(21) + у(18) у(29) + у(п) у(гг) > чагр)о(2.-зива(роазс.рагвиьз. 1пыча1ие(з(з,х)).х-0..1)); гагр!ог2:= у(25 ) Сформируем двумерный массив Ур1 оС, содержащий значения переменных ча гр1 оС] и чагр1 ОС2 в различные моменты времени. Отметим, что для каждого момента времени С формируется вспомогательная переменная ррр для подстановки чисел вместо соответствующих символьных переменных: > Ур1от.-аггау(!..пзо1.1.,2): > Уог 1 Угов 1 Со пзо) Оо ррр;-(вес(у(])-чзо1[1,5].5-1..НЕО)): Ур)ос[1, П:-зиЬз(ррр,чагр1ос1); Ур)ос[1,2]:-зиоз(ррр,чагр1оС2): од: Теперь с помощью команды Мар[е еча1 й обратимся к графической команде МАТЬАВ для вывода графика зависимости величин чагр1 оС] н чагр1оС2 от времени.
Для етого передадим данные в сеанс МАТЬАВ командой веСчаг: > весчаг("Ур1оС".Ур1ос); еча1М("р!ЬС(чр10С)")! еча1И("С(С1е "даиаиииа средних величии по вреиени" ); В результате в графическом окне МАТЬАВ появится следующий график— рнс. 10.12. Исследование уравнений в частныи производных иетодои Галеркина 283 'ч,'~~.;~.а семи ойз~~(г Рнс. 10Л2. Изиенение среднего количества хищников и жертв ао ареиенн Теперь закроем сеанс МАТ[.АВ: > Мат1ао[с1озе1тпх)(): Последний рисунок 10.13 подготовим средствами Мар[е. Для построения фазовой траектории в осях чагр1 011 и чагр) оСЕ воспользуемся командой р1 от с необходимыми опциями: > р1ос(сопчегт(тр)от.)!зт!тат).со!от-в)аса.ахез-ВОХЕ0, с!с!е-"хаотический ренин", стс!егопс-[0002!ей.Во[0, 131): )Еатзизаччзсзтзазз ремизы 039 038 0.37 0.35 Рис.
ЗО.ЗЗ. Хетническак фатеева кривее 284 Глава то. Примеры решения задач Результаты вычислений демонстрируют один из возможных типов поведения системы из хищников и жертв при сделанных в математической модели предположениях. В частности, оказалось, что даже в случае простого ареала высокая миграционная активность хищника может порождать хаотизацию динамики популяционного сообщества (см. Г46~). В этом примере показано, как можно эффективно использовать описываемые в книге программные продукты для решения достаточно сложных научных проблем. Понятно, что описанная схема может быть адаптирована для применения метода Галеркина к исследованию других систем дифференциальных уравнений в частных производных. Расчеты в среде МАТ.АВ Г3 Работа в МАТИВ Р Элементы языка МАТЮКАВ О Матричные вычисления П Графика МАТИВ П Численный анализ в МАТИВ ГЗ Программирование в МАТИВ П Расширения МАТЮКАВ О Дополнения и примеры Исторически МАТЮКАВ разрабатывался как диалоговая среда для матричных вычислений (МАТг!х 1.АВогагогу).
Со временем пакет был оснащен хорошей графической системой, дополнен средствами компьютерной алгебры от Мар1е и усилен библиотеками команд (или Тоо1Ьохез), предназначенными для эффективной работы со специальными классами задач. Теперь МАТ1.А — мощный инструмент для проведения исследований. Владея им, можно браться за сложные задачи, проводя вычисления качественно и достаточно быстро, используя мощный математический аппарат и удобную диалоговую среду МАТЮКАВ. Сегодня МАТЬАВ фактически является стандартным расчетным средством и инструментом для многочисленных инженерных и технических разработок. Этому способствует богатая библиотека команд и свой язык программирования, даюший пользователю возможности автоматизации вычислений, в частности через добавление новых команд (функций) — а-файлов и подключение своих программ на языке С.
В состав МАТ1.АВ входят интерпретатор команд, графическая оболочка, редактор- отладчик, профилер, библиотеки команд, компилятор, символьное ядро пакета Мар!е для проведения аналитических вычислений, математические библиотеки МАТ1.АВ на С/С++, ЖеЬ-сервер, генератор отчетов и богатый инструментарий (Тоо1Ьохез). По-прежнему поддерживая диалоговый режим для простых вычислений, МАТ1.АВ превратился в среду программирования маТематических и инженерных задач, включая разработку сложных программ с развитым графическим интерфейсом. Наше изложение ориентировано на пользователя, работающего в среде %!пбоюз для персональных компьютеров 1ВМ. Однако большая часть материала посвящена языку и командам, не привязанным к конкретной платформе. Коротко перечислим технические требования к компьютеру и программному обеспечению, необходимые для работы с МАТ1.АВ.
Для версии 5.3: о необходимы процессоры 486, Репг!цш и выше, графический адаптер, поддерживающий минимум 256 цветов; ~з нужны операционные системы М!сгозо(г Ж!пдошла 95, ЪПпс1оъз 98, %!пс1оюз ЫТ 4.0 или Ю!плоче 2000; о для работы нужно 16 Мбайт ОЗУ; сз размер дискового пространства зависит от платформы и операционной системы. При нехватке места на диске программа ТЬе Мата'ог1сз 1пзта!!ег проинформирует пользователя об этом; о для работы также нужны программа АсгоЪаг Кеадег для чтения документации в виде р41-файлов и Мейсаре Сошншшсагог или 1пгегпег Ехр!огег для просмотра гипертекстовой документации (НТМ1:файлов). Для МАТ(.АВ версии 6.0 требования повысились, в первую очередь зто касается процессора (как минимум Репг(шп) и ОЗУ (от 64 Мбайт), а для эффективной работы рекомендуется 128 Мбайт.