Матросов А.В. Maple 6. Решение задач высшей математики и механики (1185909), страница 28
Текст из файла (страница 28)
В последнем случае все уравнения системы должны быть представлены в виде множества (их список через запятую следует заключить в фигурные скобки). Параметр неизвестные определяет неизвестную функцию дифференциального уравнения или неизвестные функции системы дифференциальных уравнений, которые, как и сами Часть !. Основы Мар!е 150 уравнения системы, должны быть представлены в виде множества. Необязательный параметр опция, определяемый в випе ключевое значенне=значение, позволяет задать методы и форму представления решения.
Для задания производной искомой функции в дифференциальном уравне- НИИ МОЖНО ИСПОЛЬЗОВатЬ КОМаНду с(1ГГ () ИЛИ ОПЕратОр О, ПРИЧЕМ СаМу НЕИЗ- вестную функцию следует определять с явным указанием независимой переменной, например у(х). С командой с(1гт() мы уже знакомы (см. раздел 25 "Дифференцирование и интегрирование 2, а вот оператор о встретился нам впервые. Он определяет операцию дифференцирования и имеет следующий синтаксис: (РИп) (функцня) (пераменная) г В этой записи и представляет целое число, определяющее порядок производной, параметр функция — используемый идентификатор функции, а параметр переменная — независимую переменную функции.
Например, производную второго порядка функции г(х) с использованием этого оператора следует задавать следующим образом: (сваг)(т) (х); Несколько примеров задания дифференциальных уравнений и систем диф- ференциальных уравнений представлены ниже: > еяп1:=с(1гГ(у(х),хэг)+)с"2*у(х) =Ог Г дт ес)н1:= ~ — у(х) + А' у(х) = О ~ дх' > еяпг:=(сваг) (у) (х) ск"2*у(х) =а1п(Х1*х) ! ес)п2:= (О )(у)(х)+ )с~ у(х) = з[п()с! х) > зуз1:=(О(у1) (х) =а [1, 1) *у1 (х) +а [1, 2) *у2 (х), о(уг) (х) =а [2, 11*у1(х)+а [2,2) *у2 (х) ); хух1:= ( 1)(уг )(х) = а, у1(х) + а у2(х), [1(у! )(х ) = а,, у! (х) е а,, у2(х) ) Обратите внимание, что в приведенных примерах и уравнения, и система уравнений сохраняются в переменных Мар!е.
Как уже отмечалось ранее, это достаточно распространенный прием, позволяющий использовать в дальнейшем заданные уравнения простой ссылкой на обычную переменную. Попробуем решить первое уравнение из приведенных примеров. Для этого ДОСтатОЧНО ВЫПОЛНИтъ СЛЕДУЮЩУЮ КОМаНДУ с(зо1яе (): > с(во1яе(ес)п1, у(х) ); у(х)= С! сов(/сх)+ С2 а)п(lсх) Найдено общее решение дифференциального уравнения, в котором переменные С! и С2 — это сгенерированные Мар1е специальные переменные, представляющие произвольные константы общего решения дифферен- Глава 2 Основные объекты н команды циального уравнения второго порядка. Этот пример показывает, что при отсутствии каких-либо опций Мар!е пытается найти точное общее решение в явном виде.
Если в явном виде решения не существует, то система попы- тается найти его в неявном виде, как видно из следующего примера: > еЧ:=с(1хх(у(х),х)=аяхС(х"2-у(х))е2*х; д ес):= — у(х) =.!хг — у(х) е 2 х дх > с(ао1се(ес(,у(х) ) ) у(х) х 2 /х'-у(х) — х > 1ао1аее (З, у (х) ) г ау(х)-./х'-у(х) Зх' бх' /х' — У(х) 2хГхг-у(х) -х 2 /хг — у(х) — х 2 /х -у(х) — х 5 г 1 у(х) = — х2+ — (-х — /- С! ) х+ — С! 4 2 — 4 Команда 1ао1асе() в этом примере выражает заданное вторым параметром выражение (у(х)) из уравнения, определяемого первым параметром (в нашем случае из неявного вида общего решения дифференциального уравнения).
По умолчанию команда с)ао1хе() сначала пытается найти общее решение в явном виде, и если таковое не удается найти, то решение выдается в неявном виде (конечно, при условии его существования). Можно "озадачить" Мар!е поиском общего решения в явном виде, используя опцию ехр11огт=ьхое (по умолчанию используется ехр11с1с=та1ае): > С(аа1ггЕ (ЕЧ, у (Х), ЕХр11О1сееХОЕ) ) у(х)=ЙООЮг(4 Ух+8 х,/х'- У вЂ” Зх'-бх' /х' — 2-2 С1,/х'- 2+х С!) > Охс(ех: Зс > ес)г=(Р662) (у) (х) +(а+Ь*х"2) *0(у) (х) +у(х) =Ог ео:= (Р )(у)(х)+(а+ Ь х') О(у)(х) + у(х) = 0 Как видим, в этом случае мы действительно получили сразу же решение в явном виде, но оно представлено через функцию аоосог (), так что наш первоначальный подход к решению дифференциального уравнения оказался более продуктивным.
Найти общее решение в явном или неявном виде удается не для любого дифференциального уравнения. В этом случае можно построить приближенное решение в форме ряда Тейлора. Для этого следует задать опцию суре=аехьеа в команде с(ао1ее() (по умолчанию используется суре=ехаос), а также установкой значения системной переменной охс(ех определить, до какого порядка малости относительно независимой переменной функции ищется разложение решения в ряд Тейлора в окрестности нулевой точки: Часть! Основы (Иар(е 152 > с(ао1че(еп,у(х),еуре=аех1еа) 1 1 у(х) = у(0) + ()(у)(0) х+ (- — (>(у)(0) а — — у(0 )~ х'+ О(х') Обратите внимание, что в решении дифференциального уравнения второго порядка, представленном рядом Тейлора, в качестве двух произвольных постоянных используются значения искомой функции и ее первой произволной в точке =о: у(0), 0(у)(0), Решение задачи Коши или краевой задачи для дифференциального уравнения в системе Мар!е так же просто, как и отыскание общего или приближенного решения.
Для этого необходимо задать первый параметр команды с(ао1ча () в виде множества, элементами которого являются само уравнение и все начальные или краевые условия. Решим задачу Коши и краевую задачу лля слелующего дифференциального уравнения второго порялка: > ес(п1:=ЖГГ(у(х), х$2)+Х"2*у(х) =0 ес)п(:= ( — у(х) + lс у(х) = 0 ! дх' Задача Коши для этого дифференциального уравнения второго порядка требует задания в нулевой точке значения неизвестной функции и ее первой производной. Ее решение представлено ниже: > бао1че((епп1, у(0) =О, 0(у) (0) =1), у(х) ); 5!П()С Х) у(х) = )с Краевая задача для этого дифференциального уравнения второго порядка требует задания в двух точках, например, х=о и х=1 значения неизвестной функции.
Ее решение также получено с помощью команды с(ао1 е (): > с(ао1че ((еяп1, у(0) =О, у(1) =1), у(х) ); 51П(ХХ) 5(п(сс) Начальные или краевые условия задаются в виде уравнений, в левой части которых определен задаваемый параметр (значение неизвестной функции или ее производной необходимого порядка) в соответствующей точке, а в правой части значение этого параметра. Обратим внимание, что при задании производных в начальных или краевых условиях следует использовать оператор 0 — КОмакда ПЫаг () здесь не употребляется.
Если точное решение задачи Коши или краевой задачи система Мар!е не смогла найти, а приближенное решение в виде ряда Тейлора нас не устраивает, то можно построить численное решение, опять-таки с использованием все той же команды аао1 е (). ДЛЯ Этого сЛЕдУет задать опцию суре=пас ех' о„ Глава 2 Основные обьекгы и команды а с помощью опции иеепос(=метод определить используемый для построения численного решения метод.
Параметр метод может принимать одно из зна- чений, представленных в табл. 2.9, в которой также дано краткое описание соответствующего значению метода. Таблица 2.9. Значения опции те ел ос( при численном решении дифференциальных уравнений Значение акг45 очехх78 Описание Метод Рунге-Кутта-Фальберга порядка 4 — б Метод Рунге-Кутта порядка 7-8 > ес(п1: =01ГГ (у (х), х$2) +К" 2*у (х) =0; Г Д~ егглГ:= ~ — у(х) + (с~ у(х) = 0 ~ дх Переменной г присваиваем результат численного решения задачи Коши лля дифференциального уравнения второго порядка (в нулевой точке задается значение неизвестной функции и ее первой производной): > т:=с)ео1че((ечп1,у(0)=0,0(у) (О) 1),у(х),хуре=тлпех1с) ) г":= ргое(гlд45 х) ...еп(1 ргое (Подробно процедура, ее создание и работа с ней описаны в гл. 5.) Если не присвоить параметру к конкретного числового значения, то попыт- Ка ПОЛуЧИтЬ ЗНаЧЕНИЕ рЕШЕНИя В ТОЧКЕ, НаПрИМЕр х=1, ПрИВЕдЕт К ОШИбКЕ: По умолчанию (если не задана опция иехпоо) применяется метод РунгеКутта-Фальберга порядка 4 — 5.
Однако при использовании численного решения слелует помнить, что все параметры дифференциального уравнения (символьные константы) должны быть определены. Например, для задачи Коши уравнения ечп1 предыдущего примера следует задать численное значение для параметра к. Численное решение строится в форме процедуры Мар(е, поэтому следует НЕКОтОРОй ПЕРЕМЕННОЙ ПрИСВОИтЬ рЕЗуЛЬтат ПОСтрОЕНИя КОМаНдОй ахогче() численного решения в виде процедуры. В дальнейшем имя этой переменной можно использовать как имя процедуры для вычисления значения решения задачи Коши в некоторой точке, соответствующей значению независимой переменной функции решения.