Говорухин В., Цибулин Б. Компьютер в математическом исследовании (1185927), страница 20
Текст из файла (страница 20)
Структура 0ЕБо1 Даже в том случае, когда отсутствует явное представление решения, можно работать с решением дифференциального уравнения или системы. Для этого вводится специальный объект ОЕ5о1: ОЕ5О! (ООЕ.ЧАй.1Н1) Обыкновенные дифференциальные уравнения 109 По данной команде для уравнения или системы 00Е относительно неизвестной функции или функций Чдй с начальными данными 1И1 создается специальная структура. Это своеобразное развитие функции йоос01 применительно к дифференциальным уравнениям. Объект РЕ5о1 можно интегрировать, дифференцировать, Паходить для него разложения и, конечно, получать численное решение. Например, используя РЕ5о1, можно проверить, является ли некоторое выражение интегралом данного уравнения. Определим объект РЕ5о) в качестве решения уравнения физического маятника; > ао1:=025о1(оц 13(у(х).х.х)>а*3!п(у(х)).у(х)): 1' д2 хо1:=Оебо! ( — у(х) +а йп(у(х))1, (у(х) ) ~ дх' Запишем выражение предполагаемого интеграла и проверим, равна ли нулю про- изводная интеграла в силу системы: > !пте0;=0!11(301,х) 212-а"соь(ао1): 0!1((!пгед.х); 0 Следующим примером покажем, как использовать объект РЕ5о1 для получения приближенного решения разложением в ряд (команда зег!ез) и построения численного решения.
Зададим уравнение Дуффинга и начальные условия: > де -П!Л(у(х).х.х)4у(х)>у(х)"3=сов(х); > !с -(у(0)-0.0(у)(0)-1): ( д2 4(е:= — у(х) +у(х)+у(х)'=соя(х) ' ~ дх2 2с:= ( у(0) = О, 0(у)(0) = 1 ) Определим сам объект РЕ5о1: > сеа;-РЕ501(де.у(х).!с); Иех:=()ЕБо1 ( — у(х) +у(х)+у(х) -соа(х)1, (у(х)), (у(0)=0,0(у)(0) = 11 (д' 3 дх' При попытке аналитического решения задачи Коши для данного уравнения область вывода останется пустой: > пао1че((се) оп!оп !с, у(х)).
Применим команду зег(ез для вычисления решения в виде ряда по степеням х, а полученное выражение преобразуем в полипом при помощи команды сопчегг: > Ро!у.-сопчегг(аег(еа(веа.х-0),ро1упоп); 1 1 3 1 4 1 Ро(у. ч ! 2 33 ч4 хх 2 б 12 24 Затем сгенерируем процедуру численного решения: > ч:-оао)че((се) оп!оп !с, у(х) дуре-пыаепс): 1':= р323с(п(у4ф.х) ... епд рпас 1а0 Глава ж Решение уравнений в Мар(е Теперь по команде опер10С из графического пакета р(отв построим график численного решения, при помощи универсальной команды 01 ог — график полинома, и полученные рисунки объединим командой 01 001ау: > ру:-р)огв(спер101](у,(х.у(х)],0..2,со1ог-ь)асх): > РР:-р1Ш (Ро1у.х-0 .2 101схпевв-2.со1ог-ь)асв): > р1огв(01вр1ау]((ру.рР],ахев-Секем); пв ОБ 04 02 к На графике более тонкая кривая отвечает численному решению исходной задачи.
Пакет ОЕ100Ь Для квалифицированной работы с обыкновенными дифференциальными уравнениями, будь то определение типа ОДУ, преобразование ОДУ к иному виду, использование аппарата теории симметрий Ли, численное решение задачи Коши или построение фазовых портретов и векторных полей, предназначен пакет ОЕтоо(в. Для использования команд из пакета ОЕЕооЬ можно подключить весь пакет командой н!Ш(0Егво15) или загрузить нужную команду СО)( прн помощи обращения юш(0ЕШо1в,СОН) Кроме того, можно использовать полную форму обращения, указывая в квадратных скобках имя команды после имени пакета: ОЕгоо1в[СОН](,.) В настоящее время пакет состоит из нескольких групп команд, Подпакет Ро(псаге недавно включен в Мар!е.
В его состав входят команда получения гамильтоновой системы уравнений по заданному гамильтониану Ецвв)1000 ецз), команда подготовки начальных точек для интегрирования делегате 1с, главная команда ро1 пса ге для получения двумерных или трехмерных сечений Пуанкаре и команда гоош, позволяющая увеличивать или уменьшать масштаб изображения без перерасчета траекторий. Для преобразования дифференциальных уравнений имеется следующая группа команд: аиеопопоиз, сопуегсй)д, сопуегсзуз, Оепогша1, 1п((1с101е(), геписеОг()ег, гедн1агвр, Обыкновенныедифференциальные уравнения 111 Сгапп1аСе, ипСгапв1аСе, чагра гав). Так, команда сопчегСА1 д пытается понизить порядок рассматриваемого уравнения, а команда геди1 агар вычисляет равновесия (сингулярные точки) для линейных уравнений. Команда сапчегСд) д применяется для получения коэффициентов дифференциального уравнения, а команда ОЕпаппа1 — для нормализации его коэффициентов, причем может применяться как к уравнению, так и к списку коэффициентов.
Поясним действие этих команд простым примером: > Пе:-О(у)(х)!х~о)!ГГ(у(х),х,х)+х: ОЕ:-сопчег(А10(се.у(х)): о(е:= +~ — у(х) +х Р(у)(х) ( д~ [ дх~ РЕ:= [ [ О, —, 1], -х] > ОЕпоппа1(пе.х.у(х)); (- ]~- — у(х) + — у(х) х=-х дх ! ~ дхо > ОЕпогиа1(ОЕ,х); [[О, 1, х), -х~) Для преобразования уравнения высокого порядка к системе уравнений первого порядка служит команда, работу которой демонстрирует следующий пример: > сопчегсвув([пе) .
[у(0)-а) . [у(х) ), х,у. и у): Ответ дается в виде списка, состоящего, в свою очередь, из списка уравнений, где в левой части уравнений использовано обозначение производных (в примере ([ у), списка замен, начальной точки и списка начальных значений, Команды, используемые для преобразования дифференциальных уравнений, могут применяться к уравнениям в частных производных, и наоборот. Например, команда ()свппде из пакета РОЕСоо[п позволяет проводить замену переменных в дифференциальных уравнениях. В предыдущих версиях для этого в пакете 0ЕСоо[в имелась команда Рспапдечп г.
Большая группа команд предназначена для классификации ОДУ, а также для преобразования ОДУ с использованием интегрирующих множителей и групп симметрий Ли (см. справку? ОЕС001з, Е! е). Не вдаваясь в пояснения, ограничимся перечнем имен: Хсвапде, Хсопп)пСаСог, Хдаиде, Ьэ!1([во1, Ьэ! 1()в)пп, сапоп), сопчегС 00Ев, ецц!пч, еСа Х, г!г!ОС, г! гСевС, депвув, !п(цеп, !пСтасСог, !пчаг!апСз, 1 !пе )пС, пвсвапце, паСевС, попва162, а([еа()ч!вог,одер([е,ге([(х)е,геоисе огсег,гепоче РооСОй во1че дгоцр,пупцеп,вувСевС,Сгапв!пч. Важную роль для обучения и поиска решений играет команда (х)еа()ч! вог, которая представляет информацию о типе рассматриваемого уравнения или системы.
Например, для уравнения второго порядка определяется его тип — это уравнение Бесселя: > опе:- х 2"(0992)(у)(х)+х"0(у)(х)-(х"2+1)'"у(х) 0: по оо(е:~хх(Р о )(у)(х)+хт)(у)(х)-(хе+1) у(х) =0 112 Глава 4. Решение уравнений в $(ар[в > ОЕСоо1в[обеабчсэег](обЕ); [[ Вехм), тасддеНП > бво)че(обе): у(х) = С1 Вовне)$([,х)+ С2 Вевве((Е(),х) Для работы с линейными дифференциальными уравнениями и построения формальных разложений имеются команды пакета 5[обе и специальная структура СОВ ЕвтгисС.
Можно также свести исходное дифференциальное уравнение к уравнению меньшего порядка, решения которого являются также решениями исходной задачи, и работать с дифференциальными операторами, для деталей см. справку ]б! Стор. Для преобразования уравнения к дифференциальному оператору используется команда бе2б! Гтор, а для обратного преобразования — б! Ггор2бе. Следующая группа команд обеспечивает построение решений в замкнутой форме: ОгасСогво! в, й)ешаппРво1в, аЬе)зо1, Ьегпон11$во], сйцп(эо1, с1а! гаотзо1, сопвтсоет(во1э, ео1егво1в, ехастзо1, ехрво1в, деппошово1, точас(сэо1в, 1$ево1, 1! пеагзо1,шатг(хОЕ, рагашеСгссво1, ро1уво1в, гатво1в, г)ссатсво1,верагао)ево1.
Разработчики Мар[е стремятся к тому, чтобы все уравнения из справочников по ОДУ были представлены в пакете. Из-за невоаможности даже короткого описания типов точно решаемых уравнений ограничимся беглым перечислением команд, указывая корневое слово, если имеется несколько видов уравнений (и команд) данного класса. Команды анализа уравнения первого порядка включают следующие типы: Абеля (АЬе1 ), однородные (Ьовоуепеоцв), Бернулли (Вегпоо11! ), Риккати (й(ссаС! ) и др.
(СЬ! о!, С1 а ! гаиС, бА1 ешпегС), а также линейные (1 ! пеа г) и точно решаемые уравнения (еха сС), вычисляемые в квадратурах (оиабгатоге), допускающие разделение переменных (зерагаЬ]е), с дробно-рациональной правой частью (гаС(опа1) и т. д. Приведем пример решения линейного дифференциального уравнения с переменными коэффициентами: > 1$п обе:"с$$[Г(у(х),х)свсп(х)>у(х)-всп(2*х): с' д Пл ос(е;=~ — у(х)~+ в)п(х) у(х) — в)п(2х) '= ~дх > ОЕСоо1в[обеас$чсвог](1,$п обе): во:-бво1чеЛ сп обе); [ длеаг] хо:=у(х)=2сов(х)+2+в С! Отметим, что анализу и решению поддаются уравнения с произвольными функциями в качестве коэффициентов: > )бе:-бстт(у(х),х)+Г(х)>у(х)-д(х); с' д Ые:= — у(х) ) + Е(х) у(х) — й(х) '[ дх > ОЕСоо)в[обеабювог](1бе); во:-с$во1чеыбе); [ Плеаг] с[соса $ с[-сс>$х $ хо;му(х)= й(х)е ссх+ С) е Обыкновенные дифференциальные уравнения 113 Для решения уравнений второго порядка имеются команды, ориентированные как на отдельные важные уравнения, так и на целые классы уравнений: Вез зе1, Онг[) пд, е11 1рзо1оа1, е111рг)с, Ешбеп, егт, 6едепЬаиег, На1ш, Неги( Ье, ЛасоЬ), Еадегзггсш, [аднегге, Е)епагб, [(оич) 11е, 1)пеаг зуш, Ра)п1ече, сыайгасиге, зуш Рх, Т)сспшагзп, уап бег Ро1.
Для решения уравнеяий второго и высших порядков применяются следующие команды: екает 11пеаг, ехасг поп1 (пеаг, 1)пеаг 00Ез, ш) зв) пд, циайгаьиге, гейне(Ь)е. Рассмотрим в качестве примера уравнение Ван дер Поля [МЭ): > ЧОР:-Ш ГГ(у(х),х,х)-па*( 1-у(х) 2)*й1т((у(х).х)+у(х): ОЕСоо1з[ойеайюзог)(НОР): апз -йзо)че(ЧОР нау-3); г д' д УйР:= — у(л) — и (1 — у(х)~) ~ — у(х)) + у(х) ' ~д' ~дл. [[ 2пй огйег, ппхз(пл х), Уап йег Ро!1 г д -'.=х*>- ж ~*[(' — < >) ( >-~ < >* х а ( а=у(х), Ы а)= — у(х)1, х= й ае С1,у(х)= а дх '~ =~ ь( а)— Графические команды пакета 0Е1ооЬ Команды визуализации численных решений задачи Коши для дифференциаль- ных уравнений и систем приведены в табл. 4.2. Таблица 4.2.
Команды визуализации пакета ОЕ(оо(т Имя Назначение ОЕр)от Двумерные графики решений дифференциального уравнения или системы уравнений Трехмерные графики решений дифференциального уравнения или системы уравнений Изображение двумерного поля направлений (векторного поля) фазовый портрет для системы уравнений первого порядка Оер)отзй йтве)йр)от риазерогтгатв Ответ представлен специальной структурой 00Е5о5(гас, которая появляется в том случае, если для рассматриваемого дифференциального уравнения был понижен порядок, но решение не было получено.