Говорухин В., Цибулин Б. Компьютер в математическом исследовании (1185927), страница 19
Текст из файла (страница 19)
Для проверки того, что найденное решение 50Е удовлетворяет уравнению'или системе 00Е, имеется функция 00етева: оде(езт (50Е.ООЕ) Например, для рассмотренного линейного дифференциального уравнения пятого порядка с постоянными коэффициентами получим: > опегез((хАе): 0 Если после подстановки решения в уравнение (систему уравнений) нуля не получилось, то можно попробовать преобразовать ответ, используя команды сошЬзне, ехрап([ и т. п. Для решения дифференциальных уравнений и задач с начальными данными могут быть применены интегральные преобразования, Для этого в команде з)во)че Обыкновенные дифференциальные уравнения 105 следует указать дополнительный параметр (пеФОО-ТРА))5, где в качестве ТВАМ5 взято одно из следующих слов, специфицирующих применяемое преобразование: 1ар1 асе, топе(ег, тонг! егсоз, тонг)егз! и, Для использования метода 1ар1 асе должен быть определен весь набор начальных условий.
Приведем простой пример; > Пе:-й(Г(у(С) Д.()-у(Г)-иеач(в(ее(1-1); Гд' де г> — у(() -у(() =Неач!в!(!П! — () ~ д(> > йп!че((ее,0(у)(0)-0).у(С),пегное=(ппг(егсоь): (-(( (-/( (-1( у(()=(! — е спвн(() — е е)п)((1))Неач!е!с3е(( — !) — 1+е соеыг) Отметим, что решение ОДУ или системы ОДУ может быть получено с учетом наложенных ограничений, которые задаются уравнениями или неравенствами.
Например, найдем такое решение нелинейного уравнения второго порядка, что оно обращается в нуль при х-0, и существует точка а, в которой производная от решения также равняется нулю: > пае.-у(х)*й ГГ(у(х) . х, х)+й (((у(х) . х)+1-0: (п(е х> у(х) — у(х) +~ — у(х))+ 1 = О ~дх > ь(пр!((у(ееп!че((оее.у(0)-0.0((Г(у(а),а)-0).у(х))); у(х) = -1+ е Для упрощения полученного решения сразу применили команду а!(пр11уу.
Приближенные решения ОДУ Для решения нелинейных задач, которые не поддаются аналитическим методам, могут быть использованы численные процедуры. При этом, однако, должны быть определены численные значения всех параметров. Когда решения в замкнутой форме нет, а численные подходы невозможны или нежелательны, то могут быть использованы приближенные методы. Для этого команда ово(че имеет параметр зег! ез для поиска решения в виде разложения в ряд и параметр 1ар! асе для применения метода преобразования Лапласа. Приведем примеры обращения к команде Оао! че с параметром зег)еа.
Вначале переопределим значение переменной Огбег, задающей порядок для вычисления разложений, а затем получим решение для нелинейного уравнения второго порядка: > Огеег:-4: ее:-(0992)(у)(х)-у(х)"2гв(п(х); > авп!че(ае,у(х)лешев): (' д' (!е:=~ — у(х) — у(х) =е)п(х) -~а у(х)=у(О)+Г)(у)(О)х+ — у(О) х>+(-У(О)Р(у)(О)е-~х +0(х ) 106 Глава 4. Решение уравнений в Ивр(е В ответе фигурируют неопределенные начальные значения для функции и первой производной. При помощи команды ьОЬз легко задать нужные значения: > шЬа(у(0)-0,0(у)(О)-),3): у(х) =х+-х + 0(х') б Рассмотрим еще один пример: > геа(агС;Огбег:=б: де >=0(у)(х)-а1п(Ь>у(х))-х; > вп1:-аап1че((ае,у(0)-0), у(х),аег1еа): Ые в> 0(у)(х) — Мп(Ь у(х)) =х гп! му(х) =-х + — Ьх + — Ь х + — Ь х +0(х ) 2 1 3 ) 2 4 ( 3 > 6 2 б 24 120 Выполним проверку. Для этого используем команду о((егезС н разложение в ряд, чтобы избавиться от синуса.
> Се:гвег(еа( нар(паетеаС,(ап1].бе) П ,х), ге: 0(х\ ) Для получения решений линейных дифференциальных уравнений в виде формальных степенных рядов в Мар!е создан пакет 5(оде, предназначенный для нахождения полиномиальных, дробно-рациональных, гнпергеометрических н других разложений. Численные решения ОДУ Для численного решения дифференциальных уравнений при помощи команды сво1 че нужно указать параметр пншег) с. Это можно сделать двумя способами: аап)че(ООЕ,ЧАН,Суре-ппвег)с.ОРТ) или Пап)че (ООЕ ЧАй.ппаег!С,ОРТ) Уравнения и начальные условия задаются в виде множества ООЕ, УАй есть неизвестная функция или множество (список) неизвестных функций, дополнительные параметры ОРТ определяют метод численного решения задачи Коши и ряд параметров метода. В качестве правой части конструкции шеСПоб-ИЕТ могут выступать: метод Рунге — Кутты-Фельберга порядка 4/5 (гхг45), метод Рунге-Кутты порядка 7/8 (Очегх)8), одношаговый (пеаг) и многошаговый (шпеаг) методы Гира н набор методов для решения систем жестких уравнений 1зобе.
Ряд классических методов можно определить при помощи конструкции шеСПО((- с1аьв1са1(ИЕТ], здесь в каче- стве ИЕТ можно указать различные варианты метода Эйлера (Гогеи1 ег, Пепптогв, 1лро1 у), несколько методов Рунге-Кутты (гх2, гхЗ, г((4), многошаговые методы (абашЬавП, абшоп1Соп). Дополнительно могут быть определены метод разложения в ряд Тейлора для вычисления решения (Сау1 огзег1 ев) и метод интегральных преобразований ()пССгапз).
Для ряда методов имеется своя система параметров, описание которых можно получить, обратившись к справке. По умолчанию для интегрирования используется метод Рунге-Куггы-Фельберга. Обыкновенные дифференциальные уравнения 107 По умолчанию в результате выполнения команды (]зо1че с параметром пцаег(с будет создана процедура, к которой можно обращаться для вычисления отдельных значений и для построения графика решения на заданном промежутке.
Приведем пример решения задачи Коши для нелинейной системы двух уравнений первого порядка, описываюшей колебания физического маятника с линейным трением: > Оез:-0(х)(г)-у(Г),0(у)(з)--а у(з)-.8*зги(х(Г)): > ас:-х(0)-0.у(0)-2: с(ес:= Р(х)(с) = у(с), Р(у)(с) =-.2 у(с) †.8 Мо(х(с)) Сл:= х(0) =О, у(0) = 2 > Г.-озо1че([аез д с],[х(Г),у(Г)).аоиегас): Г » ртоо(г(((45 х) ... еос) расо > а:-.2; еча)С(с(! 5).5); о:= .2 [с = 1 5, х(с) = 2 0540, у(с) = .65462] > р1огз[ооер1оз)(г,[[г.х(Г)],[[.у((И],0..25, 1аЬе1з-[[,"х у"],ахез-Ьохес); х,чоз В приведенном примере для построения графика решения использована команда ос)ер1 от из пакета р[о[з, Да[я визуализации численных решений задачи Коши удобнее использовать графические команды пакета ОЕ[оо[з, которые рассмотрены ниже и обеспечивают различные средства для отображения результатов интегрирования дифференциальных уравнений. При помощи параметра оотрнг-1 1зтргосеоыге сформируется список процедур — по процедуре на каждую переменную: > р:-озо!че([ФСС(х(С) д)-у(Г),ШГ((у(т) Д)--х(Г)"Зчх(Г), х(0)-о,у(0)-0.[].[х(г),у(г)].
гуре-ооиег(с,сотри[-11згргосецоге): р;= [с = (рпсо (с) ... еон рсоа ), х( с ) = (рсос (с) ... еон рсоа ), у(с)=(рсос(с) ... еонрнсо )] Далее к решению можно обращаться, указывая нужную переменную. Для того чтобы получить фазовый портрет решения, используется параметрическое задание графика для команды р1 ог: > Х.Ч: ЗОЬЗ(вчк(С)) Зиов(Р,У(З)): Р1ОЗИХ Л .0..16]): 108 Глава 4.
Решение уравнений в Ивр[е Чтобы при помощи команды ово)че получить решение в виде таблицы, можно использовать параметр уа1не=у с массивом точек Х, для которых будет вычислено решение: > еле.=[0(у)(С)-У(С)*( 1-у(С)),у(0)- 5). пгг:-пггпу([0..5,1.0,2.0,5.0]): Е:=ппо1уе(спе,у(С),суре=пипег!с,песпсс=реаг.уа1ие=агг), [ь у(гН 0 .5 .5 .6224593304 1.0 ,73!0585770 2.0 .8807970769 5.0 ,9933071488 Для каждого метода интегрирования имеется свой набор дополнительных параметров точности и др, Например, для метода Рунге-Кутты — Фельберга можно задать величину абсолютной погрешности пьпегг=чйс (по умолчанию чАе=е1оас(1,2- 0191С5)), минимум относительной погрешности ш1пге1 =ЧАЕ (по умолчанию пегг= Е1оаС(1, 1-0191С5) ) и относительную погрешность ге1 егг=ЧА[ (ЧА[=Е1опС(1, 2-01 91 Сэ ) ). Здесь первым параметром команды Е1оаС задается мантисса, а вторым — порядок формируемого числа.
Дополнительно можно указать предельные количества для вычисления правой части (шпхгип) н выводимых точек (шаххор), ввод отрицательных значений для этих параметров задает расчет без ограничений. Можно написать собственную процедуру интегрирования, например Му 5сПеше. Для использования этой процедуры нужно указать в перечне параметров шеСПоп'- Му 5свнпе. Заголовок процедуры при этом должен иметь следующий вид: Му 5спеае:-ргсс(уаг.П,С С.(Сег,рС.Е). где наг — число переменных, П вЂ” шаг интегрирования, С С вЂ” длина отрезка интегрирования, )Сег — число шагов между точками, запасаемыми в массиве рС для вывода на график (каждая точка дается списком [С, х,у] ), Š— функция, вычисляющая правые части системы дифференциальных уравнений.