Решение системы дифференциальных уравнений в maple
Для нахождения аналитических решений дифференциальных уравнений в Maple применяется команда dsolve(eq,var,options), где eq – дифференциальное уравнение, var – неизвестные функции, options – параметры. Параметры могут указывать метод решения задачи, например, по умолчанию ищется аналитическое решение: type=exact . При составлении дифференциальных уравнений для обозначения производной применяется команда diff , например, дифференциальное уравнение y” + y = x записывается в виде: diff(y(x),x$2)+y(x)=x.
Общее решение дифференциального уравнения зависит от произвольных постоянных, число которых равно порядку дифференциального уравнения. В Maple такие постоянные, как правило, обозначаются как _ С1 , _ С2 , и т.д.
Общее решение неоднородного линейного дифференциального уравнения всегда выводится так, чтобы была четко видна, структура этого решения. Как известно, общее решение неоднородного линейного дифференциального уравнения равно сумме общего решения соответствующего однородного дифференциального уравнения и частного решения этого же неоднородного дифференциального уравнения. Поэтому в строке вывода решение неоднородного линейного дифференциального уравнения всегда состоит из слагаемых, которые содержат произвольные постоянные (это общее решения соответствующего однородного дифференциального уравнения), и слагаемых без произвольных постоянных (это частное решения этого же неоднородного дифференциального уравнения).
Команда dsolve выдает решение дифференциального уравнения в невычисляемом формате. Для того, чтобы с решением можно было бы работать далее (например, построить график решения) следует отделить правую часть полученного решения командой rhs(%) .
Задание 1.1.
1. Найти общее решение дифференциального уравнения y ‘+ y cos x =sin x cos x .
Итак, решение искомого уравнения есть функция 1 .
Замечание : при записи решения диффреренциального уравнения в Maple в строке вывода произвольная постоянная обозначена как _ С1 .
2. Найти общее решение дифференциального уравнения второго порядка y ” – 2 y ‘+ y =sin x + e – x .
Замечание : так как исходное уравнение было второго порядка, то полученное решение содержит две произвольные константы, которые в Maple обычно обознаются как _ С1 и _ С2 . Первые два слагаемых представляют собой общее решение соответствующего однородного дифференциального уравнения, а вторые два – частное решение неоднородного дифференциального уравнения.
3. Найти общее решение дифференциального уравнения порядка y ”+ k 2 y =sin( qx ) в двух случаях: q ¹ k и q = k (резонанс).
Теперь найдем решение в случае резонанса. Для этого перед вызовом команды dsolve следует приравнять q = k .
Замечание : в обоих случаях частное решение неоднородного уравнения и общее решение, содержащее произвольные постоянные, выводятся отдельными слагаемыми.
Фундаментальная (базисная) система решений.
Команда dsolve представляет возможность найти фундаментальную систему решений (базисные функции) дифференциального уравнения. Для этого в параметрах команды dsolve следует указать output=basis .
Задание 1.2.
Найти фундаментальную систему решений дифференциального уравнения: y (4) +2 y ”+ y =0.
Читайте также: Файл сиг что это
> dsolve(de, y(x), output=basis);
Решение задачи Коши или краевой задачи.
Команда dsolve может найти решение задачи Коши или краевой задачи, если помимо дифференциального уравнения задать начальные или краевые условия для неизвестной функции. Для обозначения производных в начальных или краевых условиях используется дифференциальный оператор , например, условие y”(0)=2 следует записать в виде , или условие y ‘(1)=0: . Напомним, что производная n -го порядка записывается в виде .
Задание 1.3.
1. Найти решение задачи Коши: y (4) + y ”=2cos x , y (0)= – 2, y ‘(0)=1, y ”(0)=0, y ”'(0)=0.
cond:= y(0)= – 2, D(y)(0)=1, (D (2) )(y)(0)=0, (D (3) )(y)(0)=0
y( x )= – 2cos( x ) – x sin( x )+ х
2. Найти решение краевой задачи: , , . Построить график решения.
y( x )=2 x – p + p cos( x )
Замечание : для построения графика решения предварительно следует отделить правую часть полученного выражения.
Системы дифференциальных уравнений.
Команда dsolve может найти решение системы дифференциальных уравнений (или задачи Коши), если в ней указать: dsolve( ,), где sys – система дифференциальных уравнений, x(t),y(t),… – набор неизвестных функций.
Задание 1.4.
Найти решение системы дифференциальных уравнений:
Найдены две функции x ( t ) и y ( t ), которые зависят от двух произвольных постоянных _ С1 и _ С2 .
Приближенное решение дифференциальных уравнений с помощью степенных рядов.
Для многих типов дифференциальных уравнений не может быть найдено точное аналитическое решение. В этом случае дифференциальное уравнение можно решить с помощью приближенных методов, и, в частности, с помощью разложения в степенной ряд неизвестной функции.
Чтобы найти приближенное решение дифференциального уравнения в виде степенного ряда, в команде dsolve следует после переменных указать параметр type=series (или просто series ). Для того, чтобы указать порядок разложения n , т.е. порядок степени, до которой производить разложение, следует перед командой dsolve вставить определение порядка с помощью команды Order:=n .
Если ищется общее решение дифференциального уравнения в виде разложения в степенной ряд, то коэффициенты при степенях х найденного разложения будут содержать неизвестные значения функции в нуле y(0) и ее производных D(y)(0), (D@@2)(y)(0) и т.д. Полученное в строке вывода выражение будет иметь вид, похожий на разложение искомого решения в ряд Маклорена, но с другими коэффициентами при степенях х . Для выделения частного решения следует задать начальные условия y(0)=у1, D(y)(0)=у2, (D@@2)(y)(0)=у3 и т.д., причем количество этих начальных условий должно совпадать с порядком соответствующего дифференциального уравнения.
Разложение в степенной ряд имеет тип series , поэтому для дальнейшей работы с этим рядом его следует преобразовать в полином с помощью команды convert(%,polynom) , а затем выделить правую часть полученного выражения командой rhs(%) .
Читайте также: Модели машин для unity3d
Задание 1.5.
1. Найти решение задачи Коши: , в виде степенного ряда с точностью до 5-го порядка.
y(0)=0>, y(x), type=series);
В полученном решении слагаемое означает, что точность разложения была до 5-го порядка.
2. Найти общее решение дифференциального уравнения y ”( х ) – y 3 ( х )= е – х cos x , в виде разложения в степенной ряд до 4-го порядка. Найти разложение при начальных условиях: y (0)=1, y ‘(0)=0.
> restart; Order:=4: de:=diff(y(x),x$2)-
Замечание : в полученном разложении запись D(y)(0) обозначает производную в нуле: y ‘(0). Для нахождения частого решения осталось задать начальные условия:
3. Найти приближенное решение в виде степенного ряда до 6-го порядка и точное решение задачи Коши: , , , . Построить на одном рисунке графики точного и приближенного решений.
cond :=y(0)=1, D(y)(0)=1, D (2) (y)(0)=1
Замечание : тип решения дифференциального уравнения в виде ряда есть series , поэтому для дальнейшего использования такого решения (вычислений или построения графика) его обязательно следует конвертировать в полином с помощью команды convert
На этом рисунке видно, что наилучшее приближение точного решения степенным рядом достигается примерно на интервале – 1 x
Исправляем ошибки: Нашли опечатку? Выделите ее мышкой и нажмите Ctrl+Enter
Примеры решения уравнений встроенными функциями
1. Решить дифференциальное уравнение .
Примечание 1.Производная в Maple задаётся функцией diff.
diff(y(x),x) – первая производная по x от функции y, зависящей от x;
diff(y(x),x$n) – n-ая производная по x от функции y, зависящей от x.
Diff – инертная форма функции производной.
Для решения обыкновенных дифференциальных уравнений (ОДУ) и систем ОДУ, зависящих от одной переменной, используется функция dsolve.
> dsolve(diff(y(x),x$2)-4*diff(y(x),x)+13*y(x)=0,y(x));
2. Решить задачу Коши , если: .
Примечание 2.В обозначении граничных условий с производными используется дифференциальный оператор D (используется только с большой буквы) D(f)(0) – обозначает значение производной от функции f в нуле. Например, если f зависит от x, то это будет обозначать следующее: .
В функции dsolve уравнение и граничные условия записываются в виде списка или множества (описание см. Синтаксис среды Maple).
>dsolve([diff(y(x),x$2)+2*diff(y(x),x)+5*y(x),y(0)=2,D(y)(0)=6],y(x));
3. Решить систему ОДУ
Примечание 3.
Все уравнения системы и условия записываются в общем одномерном списке или множестве. Набор функций, по которым производится интегрирование системы, также записывается в виде списка или множества.
Для начала необходимо выбрать переменную, от которой зависят x и у. Она не должна иметь имя уже объявленного оператора, константы, функции или переменной, иначе это приведет к ошибке. Каким образом отменить определение пользовательской переменной описано выше (см. Синтаксис среды Maple). В нашем случае переменная t.
Читайте также: Почему зависает телефон андроид
4. Решить систему ОДУ , при , .
Примечание 4. Для получения конечного результата с действительными числами используется функция evalf.
evalf[n]( ) или evalf( ,n)
В первом примере функция evalf преобразует все выражения к виду с действительными числами с количеством значащих цифр, определяемым в системной переменной Digits. Во втором случае используется количество цифр, определенное пользователем (n).
Изменить системную переменную Digits можно обычным присваиванием ей целочисленного значения. В результате все операции с плавающей точкой будут использовать именно такое количество значащих цифр.
Для рассматриваемого примера:
>evalf(%);
Дифференциальные уравнения можно записывать и с помощью оператора D. Для перехода между формами записи дифференциальных уравнений используется функция convert с параметром D или diff. Рассмотрим пример программы с использованием различных форм записи.
> restart;
> a1:=diff(y(x),x$2)+13*diff(y(x),x)+10=0;
convert(%, D);
convert(%, diff);
> dsolve(a2,y(x));
dsolve(a1,y(x));
Сначала производим отмену всех определений. Затем переменной а1 присваиваем значение дифференциального уравнения с использованием diff и преобразуем его к виду с использованием оператора D. После этого для сравнения переменной a2 присваиваем значение дифференциального уравнения записанного с использованием оператора D и преобразуем к виду с diff. Затем решаем поочередно оба уравнения. Результаты совпадают, следовательно, обе формы записи аналогичны.
Выражение с помощью diff можно записать так: diff(y(x),x$n). Здесь используется оператор перечисления $. Это выражение аналогично записи, где переменная x записана через запятую n раз. Аналогия с помощью оператора D выглядит следующим образом: (D@@n)(y)(x). В данном случае применяется оператор вложенности @@, т. е. сначала берется производная, а затем от нее еще производная и так n раз.
Дата добавления: 2018-05-12 ; просмотров: 1768 ; ЗАКАЗАТЬ РАБОТУ
Для того, чтобы оценить ресурс, необходимо авторизоваться.
Данная книга является учебным пособием по дисциплинам «Математика и информатика», «Информационные технологии». Пособие представляет собой практическое руководство по изучению возможностей пакета аналитических вычислений Maple. Подробные теоретические сведения чередуются с практическими заданиями. Последовательное изучение тем и выполнение заданий позволит шаг за шагом освоить основные приемы работы в математической системе Maple. Учебное пособие предназначено для студентов 1 и 2 курсов социально-психологического и естественно-географического факультетов университета, а также для аспирантов и научных работников, использующих математические методы и модели в естественнонаучных исследованиях.
Система дифференциальных уравнений в maple
Для нахождения аналитических решений дифференциальных уравнений в Maple применяется команда dsolve(eq,var,options), где eq – дифференциальное уравнение, var – неизвестные функции, options – параметры. Параметры могут указывать метод решения задачи, например, по умолчанию ищется аналитическое решение: type=exact . При составлении дифференциальных уравнений для обозначения производной применяется команда diff , например, дифференциальное уравнение y» + y = x записывается в виде: diff(y(x),x$2)+y(x)=x.
Общее решение дифференциального уравнения зависит от произвольных постоянных, число которых равно порядку дифференциального уравнения. В Maple такие постоянные, как правило, обозначаются как _ С1 , _ С2 , и т.д.
Общее решение неоднородного линейного дифференциального уравнения всегда выводится так, чтобы была четко видна, структура этого решения. Как известно, общее решение неоднородного линейного дифференциального уравнения равно сумме общего решения соответствующего однородного дифференциального уравнения и частного решения этого же неоднородного дифференциального уравнения. Поэтому в строке вывода решение неоднородного линейного дифференциального уравнения всегда состоит из слагаемых, которые содержат произвольные постоянные (это общее решения соответствующего однородного дифференциального уравнения), и слагаемых без произвольных постоянных (это частное решения этого же неоднородного дифференциального уравнения).
Команда dsolve выдает решение дифференциального уравнения в невычисляемом формате. Для того, чтобы с решением можно было бы работать далее (например, построить график решения) следует отделить правую часть полученного решения командой rhs(%) .
Задание 1.1.
1. Найти общее решение дифференциального уравнения y ‘+ y cos x =sin x cos x .
Итак, решение искомого уравнения есть функция 1 .
Замечание : при записи решения диффреренциального уравнения в Maple в строке вывода произвольная постоянная обозначена как _ С1 .
2. Найти общее решение дифференциального уравнения второго порядка y » — 2 y ‘+ y =sin x + e — x .
Замечание : так как исходное уравнение было второго порядка, то полученное решение содержит две произвольные константы, которые в Maple обычно обознаются как _ С1 и _ С2 . Первые два слагаемых представляют собой общее решение соответствующего однородного дифференциального уравнения, а вторые два – частное решение неоднородного дифференциального уравнения.
3. Найти общее решение дифференциального уравнения порядка y »+ k 2 y =sin( qx ) в двух случаях: q ¹ k и q = k (резонанс).
Теперь найдем решение в случае резонанса. Для этого перед вызовом команды dsolve следует приравнять q = k .
Замечание : в обоих случаях частное решение неоднородного уравнения и общее решение, содержащее произвольные постоянные, выводятся отдельными слагаемыми.
Фундаментальная (базисная) система решений.
Команда dsolve представляет возможность найти фундаментальную систему решений (базисные функции) дифференциального уравнения. Для этого в параметрах команды dsolve следует указать output=basis .
Задание 1.2.
Найти фундаментальную систему решений дифференциального уравнения: y (4) +2 y »+ y =0.
> dsolve(de, y(x), output=basis);
Решение задачи Коши или краевой задачи.
Команда dsolve может найти решение задачи Коши или краевой задачи, если помимо дифференциального уравнения задать начальные или краевые условия для неизвестной функции. Для обозначения производных в начальных или краевых условиях используется дифференциальный оператор , например, условие y»(0)=2 следует записать в виде , или условие y ‘(1)=0: . Напомним, что производная n -го порядка записывается в виде .
Задание 1.3.
1. Найти решение задачи Коши: y (4) + y »=2cos x , y (0)= — 2, y ‘(0)=1, y »(0)=0, y »'(0)=0.
cond:= y(0)= — 2, D(y)(0)=1, (D (2) )(y)(0)=0, (D (3) )(y)(0)=0
y( x )= — 2cos( x ) — x sin( x )+ х
2. Найти решение краевой задачи: , , . Построить график решения.
y( x )=2 x — p + p cos( x )
Замечание : для построения графика решения предварительно следует отделить правую часть полученного выражения.
Системы дифференциальных уравнений.
Команда dsolve может найти решение системы дифференциальных уравнений (или задачи Коши), если в ней указать: dsolve( , ), где sys — система дифференциальных уравнений, x(t),y(t),… — набор неизвестных функций.
Задание 1.4.
Найти решение системы дифференциальных уравнений:
Найдены две функции x ( t ) и y ( t ), которые зависят от двух произвольных постоянных _ С1 и _ С2 .
Приближенное решение дифференциальных уравнений с помощью степенных рядов.
Для многих типов дифференциальных уравнений не может быть найдено точное аналитическое решение. В этом случае дифференциальное уравнение можно решить с помощью приближенных методов, и, в частности, с помощью разложения в степенной ряд неизвестной функции.
Чтобы найти приближенное решение дифференциального уравнения в виде степенного ряда, в команде dsolve следует после переменных указать параметр type=series (или просто series ). Для того, чтобы указать порядок разложения n , т.е. порядок степени, до которой производить разложение, следует перед командой dsolve вставить определение порядка с помощью команды Order:=n .
Если ищется общее решение дифференциального уравнения в виде разложения в степенной ряд, то коэффициенты при степенях х найденного разложения будут содержать неизвестные значения функции в нуле y(0) и ее производных D(y)(0), (D@@2)(y)(0) и т.д. Полученное в строке вывода выражение будет иметь вид, похожий на разложение искомого решения в ряд Маклорена, но с другими коэффициентами при степенях х . Для выделения частного решения следует задать начальные условия y(0)=у1, D(y)(0)=у2, (D@@2)(y)(0)=у3 и т.д., причем количество этих начальных условий должно совпадать с порядком соответствующего дифференциального уравнения.
Разложение в степенной ряд имеет тип series , поэтому для дальнейшей работы с этим рядом его следует преобразовать в полином с помощью команды convert(%,polynom) , а затем выделить правую часть полученного выражения командой rhs(%) .
Задание 1.5.
1. Найти решение задачи Коши: , в виде степенного ряда с точностью до 5-го порядка.
y(0)=0>, y(x), type=series);
В полученном решении слагаемое означает, что точность разложения была до 5-го порядка.
2. Найти общее решение дифференциального уравнения y »( х ) — y 3 ( х )= е — х cos x , в виде разложения в степенной ряд до 4-го порядка. Найти разложение при начальных условиях: y (0)=1, y ‘(0)=0.
> restart; Order:=4: de:=diff(y(x),x$2)-
Замечание : в полученном разложении запись D(y)(0) обозначает производную в нуле: y ‘(0). Для нахождения частого решения осталось задать начальные условия:
3. Найти приближенное решение в виде степенного ряда до 6-го порядка и точное решение задачи Коши: , , , . Построить на одном рисунке графики точного и приближенного решений.
cond :=y(0)=1, D(y)(0)=1, D (2) (y)(0)=1
Замечание : тип решения дифференциального уравнения в виде ряда есть series , поэтому для дальнейшего использования такого решения (вычислений или построения графика) его обязательно следует конвертировать в полином с помощью команды convert
На этом рисунке видно, что наилучшее приближение точного решения степенным рядом достигается примерно на интервале — 1 x
Исправляем ошибки: Нашли опечатку? Выделите ее мышкой и нажмите Ctrl+Enter
Решение дифференциальных уравнений
Основная функция dsolve
Важное место в математических расчетах занимает решение дифференциальных уравнений. К нему, в частности, обычно относится анализ поведения различных систем во времени (анализ динамики), а также вычисление различных полей (тяготения, электрических зарядов и т. д.). Трудно переоценить роль дифференциальных уравнений в моделировании физических и технических объектов и систем, Maple 7 позволяет решать одиночные дифференциальные уравнения и системы дифференциальных уравнений как аналитически, так и в численном виде. Разработчиками системы объявлено о существенном расширении средств решения дифференциальных уравнений и о повышении их надежности в смысле нахождения решений для большинства классов дифференциальных уравнений. Поэтому данный урок целиком посвящен решению уравнений данного класса. Для решения системы простых дифференциальных уравнений (задача Коши) используется функция dsolve в разных формах записи:
dsolve(ODE, y(x), extra_args)
dsolve((ODE, ICs>, y(x), extra_args)
Здесь ODE — одно обыкновенное дифференциальное уравнение или система из дифференциальных уравнений первого порядка с указанием начальных условий, у(х) — функция одной переменной, Ics — выражение, задающее начальные условия, —множество дифференциальных уравнений, —множество неопределенных функций, extra_argument — опция, задающая тип решения. Параметр extra_argument задает класс решаемых уравнений. Отметим основные значения этого параметра:
Для решения задачи Коши в параметры dsolve надо включать начальные условия, а при решении краевых задач — краевые условия. Если Maple способна найти решение при числе начальных или краевых условий меньшего порядка системы, то в решении будут появляться неопределенные константы вида _С1, _С2 и т. д. Они же могут быть при аналитическом решении системы, когда начальные условия не заданы. Если решение найдено в неявном виде, то в нем появится параметр _Т.
По умолчанию функция dsolve автоматически выбирает наиболее подходящий метод решения дифференциальных уравнений. Однако в параметрах функции dsolve в квадратных скобках можно указать предпочтительный метод решения дифференциальных уравнений. Допустимы следующие методы:
Информацию о каждом методе можно получить, используя команду Tdsolve, method и указав в ней конкретный метод. Например, команда Tdsolve,linear вызовет появление страницы справочной системы с подробным описанием линейного метода решения дифференциальных уравнений.
Производные при записи дифференциальных уравнений могут задаваться функцией diff или оператором D. Выражение sysODE должно иметь структуру множества и содержать помимо самой системы уравнений их начальные условия.
Решение ОДУ первого порядка
Начнем рассмотрение практических примеров с решения одиночных обыкновенных дифференциальных уравнений (ОДУ) первого порядка:
Следующие примеры иллюстрируют возможность решения одного и того же дифференциального уравнения ode_L разными методами:
Объем данной книги не позволяет остановиться на всех тонкостях аналитического решения дифференциальных уравнений. Множество примеров такого решения дано в справочной базе данных Maple,. 7- К ней нужно обратиться в случае, если решение того или иного дифференциального уравнения выходит за рамки учебного курса.
Решение дифференциальных уравнений второго порядка
Здесь видно, что для задания производной используется ранее рассмотренная функция diff . С помощью символа $ можно задать производную более высокого порядка. Ниже представлено решение двух дифференциальных уравнений второго порядка:
Обратите внимание на решение второго из этих уравнений. Здесь использован прием визуализации исходного дифференциального уравнения, и оно задается значением переменной de. Кроме того, и это особенно важно, решение осуществляется при заданных начальных условиях. Именно поэтому в решении отсутствуют произвольные постоянные вида _СN .
Решение систем дифференциальных уравнений
На рис. 13.1 представлено решение системы из двух дифференциальных уравнений различными методами — в явном виде, в виде разложения в ряд и с использованием преобразования Лапласа. Здесь следует отметить, что решение в виде ряда является приближенным. Поэтому полученные в данном случае аналитические выражения отличаются от явного решения и решения с применением преобразования Лапласа.
Рис. 13.1 . Решение системы из двух дифференциальных уравнений различными методами
Следует отметить, что, несмотря на обширные возможности Maple 7 в области аналитического решения дифференциальных уравнений, оно возможно далеко не всегда. Поэтому, если не удается получить такое решение, полезно попытаться найти решение в численном виде.
Численное решение дифференциальных уравнений
Большинство нелинейных дифференциальных уравнений не имеет аналитического решения. Кроме того, часто аналитическое решение и не нужно, но требуется получить ответ в виде графических зависимостей.
В таких случаях для решения дифференциальных уравнений в численном виде используется функция dsolve с параметром numeric или type=numeric . При этом решение возвращается в виде специальной процедуры, по умолчанию реализующей широко известный метод решения дифференциальных уравнений Рунге—Кутта—Фелберга порядков 4 и 5 (в зависимости от условий адаптации решения к скорости его изменения). Эта процедура называется rkf45 и символически выводится (без тела) при попытке решения заданной системы дифференциальных уравнений. Последнее достаточно наглядно иллюстрирует рис. 13.2.
Рис. 13.2. Решение системы дифференциальных уравнений численным методом rkf45 с выводом графика решения
Указанная процедура возвращает особый тип данных, позволяющих найти решение в любой точке или построить график решения (или решений). Для графического отображения Maple 7 предлагает ряд возможностей, и одна из них представлена на рис. 13.2 — см. последнюю строку ввода. При этом используется функция plot[odeplot] из пакета odeplot , предназначенного для визуализации решений дифференциальных уравнений.
В список параметров функции dsolve можно явным образом включить указание на метод решения, например опция mathod=dverk78 задает решение непрерывным методом Рунге—Кутта порядка 7 или 8. Вообще говоря, численное решение дифференциальных уравнений можно производить одним из следующих методов:
Обилие используемых методов расширяет возможности решения дифференциальных уравнений в численном виде. Большинство пользователей Maple 7 вполне устроит автоматический выбор метода решения по умолчанию. Однако в сложных случаях возможна прямая установка одного из указанных выше методов. С деталями реализации методов можно ознакомиться по справочной системе.
С помощью параметра ‘ abserr’ =аеrr можно задать величину абсолютной погрешности решения, а с помощью ‘minerr’=mine — минимальную величину погрешности. В большинстве случаев эти величины, заданные по умолчанию, оказываются приемлемыми для расчетов.
Maple 7 реализует адаптируемые к ходу решения методы, при которых шаг решения h автоматически меняется, подстраиваясь под условия решения. Так, если прогнозируемая погрешность решения становится больше заданной, шаг решения автоматически уменьшается. Более того, система Maple способна автоматически выбирать наиболее подходящий для решаемой задачи метод решения.
Еще один пример решения системы дифференциальных уравнений представлен на рис. 13.3. Здесь на одном графике представлены зависимости у(х) и z(х), представляющие полное решение заданной системы. При этом процедура имеет особый вид listprocedure и для преобразования списка выходных данных в векторы решения Y и Z используется функция subs .
Для решения достаточно сложных задач полезны специальная структура DESol для решения дифференциальных уравнений и инструментальный пакет DEtools , содержащий самые изысканные средства для графической визуализации результатов решения дифференциальных уравнений. Эти средства мы более подробно рассмотрим в дальнейшем.
Рис. 13.3 . Решение системы дифференциальных уравнений численным методом с выводом всех графиков искомых зависимостей
При решении некоторых задач физики и радиоэлектроники выбираемый поумолчанию шаг изменения аргументах или t — Л может привести к неустойчивости решения. Неустойчивости можно избежать рядом способов. Можно, например, нормировать уравнения, избегая необходимости использования малого шага. А можно задать заведомо малый шаг. Например, при method=classical для этого служит параметр stepsize-h. Примеры такого подхода будут даны в уроке 17 (см. Решение физических задач и моделирование цепи на туннельном диоде).
Дифференциальные уравнения с кусочными функциями
Функции кусочного типа широко используются при математическом моделировании различных физических объектов и систем. В основе такого моделирования обычно лежит решение дифференциальных уравнений, описывающих поведение объектов и систем. Покажем возможность применения кусочных функций для решения дифференциальных уравнений.
Ниже представлено задание дифференциального уравнения первого порядка, содержащего кусочную функцию:
Используя функцию dsolve , выполним решение этого дифференциального уравнения:
Нетрудно заметить, что результат получен также в форме кусочной функции, полностью определяющей решение на трех интервалах изменениях. Приведем пример решения дифференциального уравнения второго порядка с кусочной функцией:
В конце этого раздела приведем пример решения нелинейного дифференциального уравнения Риккати с кусочной функцией:
В ряде случаев желательна проверка решения дифференциальных уравнений. Ниже показано, как она делается для последнего уравнения:
Как видно из приведенных достаточно простых и наглядных примеров, результаты решения дифференциальных уравнений с кусочными функциями могут быть довольно громоздкими. Это, однако, не мешает эффективному применению функций данного класса.
Структура неявного представления дифференциальных уравнений — DESol
В ряде случаев иметь явное представление дифференциальных уравнений нецелесообразно. Для неявного их представления в Maple 7 введена специальная структура:
где exprs — выражение для исходной системы дифференциальных уравнений, vars — заданный в виде опции список переменных (или одна переменная). Структура DESol образует некоторый объект, дающий представление о дифференциальных уравнениях, чем-то напоминающее RootOf . С этим объектом можно обращаться, как с функцией, то есть его можно интегрировать, дифференцировать, получать разложение в ряд и вычислять численными методами. На рис. 13.4 показаны примеры применения структуры DESol . Обратите внимание на последний пример — в нем структура- DESol использована для получения решения дифференциального уравнения в виде степенного ряда.
Рис. 13.4. Примеры применения структуры DESol
Инструментальный пакет решения дифференциальных уравнений DEtools
Средства пакета DEtools
Решение дифференциальных уравнений самых различных типов — одно из достоинств системы Maple 7. Пакет DEtools предоставляет ряд полезных функций для решения дифференциальных уравнений и систем с такими уравнениями:
Warning, the name adjoint has been redefined
[DEnormal, DEplot, DEplot3d, DEplot_pofygon, DFactor, DFactorLCLM, DFactorsols, Dchangevar, GCRD, LCLM, PDEchangecoords, RiemannPsols, Xchange, Xcommutator, Xgauge, abelsoL, adjoint, autonomous, bernoullisol, buildsol, buildsym, canoni, caseplqt, casesplit, checkrank, chinisol, clairautsol, constcoeffsols, convertAlg, convertsys, dalembertsol, dcoeffs, de2diffop, dfieldplot, diffop2de, dsubs, eigenring, endomorphism_charpoly, equinv, etajc, eulersols, exactsol, expsols, exterior’_power,firint,firtest, formal_sol, gen_exp, generate_ic, genhomosol, gensys, hamilton_eqs, indicialeq, infgen, initialdata, integrate_sols, intfactor, Invariants, kovacicsols, leftdivision, liesol, line_int, linearsol, matrixDE, matrix_riccati, moserjreduce, muchange, mult, mutest, newtonjpolygon, normalG2, odeadvisor, odepde, parametricsol, phaseportrait, poincare, polysols, ratsols, redode, reduceOrder, reduce_order, regular_parts, regularsp, remove_RootOf, riccati_system, riccatisol, rifsimp, rightdivision, rtaylor, separablesol, solvejgroup, super_reduce, symgen, symmetric_po\ver, symmetric^product, symtest, transinv, translate, untranslate, varparam, zoom]
Этот пакет дает самые изысканные средства для аналитического и численного решения дифференциальных уравнений и систем с ними. По сравнению с версией Maple V R5 число функций данного пакета в Maple 7 возросло в несколько раз. Многие графические функции пакета DEtools были уже описаны. Ниже приводятся полные наименования тех функций, которые есть в реализациях R5, 6 и 7 системы Maple:
Применение этих функций гарантирует совместимость документов реализаций Maple R5, 6 и 7.
Основные функции пакета DEtools
Ввиду обилия функций пакета DEtools дать их полное описание в данной книге не представляется возможным. Поэтому выборочно рассмотрим наиболее важные функции этого пакета. Функция:
тестирует дифференциальное уравнение (или систему) des . Ее параметрами помимо des являются независимая переменная ivar и зависимая переменная dvar . Следующие примеры поясняют применение этой функции:
Функция Dchangevar используется для обеспечения замен (подстановок) в дифференциальных уравнениях:
Dchangevar(tranl, tran2, . tranN, deqns, c_ivar, n_ivar)
В первом случае trans — список или множество уравнений, которые подставляются в дифференциальное уравнение, список или множество дифференциальных уравнений deqns . При этом c_ivar — имя текущей переменной, n_ivar — имя новой переменной (его задавать необязательно). Во второй форме для подстановки используются уравнения tranl, tran2, . Ниже представлены примеры применения функции Dchangevar :
Следует отметить, что подстановки являются мощным средством решения дифференциальных уравнений. Нередки случаи, когда дифференциальное уравнение не решается без их применения. Дополнительные примеры использования подстановок можно найти в справочной базе данных системы Maple 7.
Функция нормализации ОДУ DEnormal синтаксически записывается в виде:
где des — система дифференциальных уравнений, 1var — независимая переменная и dvar — зависимая переменная. Применение этой функции поясняют следующие примеры:
Функция convertAlg(des,dvar) возвращает список коэффициентов формы системы дифференциальных уравнений des с зависимыми переменными dvar . Это поясняют следующие примеры:
Для изменения переменных в системах дифференциальных уравнений используется функция convertsys :
convertsys(deqns, inits, vars, ivar, yvec, ypvec)
Здесь deqns — одно дифференциальное уравнение или список (множество), представляющие систему дифференциальных уравнений первого порядка, inits — множество или список начальных условий, vans — зависимые переменные, ivar — независимые переменные, yvec — вектор решений и ypvec — вектор производных. Функция:
обеспечивает полиномиальное представление для линейного однородного дифференциального уравнения второго порядка des . Параметр alpha намечает точку сингулярности.
обеспечивает понижение порядка дифференциального уравнения des (или системы уравнений, представленных списком или множеством) при зависимых переменных dvar , частном решении partsol (или списке частных решений) и флаге solutionForm , показывающем, что решение происходит явным методом ( explicitly ). Для демонстрации действия этой функции воспользуемся примером из ее справочной страницы:
вычисляет регулярные особые (сингулярные) точки для дифференциального уравнения второго порядка или системы дифференциальных уравнений des . Следующий пример поясняет применение данной функции:
Еще две функции пакета DEtools :
выполняют особую операцию трансляции дифференциального уравнения (или списка дифференциальных уравнений) из центрированного относительно 0 в центрированное относительно 1 и наоборот. С деталями этого специфического процесса заинтересованный читатель может познакомиться в справочной базе данных. И еще одна полезная функция пакета:
находит общее решение дифференциального уравнения (или системы уравнений) sols методом вариации параметров. Параметр v задает правую часть уравнения; если он равен 0, ищется только частичное решение:
Более подробную информацию об этих функциях читатель найдет в их справочных страницах, а также в информационном документе detdols.mws содержащем систематизированное описание пакета DEtools с многочисленными примерами его применения.
Графическое представление решений дифференциальных уравнений
Применение функции odeplot пакета plots
Для обычного графического представления результатов решения дифференциальных уравнений может использоваться функция odeplot из описанного выше пакета plots . Эта функция используется в следующем виде:
где s — запись (в выходной фирме) дифференциального уравнения или системы дифференциальных уравнений, решаемых численно функцией dsolve, vars — переменные, г — параметр, задающий пределы решения (например, а. .Ь), и о — необязательные дополнительные опции.
На рис. 13.5 представлен пример решения одиночного дифференциального уравнения с выводом решения у(х) с помощью функции odeplot .
В этом примере решается дифференциальное уравнение:
при у(0) = 2 и x, меняющемся от-5 до 5. Левая часть уравнения записана с помощью функции вычисления производной diff . Результатом построения является график решения у(х).
В другом примере (рис. 13.6) представлено решение системы из двух нелинейных дифференциальных уравнений. Здесь с помощью функции odeplot строятся графики двух функций. —у(х) и z(x).
В этом примере решается система:
при начальных условиях y(0)=0, z(0) = 1 их, меняющемся от -4 до 4 при числе точек решения, равном 25.
Иногда решение системы из двух дифференциальных уравнений (или одного дифференциального уравнения второго порядка) представляется в виде фазового портрета — при этом по осям графика откладываются значения у(х) и z(х) при изменении х в определенных пределах. Рисунок 13.7 демонстрирует построение фазового портрета для системы, представленной выше.
Обычное решение, как правило, более наглядно, чем фазовый портрет решения. Однако для специалистов (например, в теории колебаний) фазовый портрет порою дает больше информации, чем обычное решение. Он более трудоемок; для построения, поэтому возможность Марle 7 быстро строить фазовые портреты трудно переоценить.
Рис. 13.5. Пример решения одиночного дифференциального уравнения
Рис. 13.6. Пример решения системы из двух дифференциальных уравнений
Рис. 13.7. Представление решения системы дифференциальных уравнений в виде фазового портрета
Функция DEplot из пакета DEtools
Специально для решения и визуализации решений дифференциальных уравнений и систем с дифференциальными уравнениями служит инструментальный пакет DEtools . В него входит ряд функций для построения наиболее сложных и изысканных графиков решения дифференциальных уравнений. Основной из этих функций является функция DEplot . Функция DEplot может записываться в нескольких формах:
DEplot(deqns, vans, trange. inits. eqns)
DEplot(deqns. vars. trange, уrange, xrgnge, eqns) .
DEplot(deqns. vars, trange. Inits, xrange. yrange, eqns)
Здесь deqns — список или множество, содержащее систему дифференциальных уравнений первого порядка или одиночное уравнение любого порядка; vars — зависимая переменная или список либо множество зависимых переменных; trange — область изменения независимой переменной t; Inits — начальные условия для решения; yrange — область изменения для первой зависимой переменной, xrange — область изменения для второй зависимой переменной; eqns — опция, записываемая в виде keyword-value. Замена имен переменных другими в данном случае недопустима.
Эта функция обеспечивает численное решение дифференциальных уравнений или их систем при одной независимой переменной t и строит графики решения. Для автономных систем эти графики строятся в виде векторного поля направлений, а для неавтономных систем — только в виде кривых решения. По умолчанию реализуется метод Рунге—Кутта 4-го порядка, что соответствует опции methodiclassical[rk4]. С функцией DEplot могут использоваться следующие параметры:
На рис. 13.8 показано решение системы диффкренциальных уравнений
описывающих модель Лотки—Вольтерра при заданных в документе изменениях t, x(t) и y(t). Решение представлено в виде векторного поля стрелки которого являются касательными к кривым решения (сами эти кривые не строятся). Обратите внимание на функциональную закраску стрелок векторного поля, делающую решение особенно наглядным (правда, лишь на экране цветного дисплея, а не на страницах книги).
Рис. 13.8. Решение системы дифференциальных уравнений Лотки—Вольтерра , с выводом в виде графика векторного поля
Еще интересней вариант графиков, представленный на рис. 13.9. Здесь помимо векторного поля несколько иного стиля построены фазовые портреты решения с использованием функциональной закраски их линий. Фазовые портреты построены для двух наборов начальных условий:
x(0) = y(0) = 1,2 и x(0) = 1 и у(0)=0,7.
Следует отметить, что функция DEplot может обращаться к другим функциям пакета DEtools для обеспечения специальных графических возможностей, таких как построение векторного поля или фазового портрета решения.
Рис. 13.9. Пример построения двух фазовых портретов на фоне векторного поля
Функция DEplotSd из пакета DEtools
В ряде случаев решение систем дифференциальных уравнений удобно представлять в виде пространственных кривых — например, линий равного уровня или просто в виде кривых в пространстве. Для этого служит функция DEplot3d :
DEplot3d(deqns, vars, trarige, initset, о)
DEplot3d(deqns, vars, trang, yrange, xrange, initset, o)
Назначение параметров этой функции аналогично указанному для функции DEplot .
Рисунок 13.10 поясняет применение функции DEPlqt3d для решения системы из двух дифференциальных уравнений с выводом фазового портрета колебаний в виде параметрически заданной зависимости x(t), y(t). В данном случае фазовый портрет строится на плоскости по типу построения графиков/линий равной высоты.
Другой пример (рис. 13.11) показывает решение системы из двух дифференциальных уравнений с построением объемного фазового портрета. В этом случае используется трехмерная координатная система и графические построения соответствуют параметрическим зависимостям x(t), y(t) и z(t). Вид фазового портрета напоминает разворачивающуюся в пространстве объемную, спираль.
Функциональная окраска делает график пикантным.
Рис. 13.10. Пример решения системы из двух дифференциальных уравнений с помощью функции DEptot3d
Возможности функции DEplot3d позволяют решать системы, состоящие более чем из двух дифференциальных уравнений. Однако в этом случае число решений, представляемых графически, выходит за пределы возможного для трехмерной графики. При этом от пользователя зависит, какие из зависимостей опускаются при построении, а какие строятся.
Функция PDEplot пакета DEtools
Еще одна функция пакета DEtools — DEtools[PDEp1ot] — служит для построения графиков решения систем с квазилинейными дифференциальными уравнениями первого порядка в частных производных.
Эта функция используется в следующем виде:
PDEplotCpdiffeq, van, i_curve, srange, о)
PDEplot(pdiffeq, var, i_curve. srange, xrange, yrange, urange, o)
Рис. 13.11. Пример решения системы из двух дифференциальных уравнений с построением трехмерного фазового портрета
Здесь помимо упоминавшихся ранее параметров используются следующие: pdiffeq — квазилинейные дифференциальные уравнения первого порядка ( PDE), vans — независимая переменная и i_curve — начальные условия для параметрических кривых трехмерной поверхности. Помимо опций, указанных для функции DEplot , здесь могут использоваться следующие опции:
Рисунок 13.12 демонстрирует применение функции PDEplot . Этот пример показывает, насколько необычным может быть решение даже простой системы дифференциальных уравнений в частных производных.
Рис. 13.12. Пример применения функции PDEplot
В данном случае решение представлено трехмерной фигурой весьма нерегулярного вида.
Другой пример использования функции PDEplot показан на рис. 13.13. Он иллюстрирует комбинированное построение графиков решения разного типа с применением функциональной закраски, реализуемой по заданной формуле с помощью опции initcolor .
Еще раз отметим, что, к сожалению, рисунки в данной книге не дают представления о цвете выводимого Maple графика. Поэтому наглядность решений, видимых на экране монитора, существенно выше.
Графическая функция dfieldplot
Графическая функция dfieldplot служит для построения поля направления с помощью векторов по результатам решения дифференциальных уравнений. Фактически эта функция как бы входит в функцию DEplot и при необходимости вызывается последней. Но она может использоваться и самостоятельно, что демонстрирует рис. 13.14, на котором показан пример решения следующей системы дифференциальных уравнений:
Рис. 13.13 . Построение комбинированного графика с помощью функции PDEplot
Обратите внимание на использование опций в этом примере, в частности на вывод надписи на русском языке. В целом список параметров функции phaseportrait аналогичен таковому для функции DEplot (отсутствует лишь задание начальных условий).
Графическая функция phaseportrait
Графическая функция phaseportrait служит для построения фазовых портретов по результатам решения одного дифференциального уравнения или системы дифференциальных уравнений deqns . Она задается в следующем виде:
При задании уравнений достаточно указать их правые части. На рис. 13.15 представлен пример применения функции phaseportrait для решения системы из трех дифференциальных уравнений первого порядка.
В этом примере система дифференциальных уравнений задана с помощью оператора дифференцирования D. Функциональная окраска линии фазового портрета достигается использованием параметра linecolor, в правой части которого задана формула для цвета.
Рис. 13.14. Построение фазового портрета в виде графика векторного поля
Рис. 13.15. Построение фазового портрета с помощью функции phaserportrait
Еще более интересный пример решения дифференциального уравнения представлен на рис. 13.16. Здесь построены фазовые портреты для асимптотических решений.
В целом надо отметить, что возможности визуализации решений дифференциальных уравнений с помощью системы Maple 7 весьма велики и приведенные выше примеры лишь частично иллюстрируют сказанное. В справочной системе можно найти ряд других весьма эффектных решений систем дифференциальных уравнений с визуализацией последних. ,
Рис. 13.16. Построение асимптотического решения на фоне графика векторного поля
Углубленный анализ дифференциальных уравнений
Задачи углубленного анализа ДУ
Maple 7 существенно доработана по части решения дифференциальных уравнений (ДУ) и систем с ДУ. Эта доработка прежде всего направлена на получение верных решений как можно большего числа ДУ разных классов и систем с ДУ.
В частности, расширен круг нелинейных дифференциальных уравнений, для которых Maple7способна дать аналитические решения.
Весь арсенал средств решения ДУ-и методика их применения вполне заслуживают отражения в отдельной большой книге. Мы ограничимся описанием только трех средств системы Maple 7 — проверки ДУ на автономность, углубленным анализом решения с помощью контроля уровня выхода и получением приближенного полиномиального аналитического решения. Более подробное знакомство с новыми возможностями решения дифференциальных уравнений можно получить из соответствующей статьи справки symbolics в разделе What is new.
Проверка ДУ на автономность
Одиночное дифференциальное уравнение или система дифференциальных уравнений называются автономными, если их правая часть явно не зависит от независимой переменной. Для автономных дифференциальных уравнений или систем при построении графиков решений функцией DEplot не обязательно задавать начальные условия, но нужно указывать диапазон изменения искомых переменных.
Для проверки уравнений (или систем) на автономность используется функция:
где des — заданное дифференциальное уравнение или (в виде списка) система дифференциальных уравнений, vars — зависимые переменные; ivar — независимая переменная. Если система автономна, то эта функция возвращает true , в противном случае false .
В первом случае система дифференциальных уравнений (модель. Лотки-Воль-терра) автономна, а во втором случае дифференциальное уравнение не автономно.
Контроль уровня вывода решения ДУ
Для углубленного анализа аналитического решения ДУ (или системы ДУ) можно использовать специальную возможность управления уровнем вывода решения с помощью системной переменной infilevel(dsolve)=level. Значение level =all дает обычный вывод решения без Комментариев, уровень 1 зарезервирован для информации, которую может сообщить пользователь, уровень 2 или 3 дает более детальный вывод (включая сообщения об использованном алгоритме и технике решения) и, наконец, уровни 4 и 5 дают наиболее детальную информацию (если тиковая есть в дополнение к той информации, которую дает уровень 2 или 3).
Приведем пример .аналитического решения ДУ третьего порядка с контролем уровня вывода решения:
В данном случае повышение уровня вывода до 4 или 5 бесполезно, поскольку вся информация о решении сообщается уже при уровне 2 (или 3).
Приближенное полиномиальное решение ДУ
Во многих случаях аналитические решения даже простых ДУ оказываются весьма сложными, например содержат специальные математические функции. При этом нередко полезна подмена такого решения другим, тоже аналитическим, но приближенным решением. Наиболее распространенным приближенным решением в этом случае может быть полиномиальное решение, то есть замена реального решения полиномом той или иной степени. При этом порядок полинома задается значением системной переменной Order , а для получения такого решения функция dsolve должна иметь параметр series .
На рис. 13.17 представлено решение ДУ третьего порядка различными методами: точное аналитическое и приближенное в виде полинома с максимальным заданным порядком 10 и 60. График дает сравнение этих решений для зависимости y(t).
Дадим небольшой комментарий. Нетрудно заметить, что точное аналитическое решение весьма сложно и содержит специальные функции Бесселя и гамма- функции. При порядке полинома 8 (он несколько меньше заданного максимального) решение практически совпадает с точным до значений t Рис. 13.17. Примеры решения ДУ третьего порядка
Что нового мы узнали?
В этим уроке мы научились:
Глава 7
Решение дифференциальных уравнений
Дифференциальные уравнения лежат в основе математического моделирования различных, в том числе физических, систем и устройств [1, 38, 46]. Решению таких уравнений посвящена эта глава. В ней рассмотрено как аналитическое, так и численное решение дифференциальных уравнений различного вида — линейных и нелинейных, классических и специальных, например, в частных производных и с учетом двухсторонних граничных условий. Описание сопровождается множеством наглядных примеров, реализованных в СКМ Maple 9.5/10.
7.1. Введение в решение дифференциальных уравнений
7.1.1. Дифференциальные уравнения первого порядка
Дифференциальные уравнения (ДУ) это уравнения, связывающие неизвестную функцию с какими либо ее производными и, возможно, с независимыми переменными. Если неизвестная функция зависит только от одной независимой переменной, то такое уравнение называется обыкновенным дифференциальным уравнением, а если от двух и более многих независимых переменных — дифференциальным уравнением в частных производных.
Простейшее дифференциальное уравнение первого порядка
в общем случае имеет множество решений в виде зависимостей y(х). Однако можно получить единственное решение, если задать начальные условия в виде начальных значений х0 и у0= у(х0). Это решение может быть аналитическим, конечно-разностным или численным.
7.1.2. Решение дифференциального уравнения радиоактивного распада
В качестве примера аналитического решения дифференциального уравнения первого порядка (файл der) запишем дифференциальное уравнение радиоактивного распада атомов (N — число атомов в момент времени t, g=1/c):
Используя функцию dsolve, которая более подробно будет описана чуть позже, получим его общее аналитическое решение:
В решении присутствует произвольная постоянная _С1. Но ее можно заметить на постоянную N(0)=N0, означающую начальное число атомов в момент t=0:
Если конкретно N0=100 и g=4, то получим:
Хотя dsolve выдает решение N(t) в символьном виде, оно пока недоступно для построения графика этого решения или просто вычисления в любой точке. Однако, используя функции assign или subs можно сделать это решение доступным. Например, используем такую конструкцию:
Теперь мы можем воспользоваться полученной зависимостью N(t) и построить график ее:
Этот график, который читатель может просмотреть сам, описывает хорошо известным апериодическим экспоненциальный закон уменьшения числа атомов вещества в ходе его радиоактивного распада. Подобные зависимости, кстати, характерны для напряжения на конденсаторе С при его разряде через резистор R, для тока в LA-цепи и для многих простых физических явлений, описывающихся дифференциальным уравнением первого порядка.
7.1.3. Модели популяций Мальтуса и Ферхюльса-Пирла
Еще одним классическим примером применения дифференциального уравнения первого порядка является давно известная и довольно грубая модель популяции Мальтуса. Не вдаваясь в хорошо известное описание этой модели, отметим, что она описывает численность особей или их биомассу x(t) в любой момент времени (для момента времени х(0)=N) Эта зависимость характеризуется коэффициентами рождаемости α и смертности β. При этом вводится их разность k=α-β.
Представим задание дифференциального уравнения динамики популяций по модели Мальтуса и его решение в аналитическом виде:
dsol1 := x(t) = Ne (k1)
Нетрудно заметить, что решение этого уравнения аналогично решению дифференциального уравнения радиоактивного распада и описывается также экспоненциальной функций. Однако, в зависимости от того, какой фактор (рождаемость или смертность) преобладает наблюдается либо экспоненциальный рост, либо экспоненциальный спад биомассы популяций.
Более правдоподобную модель популяций предложили Ферхюльст и Пирл. Эта модель учитывает (коэффициентом внутривидовую конкуренцию и позволяет учесть приближение популяций к некоторому состоянию равновесия. На рис. 7.1 представлено дифференциальное уравнение динамики популяций Ферхюльста-Пирла. Решения приведены в общем виде, а также для k=g= k/g=1 и разных x(0)=1, 0.5 и 2.
Рис. 7.1. Моделирование популяций по модели Ферхюльста и Пирла
Поведение системы зависит от соотношения k/g и x(0)=N. При их равенстве количество биомассы популяции не меняется. При N>k/g биомасса экспоненциально уменьшается, приближаясь к значению k/g, а при N (n) =f(x, у, у’, y», …, y( n-1) ),
Теперь решение этого уравнения можно свести к решению системы ОДУ:
В таком виде ДУ n-го порядка может решаться стандартными средствами решения систем ОДУ, входящими в большинство математических систем.
7.1.6. Решение задачи на полет камня
В качестве примера аналитического решения системы дифференциальных уравнений рассмотрим постановку типичной физической задачи моделирования «Бросок камня», позволяющую описать полет камня, брошенного под углом к горизонту.
Модель должна позволять:
Вычислять положение камня в любой момент времени.
Масса камня, начальные координаты, начальная скорость и угол броска мяча.
На основе содержательной модели разрабатывается концептуальная формулировка задачи моделирования. Применительно к нашей задаче движение камня может быть описано в соответствии с законами классической механики Ньютона.
Гипотезы, принятые для модели:
• камень будем считать материальной точкой массой m, положение которой совпадает с центром масс камня;
• движение происходит в поле силы тяжести с постоянным ускорением свободного падения g и описывается уравнениями классической механики Ньютона;
• движение камня происходит в одной плоскости, перпендикулярной поверхность Земли;
• сопротивлением воздуха на первых порах пренебрегаем.
В качестве параметров движения будем использовать координаты (х, у) и скорость v(vx, vy) центра масс камня.
Концептуальная постановка задачи на основе принятых гипотез заключается в определении закона движения материальной точки массой m под действием силы тяжести, если известны начальные координаты точки х0 и ее начальная скорость v0 и угол броска α0.
Таким образом, модель является простой — объект, как материальная точка, не имеет внутренней структуры. Учитывая типичные скорости и высоту броска камня, можно считать постоянным ускорение свободного падения. Переход от трехмерных координат к плоскости значительно упрощает решение задачи. Он вполне допустим, если камень не подкручивается при броске. Пренебрежение сопротивлением воздуха, как будет показано далее, приводит к значительной систематической ошибке результатов моделирования.
Теперь перейдем к составлению математической модели объекта — совокупности математических соотношений, описывающих его поведение и свойства. Из законов и определяющих выражений предметной дисциплины формируются уравнения модели.
По оси x на камень не действуют никакие силы, по оси y — действует сила тяжести. Согласно законам Ньютона имеем уравнения движения по оси x и оси y.
при следующих начальных условиях
Надо найти зависимости x(t), y(y), vx(r), vy(t).
Математическая постановка решения задачи в нашем случае соответствует решению задачи Коши для системы обыкновенных дифференциальных уравнений с заданными начальными условиями. Известно, что решение задачи Коши существует и что оно единственное. Количество искомых переменных равно количеству дифференциальных уравнений. Таким образом, математическая модель корректна.
Решение этой задачи есть в любом учебнике физики. Тем не менее, выполним его средствами системы Maple. Из (7.2) запишем систему ОДУ первого порядка:
После интегрирования получим:
Определив константы интегрирования из начальных условий, окончательно запишем:
Из аналитического решения вытекает, что полет камня при отсутствии сопротивления воздуха происходит строго по параболической траектории, причем она на участках полета камня вверх и вниз симметрична. Необходимые для расчета уравнения заданы в параметрической форме — как зависимости от времени, что, кстати говоря, облегчает моделирование по ним полета камня. Немного позже мы решим эту задачу, используя средства Maple 9.5 для решения систем дифференциальных уравнений.
7.1.7. Классификация дифференциальных уравнений
Дифференциальные уравнения могут быть самого разного вида. На рис. 7.2 представлен раздел справки Maple 9.5 с классификацией дифференциальных уравнений. В ней представлено:
• 20 дифференциальных уравнений первого порядка;
• 25 дифференциальных уравнений второго порядка;
• 6 типов дифференциальных уравнений высшего порядка;
• основные функции решения дифференциальных уравнений.
Рис. 7.2. Классификация дифференциальных уравнений
Эта классификация охватывает большую часть классических дифференциальных уравнений, которые используются в математике и в математической физике. Следует отметить, что речь не идет об отдельных функциях по решению таких уравнений частного вида, а о примерах составления соответствующих уравнений и решении их с помощью небольшого числа функций системы Maple 9.5.
В качестве примера работы с классификатором выберем решение дифференциального уравнения Бернулли. Для этого активизируем на рис. 7.2 гиперссылку с его именем — Bernoulli. Появится окно справки по этому уравнению, показанное на рис. 7.3 с открытой позицией меню Edit.
Рис. 7.3. Окно справки по решению дифференциального уравнения Бернулли
С помощью команды Copy Examples в позиции Edit меню можно перенести примеры решения с окна справки в буфер Clipboard операционной системы Windows. После этого командой Paste в меню Edit окна документа можно перенести примеры в текущий документ — желательно (но не обязательно) новый. Теперь можно наблюдать решение выбранного дифференциального уравнения — рис. 7.4.
Рис. 7.4. Пример решения дифференциального уравнения Бернулли из справки
Возможность выбора и решения с полсотни классических дифференциальных уравнений различного типа дает системе Maple 9.5 преимущества, которые по достоинству оценят пользователи, заинтересованные в знакомстве с такими уравнениями и в их использовании.
В Maple 9.5 средства решения дифференциальных уравнений подверглись значительной переработке. Введены новые методы решения для дифференциальных уравнений Абеля, Риккати и Матье, новые методы инициализации и решения уравнений с кусочными функциями, улучшены алгоритмы решения численными методами. Детальное описание этих новинок можно найти в справке по разделу What’s New…. Это относится и к версии Maple 10.
7.1.8. Функция решения дифференциальных уравнений dsolve
Maple позволяет решать одиночные дифференциальные уравнения и системы дифференциальных уравнений как аналитически, так и в численном виде. Разработчиками системы объявлено о существенном расширении средств решения дифференциальных уравнений и о повышении их надежности в смысле нахождения решений для большинства классов дифференциальных уравнений.
Для решения системы простых дифференциальных уравнений (задача Коши) используется функция dsolve в разных формах записи:
Здесь ODE — одно обыкновенное дифференциальное уравнение или система из дифференциальных уравнений первого порядка с указанием начальных условий, у(х) —функция одной переменной, Ics — выражение, задающее начальные условия, —множество дифференциальных уравнений, — множество неопределенных функций, extra_argument —опция, задающая тип решения.
Параметр extra_argument задает класс решаемых уравнений. Отметим основные значения этого параметра:
• exact — аналитическое решение (принято по умолчанию);
• explicit — решение в явном виде;
• system — решение системы дифференциальных уравнений;
• ICs — решение системы дифференциальных уравнений с заданными начальными условиями;
• formal series — решение в форме степенного многочлена;
• integral transform — решение на основе интегральных преобразований Лапласа, Фурье и др.;
• series — решение в виде ряда с порядком, указываемым значением переменной Order;
• numeric — решение в численном виде.
Возможны и другие опции, подробное описание которых выходит за рамки данной книги. Его можно найти в справке по этой функции, вызываемой командой ?dsolve.
Для решения задачи Коши в параметры dsolve надо включать начальные условия, а при решении краевых задач — краевые условия. Если Maple способна найти решение при числе начальных или краевых условий меньше порядка системы, то в решении будут появляться неопределенные константы вида _С1, _С2 и т.д. Они же могут быть при аналитическом решении системы, когда начальные условия не заданы. Если решение найдено в неявном виде, то в нем появится параметр _Т. По умолчанию функция dsolve автоматически выбирает наиболее подходящий метод решения дифференциальных уравнений. Однако в параметрах функции dsolve в квадратных скобках можно указать предпочтительный метод решения дифференциальных уравнений. Допустимы следующие методы:
[quadrature, linear, Bernoulli, separable, inverse_linear, homogeneous, Chini, lin_sym, exact, Abel, pot_sym ]
Более полную информацию о каждом методе можно получить, используя команду ?dsolve,method и указав в ней конкретный метод. Например, команда ?dsolve,linear вызовет появление страницы справочной системы с подробным описанием линейного метода решения дифференциальных уравнений.
7.1.9. Уровни решения дифференциальных уравнений
Решение дифференциальных уравнений может сопровождаться различными комментариями. Команда
где n — целое число от 0 до 5 управляет уровнями детальности вывода. По умолчанию задано n = 0. Значение n = 5 дает максимально детальный вывод.
Производные при записи дифференциальных уравнений могут задаваться функцией diff или оператором дифференцирования D. Выражение sysODE должно иметь структуру множества и содержать помимо самой системы уравнений их начальные условия.
Читателю, всерьез интересующемуся проблематикой решения линейных дифференциальных уравнений, стоит внимательно просмотреть разделы справки по ним и ознакомиться с демонстрационным файлом linearoade.mws, содержащим примеры решения таких уравнений в закрытой форме.
7.2. Примеры решения дифференциальных уравнений
7.2.1. Примеры аналитического решение ОДУ первого порядка
Отвлекшись от физики, приведем несколько примеров на составление и решение дифференциальных уравнений первого порядка в аналитическом виде (файл dea):
ln(sin(x)) — ln(у(x)) + _C1 = 0
Разумеется, приведенными примерами далеко не исчерпываются возможности аналитического решения дифференциальных уравнений.
7.2.2. Полет тела, брошенного вверх
Из приведенных выше примеров видно, что для задания производной используется ранее рассмотренная функция diff. С помощью символа $ в ней можно задать производную более высокого порядка.
В соответствии со вторым законом Ньютона многие физические явления, связанные с движением объектов, описываются дифференциальными уравнениями второго порядка. Ниже дан пример задания и решения такого уравнения (файл
dem), описывающего движение тела, брошенного вверх на высоте h0 со скоростью v0 при ускорении свободного падения g:
Итак, получено общее уравнение для временной зависимости высоты тела h(t). Разумеется, ее можно конкретизировать, например, для случая, когда g=9,8, h0=10 и v0=100:
Зависимость высоты тела от времени h(t) представлена на рис. 7.5. Нетрудно заметить, что высота полета тела вначале растет и достигнув максимума начинает снижаться. Оговоримся, что сопротивление воздуха в данном примере не учитывается, что позволяет считать задачу линейной. Полученное с помощью Maple 9.5 для этого случая решение совпадает с полученным вручную в примере, описанном в разделе 7.1.3.
Рис. 7.5. Зависимость высоты полета тела от времени h(t)
7.2.3. Поведение идеального гармонического осциллятора
Еще одним классическим применением дифференциальных уравнений второго порядка является решение уравнение идеального гармонического осциллятора (файл deio):
у(t) = _C1 sin(ω) + _C2 cos(ω)
График решения этого уравнения (рис. 7.6) представляет хорошо известную синусоидальную функцию. Интересно, что амплитуда колебаний в общем случае отлична от 1 и зависит от значения у(0) — при у(0)=0 она равна 1 (в нашем случае синусоида начинается со значение у(0)=-1). Подобным осциллятором может быть LC-контур или механический маятник без потерь.
Рис. 7.6. Решение дифференциального уравнения идеального осциллятора
7.2.4. Дополнительные примеры решения дифференциальных уравнений второго порядка
Ниже представлено решение еще двух дифференциальных уравнений второго порядка в аналитическом виде (de2a):
у(x) = -½sin(x) + ½cos(x) + e x _C1 + _C2
Ряд примеров на применение дифференциальных уравнений второго порядка при решении практических математических и физических задач вы найдете в главе 11.
7.2.5. Решение систем дифференциальных уравнений
Функция dsolve позволяет также решать системы дифференциальных уравнений. Для этого она записывается в виде
dsolve(ODE_sys, optional_1, optional_2. )
Здесь ODE_sys — список дифференциальных уравнений, образующих систему, остальные параметры опциональные и задаются по мере необходимости. Они могут задавать начальные условия, явно представлять искомые зависимости, выбирать метод решения и т.д. Детали задания опциональных параметров можно найти в справке.
На рис. 7.7 представлено решение системы из двух дифференциальных уравнений различными методами — в явном виде, в виде разложения в ряд и с использованием преобразования Лапласа. Здесь следует отметить, что решение в виде ряда является приближенным. Поэтому полученные в данном случае аналитические выражения отличаются от явного решения и решения с применением преобразования Лапласа.
Рис. 7.7. Решение системы из двух дифференциальных уравнений различными методами
Следует отметить, что, несмотря на обширные возможности Maple в области аналитического решения дифференциальных уравнений, оно возможно далеко не всегда. Поэтому, если не удается получить такое решение, полезно попытаться найти решение в численном виде. Практически полезные примеры решения дифференциальных уравнений, в том числе с постоянными граничными условиями, вы найдете в Главе 11.
7.2.6. Модель Стритера-Фелпса для динамики кислорода в воде
В качестве еще одного примера решении системы из двух дифференциальных уравнений рассмотрим модель Стритера-Фелпса, предложенную для описания динамики содержания растворенного в воде кислорода. Описание этой модели можно найти в [41]. Ниже представлено задание этой модели в виде системы из двух дифференциальных уравнений и их аналитическое решение (файл demp):
Здесь: x1(t) — концентрация в воде растворенного кислорода в момент времени t; x2(t) — концентрация биохимического потребления кислорода (БПК), С — концентрация насыщения воды кислородом, K1 — постоянная скорости аэрации, K2 — постоянная скорости уменьшения (БПК), a — начальное значение x1(t) и b — начальное значение х2(t) при t=0.
В данном случае получены два варианта аналитического решения — основное и упрощенное с помощью функции simplify. Читатель может самостоятельно построить графики зависимостей x1(t) и x2(t).
7.3. Специальные средства решения дифференциальных уравнений
7.3.1. Численное решение дифференциальных уравнений
К сожалению, аналитического решения в общем случае нелинейные дифференциальные уравнения не имеют. Поэтому их приходится решать численными методами. Они удобны и в том случае, когда решение надо представить числами или, к примеру, построить график решения. Поясним принципы численного решения.
Для этого вернемся к дифференциальному уравнению (7.1). Заменим приращение dx на малое, но конечное приращение dx=h. Тогда приращение dy будет равно
Если, к примеру, известно начальное значение у=у0, то новое значение у будет равно
Распространяя этот подход на последующие шаги решения получим конечно-разностную формулу для решение приведенного уравнения в виде:
Эта формула известна как формула простого метода Эйлера первого порядка для решения дифференциального уравнения (7.1). Можно предположить (так оно и есть), что столь простой подход дает большую ошибку — отбрасываемый член порядка O(h 2 ). Тем не менее, физическая и математическая прозрачность данного метода привела к тому, что он широко применяется на практике.
Существует множество более совершенных методов решения дифференциальных уравнений, например, усовершенствованный метод Эйлера, метод трапеций, метод Рунге-Кутта, метод Рунге-Кутта-Фельберга и др. Ряд таких методов реализован в системе Maple и может использоваться при численном решении дифференциальных уравнений и систем с ними.
Для решения дифференциальных уравнений в численном виде в Maple используется та же функция dsolve с параметром numeric или type=numeric. При этом решение возвращается в виде специальной процедуры, по умолчанию реализующей широко известный метод решения дифференциальных уравнений Рунге-Кутта-Фельберга порядков 4 и 5 (в зависимости от условий адаптации решения к скорости его изменения). Эта процедура называется rkf45 и символически выводится (без тела) при попытке решения заданной системы дифференциальных уравнений. Последнее достаточно наглядно иллюстрирует рис. 7.8.
Рис. 7.8. Решение системы дифференциальных уравнений численным методом rkf45 с выводом графика решения
Указанная процедура возвращает особый тип данных, позволяющих найти решение в любой точке или построить график решения (или решений). Для графического отображения Maple 9.5 предлагает ряд возможностей и одна из них представлена на рис. 7.8 — см. последнюю строку ввода. При этом используется функция plot[odeplot] из пакета odeplot, предназначенного для визуализации решений дифференциальных уравнений. Можно воспользоваться и функцией plot, выделив тем или иным способом (примеры уже приводились) нужное решение.
В список параметров функции dsolve можно явным образом включить указание на метод решения, например опция method=dverk78 задает решение непрерывным методом Рунге-Кутта порядка 7 или 8. Вообще говоря, численное решение дифференциальных уравнений можно производить одним из следующих методов:
• classical — одна из восьми версий классического метода, используемого по умолчанию;
• rkf45 — метод Рунге-Кутта 4 или 5 порядка, модифицированный Фелбергом;
• dverk78 — непрерывный метод Рунге-Кутта порядка 7 или 8;
• gear — одна из двух версий одношагового экстраполяционного метода Гира;
• mgear — одна из трех версий многошагового экстраполяционного метода Гира;
• lsode — одна из восьми версий Ливенморского решателя жестких дифференциальных уравнений;
• taylorseries — метод разложения в ряд Тейлора.
Обилие используемых методов расширяет возможности решения дифференциальных уравнений в численном виде. Большинство пользователей Maple вполне устроит автоматический выбор метода решения по умолчанию. Однако в сложных случаях, или когда заведомо желателен тот или иной конкретный алгоритм численного решения, возможна прямая установка одного из указанных выше методов.
С помощью параметра ‘abserr’=aerr можно задать величину абсолютной погрешности решения, а с помощью ‘minerr’=mine — минимальную величину погрешности. В большинстве случаев эти величины, заданные по умолчанию, оказываются приемлемыми для расчетов.
Maple реализует адаптируемые к ходу решения методы, при которых шаг решения h автоматически меняется, подстраиваясь под условия решения. Так, если прогнозируемая погрешность решения становится больше заданной, шаг решения автоматически уменьшается. Более того, система Maple способна автоматически выбирать наиболее подходящий для решаемой задачи метод решения.
Еще один пример решения системы дифференциальных уравнений представлен на рис. 7.9. Здесь на одном графике представлены зависимости y(x) и z(x) представляющие полное решение заданной системы. При этом процедура имеет особый вид listprocedure и для преобразования списка выходных данных в векторы решения Y и Z используется функция subs.
Рис. 7.9. Решение системы дифференциальных уравнений численным методом с выводом всех графиков искомых зависимостей
Для решения достаточно сложных задач полезны специальная структура DESol для решения дифференциальных уравнений и инструментальный пакет SEtools, содержащий самые изысканные средства для графической визуализации результатов решения дифференциальных уравнений. Эти средства мы более подробно рассмотрим в дальнейшем.
При решении некоторых задач физики и радиоэлектроники выбираемый по умолчанию шаг изменения аргумента х или t-h может привести к неустойчивости решения. Неустойчивости можно избежать рядом способов. Можно, например, нормировать уравнения, избегая необходимости использования малого шага. А можно задать заведомо малый шаг. Например, при method=classical для этого служит параметр stepsize=h.
7.3.2. Дифференциальные уравнения с кусочными функциями
Состоящие из ряда кусков кусочные функции широко используются при математическом моделировании различных физических объектов и систем. В основе такого моделирования обычно лежит решение дифференциальных уравнений, описывающих поведение объектов и систем. Покажем возможность применения кусочных функций для решения дифференциальных уравнений.
Ниже представлено задание дифференциального уравнения первого порядка, содержащего кусочную функцию:
Нетрудно заметить, что результат получен также в форме кусочной функции, полностью определяющей решение на трех интервалах изменения х.
Приведем пример решения дифференциального уравнения второго порядка с кусочной функцией:
> eq := diff(y(х), х$2) + x*diff(y(x), х) + y(х) = piecewise(х > 0, 1);
В заключении этого раздела приведем пример решения нелинейного дифференциального уравнения Риккати с кусочной функцией:
В ряде случаев желательна проверка решения дифференциальных уравнений. Ниже показано, как она делается для последнего уравнения:
Как видно из приведенных достаточно простых и наглядных примеров, результаты решения дифференциальных уравнений с кусочными функциями могут быть довольно громоздкими. Это, однако, не мешает эффективному применению функций этого класса.
7.3.3. Структура неявного представления дифференциальных уравнений — DESol
В ряде случаев иметь явное представление дифференциальных уравнений нецелесообразно. Для неявного их представления в Maple введена специальная структура
где exprs — выражение для исходной системы дифференциальных уравнений, vars — заданный в виде опции список переменных (или одна переменная).
Структура DESol образует некоторый объект, дающий представление о дифференциальных уравнениях, чем-то напоминающее RootOf. С этим объектом можно обращаться как с функцией, то есть его можно интегрировать, дифференцировать, получать разложение в ряд и вычислять численными методами.
На рис. 7.10 показаны примеры применения структуры DESol.
Рис. 7.10. Примеры применения структуры DESol
Обратите внимание на последний пример — в нем структура DESol использована для получения решения дифференциального уравнения в виде степенного ряда.
7.4. Инструментальный пакет решения дифференциальных уравнений DEtools
7.4.1. Средства пакета DEtools
Решение дифференциальных уравнений самых различных типов — одно из достоинств системы Maple. Пакет DEtools предоставляет ряд полезных функций для решения дифференциальных уравнений и систем с такими уравнениями. Для загрузки пакета используется команда:
Этот пакет дает самые изысканные средства для аналитического и численного решения дифференциальных уравнений и систем с ними. По сравнению с версией Maple V R5 число функций данного пакета в Maple 9.5 возросло в несколько раз. Многие графические функции пакета DEtools были уже описаны. Ниже приводятся полные наименования тех функций, которые есть во всех реализациях системы Maple:
• DEnormal — возвращает нормализованную форму дифференциальных уравнений;
• DEplot — строит графики решения дифференциальных уравнений;
• DEplot3d — строит трехмерные графики для решения систем дифференциальных уравнений;
• Dchangevar — изменение переменных в дифференциальных уравнениях;
• PDEchangecoords — изменение координатных систем для дифференциальных уравнений в частных производных;
• PDEplot — построение графиков решения дифференциальных уравнений в частных производных;
• autonomous — тестирует дифференциальные уравнения на автономность;
• convertAlg — возвращает список коэффициентов для дифференциальных уравнений;
• convertsys — преобразует систему дифференциальных уравнений в систему одиночных уравнений;
• dfieldplot — строит график решения дифференциальных уравнений в виде векторного поля;
• indicialeq — преобразует дифференциальные уравнения в полиномиальные;
• phaseportrait — строит график решения дифференциальных уравнений в форме фазового портрета;
• reduceOrder — понижает порядок дифференциальных уравнений;
• regularsp — вычисляет регулярные особые точки для дифференциальных уравнений второго порядка;
• translate — преобразует дифференциальные уравнения в список операторов;
• untranslate — преобразует список операторов в дифференциальные уравнения;
• varparam — находит общее решение дифференциальных уравнений методом вариации параметров.
Применение этих функций гарантирует совместимость документов реализаций Maple R5, 6 и 9.
7.4.2. Консультант по дифференциальным уравнениям
Для выявления свойств дифференциальных уравнений в Maple 9.5 в составе пакета DEtools имеется консультант (адвизор), вводимый следующей функцией:
odeadvisor(ODE) odeadvisor(ODE, y(х), [type1, type2. ], help)
Здесь ODE — одиночное дифференциальное уравнение, y(x) — неопределенная (определяемая функция), type1, type2, … — опционально заданные множество типов, которые классифицируются и help — опционально заданное указание на вывод страницы справки по методу решения.
Примеры работы с классификатором представлены ниже:
Как решать дифференциальные уравнения
wikiHow работает по принципу вики, а это значит, что многие наши статьи написаны несколькими авторами. При создании этой статьи над ее редактированием и улучшением работали, в том числе анонимно, 29 человек(а).
Количество просмотров этой статьи: 107 360.
В этой статье:
Дифференциальное уравнение — это уравнение, в которое входят функция и одна или несколько ее производных. В большинстве практических задач функции представляют собой физические величины, производные соответствуют скоростям изменения этих величин, а уравнение определяет связь между ними.
В данной статье рассмотрены методы решения некоторых типов обыкновенных дифференциальных уравнений, решения которых могут быть записаны в виде элементарных функций, то есть полиномиальных, экспоненциальных, логарифмических и тригонометрических, а также обратных им функций. Многие из этих уравнений встречаются в реальной жизни, хотя большинство других дифференциальных уравнений нельзя решить данными методами, и для них ответ записывается в виде специальных функций или степенных рядов, либо находится численными методами.
Для понимания данной статьи необходимо владеть дифференциальным и интегральным исчислением, а также иметь некоторое представление о частных производных. Рекомендуется также знать основы линейной алгебры в применении к дифференциальным уравнениям, особенно к дифференциальным уравнениям второго порядка, хотя для их решения достаточно знания дифференциального и интегрального исчисления.
Предварительные сведения
- Дифференциальные уравнения имеют обширную классификацию. В настоящей статье рассказывается об обыкновенных дифференциальных уравнениях, то есть об уравнениях, в которые входит функция одной переменной и ее производные. Обыкновенные дифференциальные уравнения намного легче понять и решить, чем дифференциальные уравнения в частных производных, в которые входят функции нескольких переменных. В данной статье не рассматриваются дифференциальные уравнения в частных производных, поскольку методы решения этих уравнений обычно определяются их конкретным видом.
- Ниже приведены несколько примеров обыкновенных дифференциальных уравнений.
- d y d x = k y y><\mathrm
x>>=ky> - d 2 x d t 2 + k x = 0 ^x><\mathrm
t^>>+kx=0>
- ∂ 2 f ∂ x 2 + ∂ 2 f ∂ y 2 = 0 <\displaystyle <\frac <\partial ^f><\partial x^>>+<\frac <\partial ^f><\partial y^>>=0>
- ∂ u ∂ t − α ∂ 2 u ∂ x 2 = 0 <\partial t>>-\alpha <\frac <\partial ^u><\partial x^>>=0>
- Например, приведенное ниже уравнение имеет третий порядок и вторую степень.
- ( d 3 y d x 3 ) 2 + d y d x = 0 ^y><\mathrm
x^>>\right)^+ y><\mathrm x>>=0>
- Ниже приведены несколько примеров линейных дифференциальных уравнений.
- d y d x + p ( x ) y = q ( x ) y><\mathrm
x>>+p(x)y=q(x)> - x 2 d 2 y d x 2 + a x d y d x + b y = 0 <\displaystyle x^^y><\mathrm
x^>>+ax y><\mathrm x>>+by=0>
- d 2 θ d t 2 + g l sin θ = 0 ^\theta ><\mathrm
t^>>+>\sin \theta =0> - d 2 x d t 2 + ( d x d t ) 2 + t x 2 = 0 ^x><\mathrm
t^>>+\left( x><\mathrm t>>\right)^+tx^=0>
- Например, в данной статье будет рассмотрено решение приведенного ниже уравнения. Это линейное дифференциальное уравнение второго порядка. Его общее решение содержит две произвольные постоянные. Для нахождения этих постоянных необходимо знать начальные условия при x ( 0 ) и x ′ ( 0 ) . Обычно начальные условия задаются в точке x = 0 , , хотя это и не обязательно. В данной статье будет рассмотрено также, как найти частные решения при заданных начальных условиях.
- d 2 x d t 2 + k 2 x = 0 ^x><\mathrm
t^>>+k^x=0> - x ( t ) = c 1 cos k x + c 2 sin k x \cos kx+c_\sin kx>
Часть 1 из 2:
Уравнения первого порядка
Линейные уравнения первого порядка. В данном разделе рассмотрены методы решения линейных дифференциальных уравнений первого порядка в общих и специальных случаях, когда некоторые члены равны нулю. Предположим, что y = y ( x ) , p ( x ) и q ( x ) являются функциями x .
- y ( x ) = ∫ q ( x ) d x x>
q ( x ) = 0. Используем метод разделения переменных. При этом различные переменные переносятся в разные стороны уравнения. Например, можно перенести все члены с y в одну, а все члены с x в другую сторону уравнения. Можно переносить также члены d x x> и d y y> , которые входят в выражения производных, однако следует помнить, что это всего лишь условное обозначение, которое удобно при дифференцировании сложной функции. Обсуждение этих членов, которые называются дифференциалами, выходит за рамки данной статьи.
- Во-первых, необходимо перенести переменные по разные стороны знака равенства.
- 1 y d y = − p ( x ) d x >\mathrm y=-p(x)\mathrm x>
- ln y = ∫ − p ( x ) d x <\displaystyle \ln y=\int -p(x)\mathrm x>
- y ( x ) = e − ∫ p ( x ) d x <\displaystyle y(x)=e^<-\int p(x)\mathrm x>>
- d y d x − 2 y sin x = 0 <\displaystyle <\frac <\mathrm y><\mathrm x>>-2y\sin x=0>
- 1 2 y d y = sin x d x 1 2 ln y = − cos x + C ln y = − 2 cos x + C y ( x ) = C e − 2 cos x >\mathrm y&=\sin x\mathrm x\\>\ln y&=-\cos x+C\\\ln y&=-2\cos x+C\\y(x)&=Ce^\end>>
p ( x ) ≠ 0 , q ( x ) ≠ 0. Для нахождения общего решения мы ввели интегрирующий множитель μ ( x ) в виде функции от x , чтобы свести левую часть к общей производной и таким образом решить уравнение.
- Умножим обе стороны на μ ( x )
- μ d y d x + μ p y = μ q y><\mathrm
x>>+\mu py=\mu q>
- d d x ( μ y ) = d μ d x y + μ d y d x = μ d y d x + μ p y ><\mathrm
x>>(\mu y)= \mu ><\mathrm x>>y+\mu y><\mathrm x>>=\mu y><\mathrm x>>+\mu py>
- μ ( x ) = e ∫ p ( x ) d x x>>
- t d y d t + 2 y = t 2 , y ( 2 ) = 3 <\displaystyle ty><\mathrm
t>>+2y=t^,\quad y(2)=3> - d y d t + 2 t y = t y><\mathrm
t>>+<\frac >y=t> - μ ( x ) = e ∫ p ( t ) d t = e 2 ln t = t 2 t>=e^<2\ln t>=t^>
- d d t ( t 2 y ) = t 3 t 2 y = 1 4 t 4 + C y ( t ) = 1 4 t 2 + C t 2 ><\mathrm
t>>(t^y)&=t^\\t^y&=>t^+C\\y(t)&=>t^+ >\end>> - 3 = y ( 2 ) = 1 + C 4 , C = 8 <\displaystyle 3=y(2)=1+>,\quad C=8>
- y ( t ) = 1 4 t 2 + 8 t 2 <\displaystyle y(t)=>t^+
>>
Нелинейные уравнения первого порядка. В данном разделе рассмотрены методы решения некоторых нелинейных дифференциальных уравнений первого порядка. Хотя и не существует общего метода решения таких уравнений, некоторые из них можно решить с помощью приведенных ниже методов.
- ∫ d y h ( y ) = ∫ g ( x ) d x y>>=\int g(x)\mathrm x>
- Пример 1.3.
- d y d x = x 3 y ( 1 + x 4 ) <\displaystyle <\frac <\mathrm y><\mathrm x>>=>
>> - ∫ y d y = ∫ x 3 1 + x 4 d x 1 2 y 2 = 1 4 ln ( 1 + x 4 ) + C y ( x ) = 1 2 ln ( 1 + x 4 ) + C \int y\mathrm y&=\int >>>\mathrm x\\>y^&=>\ln(1+x^)+C\\y(x)&=>\ln(1+x^)+C\end>>
d y d x = g ( x , y ) h ( x , y ) . y> <\mathrm
x>>=>.> Предположим, что g ( x , y ) и h ( x , y ) являются функциями x и y . Тогда однородным дифференциальным уравнением называется такое уравнение, в котором g и h являются однородными функциями одинаковой степени. То есть функции должны удовлетворять условию g ( α x , α y ) = α k g ( x , y ) , g(x,y),> где k называется степенью однородности. Любое однородное дифференциальное уравнение можно путем подходящей замены переменных ( v = y / x или v = x / y ) преобразовать в уравнение с разделяющимися переменными. - Пример 1.4. Приведенное выше описание однородности может показаться неясным. Рассмотрим это понятие на примере.
- d y d x = y 3 − x 3 y 2 x y><\mathrm
x>>=-x^>x>>> - Для начала следует отметить, что это уравнение нелинейно относительно y . Также мы видим, что в данном случае нельзя разделить переменные. Вместе с тем это дифференциальное уравнение является однородным, поскольку и числитель, и знаменатель однородны со степенью 3. Следовательно, мы можем произвести замену переменных v = y / x .
- d y d x = y x − x 2 y 2 = v − 1 v 2 y><\mathrm
x>>=>->>>=v->>> - y = v x , d y d x = d v d x x + v y><\mathrm
x>>= v><\mathrm x>>x+v> - d v d x x = − 1 v 2 . v><\mathrm
x>>x=->>.> В результате мы имеем уравнение для v с разделяющимися переменными. - v ( x ) = − 3 ln x + C 3 <\displaystyle v(x)=<\sqrt[]<-3\ln x+C>>>
- y ( x ) = x − 3 ln x + C 3 <\displaystyle y(x)=x<\sqrt[]<-3\ln x+C>>>
d y d x = p ( x ) y + q ( x ) y n . y> <\mathrm
x>>=p(x)y+q(x)y^.> Это дифференциальное уравнение Бернулли — особый вид нелинейного уравнения первой степени, решение которого может быть записано с помощью элементарных функций. - Умножим обе стороны уравнения на ( 1 − n ) y − n > :
- ( 1 − n ) y − n d y d x = p ( x ) ( 1 − n ) y 1 − n + ( 1 − n ) q ( x ) y><\mathrm
x>>=p(x)(1-n)y^+(1-n)q(x)>
- d y 1 − n d x = p ( x ) ( 1 − n ) y 1 − n + ( 1 − n ) q ( x ) <\displaystyle y^><\mathrm
x>>=p(x)(1-n)y^+(1-n)q(x)>
M ( x , y ) + N ( x , y ) d y d x = 0. y> <\mathrm
x>>=0.> Это уравнение в полных дифференциалах. Необходимо найти так называемую потенциальную функцию φ ( x , y ) , , которая удовлетворяет условию d φ d x = 0. \varphi > <\mathrm x>>=0.> - Для выполнения данного условия необходимо наличие полной производной. Полная производная учитывает зависимость от других переменных. Чтобы вычислить полную производную φ по x , мы предполагаем, что y может также зависеть от x .
- d φ d x = ∂ φ ∂ x + ∂ φ ∂ y d y d x \varphi ><\mathrm x>>=<\partial x>>+<\partial y>>y><\mathrm x>>>
- ∂ M ∂ y = ∂ N ∂ x <\partial y>>=<\partial x>>>
- φ ( x , y ) = ∫ M ( x , y ) d x = φ ~ ( x , y ) + c ( y ) x=>(x,y)+c(y)>
- N ( x , y ) = ∂ φ ∂ y = ∂ φ ~ ∂ y + d c d y <\displaystyle N(x,y)=<\partial y>>=<\frac <\partial >><\partial y>>+ c><\mathrm y>>>
- 3 x 2 + y 2 + 2 x y d y d x = 0 +y^+2xy y><\mathrm x>>=0>
- φ = ∫ ( 3 x 2 + y 2 ) d x = x 3 + x y 2 + c ( y ) ∂ φ ∂ y = N ( x , y ) = 2 x y + d c d y \varphi &=\int (3x^+y^)\mathrm x=x^+xy^+c(y)\\<\partial y>>&=N(x,y)=2xy+ c><\mathrm y>>\end>>
- d c d y = 0 , c ( y ) = C c><\mathrm y>>=0,\quad c(y)=C>
- x 3 + x y 2 = C <\displaystyle x^+xy^=C>
Часть 2 из 2:
Уравнения второго порядка
Однородные линейные дифференциальные уравнения с постоянными коэффициентами. Эти уравнения широко используются на практике, поэтому их решение имеет первоочередное значение. В данном случае речь идет не об однородных функциях, а о том, что в правой части уравнения стоит 0. В следующем разделе будет показано, как решаются соответствующие неоднородные дифференциальные уравнения. Ниже a и b являются константами.
- Решение будет иметь вид экспоненциальной функции e r x , ,> где r — постоянная, значение которой следует найти. Подставим эту функцию в уравнение и получим следующее выражение
- e r x ( r 2 + a r + b ) = 0 (r^+ar+b)=0>
- r 2 + a r + b = 0 <\displaystyle r^+ar+b=0>
- r ± = − a ± a 2 − 4 b 2 =<\frac <-a\pm <\sqrt >>>>
- W = | y 1 y 2 y 1 ′ y 2 ′ | y_&y_\\y_’&y_’\end>>
Перейдем теперь к рассмотрению нескольких конкретных примеров. Случай кратных корней характеристического уравнения рассмотрим чуть позже, в разделе о понижении порядка.
Два различных действительных корня. Если корни r ± > являются различными действительными числами, дифференциальное уравнение имеет следующее решение
Два комплексных корня. Из основной теоремы алгебры следует, что решения решения полиномиальных уравнений с действительными коэффициентами имеют корни, которые вещественны или образуют сопряженные пары. Следовательно, если комплексное число r = α + i β является корнем характеристического уравнения, тогда r ∗ = α − i β =\alpha -i\beta > также является корнем этого уравнения. Таким образом, можно записать решение в виде c 1 e ( α + i β ) x + c 2 e ( α − i β ) x , e^<(\alpha +i\beta )x>+c_e^<(\alpha -i\beta )x>,> однако это комплексное число, и оно нежелательно при решении практических задач.
- Вместо этого можно использовать формулу Эйлера e i x = cos x + i sin x =\cos x+i\sin x> , которая позволяет записать решение в виде тригонометрических функций:
- e α x ( c 1 cos β x + i c 1 sin β x + c 2 cos β x − i c 2 sin β x ) (c_\cos \beta x+ic_\sin \beta x+c_\cos \beta x-ic_\sin \beta x)>
- y ( x ) = e α x ( c 1 cos β x + c 2 sin β x ) (c_\cos \beta x+c_\sin \beta x)>
- d 2 x d t 2 + 3 d x d t + 10 x = 0 , x ( 0 ) = 1 , x ′ ( 0 ) = − 1 ^x><\mathrm
t^>>+3 x><\mathrm t>>+10x=0,\quad x(0)=1,\ x'(0)=-1> - r 2 + 3 r + 10 = 0 , r ± = − 3 ± 9 − 40 2 = − 3 2 ± 31 2 i <\displaystyle r^+3r+10=0,\quad r_<\pm >=>>>=->\pm >>i>
- x ( t ) = e − 3 t / 2 ( c 1 cos 31 2 t + c 2 sin 31 2 t ) \left(c_\cos >>t+c_\sin >>t\right)>
- x ( 0 ) = 1 = c 1 <\displaystyle x(0)=1=c_>
- x ′ ( t ) = − 3 2 e − 3 t / 2 ( c 1 cos 31 2 t + c 2 sin 31 2 t ) + e − 3 t / 2 ( − 31 2 c 1 sin 31 2 t + 31 2 c 2 cos 31 2 t ) x'(t)&=->e^\left(c_\cos >>t+c_\sin >>t\right)\\&+e^\left(->>c_\sin >>t+>>c_\cos >>t\right)\end>>
- x ′ ( 0 ) = − 1 = − 3 2 c 1 + 31 2 c 2 , c 2 = 1 31 <\displaystyle x'(0)=-1=->c_+>>c_,\quad c_=>>>
- x ( t ) = e − 3 t / 2 ( cos 31 2 t + 1 31 sin 31 2 t ) \left(\cos >>t+>>\sin >>t\right)>
Понижение порядка. Понижение порядка представляет собой метод решения дифференциальных уравнений в случае, когда известно одно линейно независимое решение. Данный метод заключается в понижении порядка уравнения на один, что позволяет решить уравнение методами, которые описаны в предыдущем разделе. Пусть известно решение y 1 ( x ) (x)> . Основная идея понижения порядка заключается в поиске решения в представленном ниже виде, где необходимо определить функцию v ( x ) , подстановке его в дифференциальное уравнение и нахождении v ( x ) . Рассмотрим, как можно использовать понижение порядка для решения дифференциального уравнения с постоянными коэффициентами и кратными корнями.
- Пусть характеристическое уравнение имеет кратные корни r . Предположим, что второе решение можно записать в виде y ( x ) = e r x v ( x ) v(x)> , и подставим его в дифференциальное уравнение. При этом большинство членов, за исключением слагаемого со второй производной функции v , сократятся.
- v ″ ( x ) e r x = 0 =0>
- d 2 y d x 2 + 8 d y d x + 16 y = 0 ^y><\mathrm
x^>>+8 y><\mathrm x>>+16y=0> - y = v ( x ) e − 4 x y ′ = v ′ ( x ) e − 4 x − 4 v ( x ) e − 4 x y ″ = v ″ ( x ) e − 4 x − 8 v ′ ( x ) e − 4 x + 16 v ( x ) e − 4 x y&=v(x)e^\\y’&=v'(x)e^-4v(x)e^\\y»&=v»(x)e^-8v'(x)e^+16v(x)e^\end>>
- v ″ e − 4 x − 8 v ′ e − 4 x + 16 v e − 4 x + 8 v ′ e − 4 x − 32 v e − 4 x + 16 v e − 4 x = 0 v»e^&-<\cancel <8v'e^>>+<\cancel <16ve^>>\\&+<\cancel <8v'e^>>-<\cancel <32ve^>>+<\cancel <16ve^>>=0\end>>
- v ( x ) = c 1 + c 2 x +c_x>
- y ( x ) = ( c 1 + c 2 x ) e r x +c_x)e^>
d 2 y d x 2 + p ( x ) d y d x + q ( x ) y = 0. ^y> <\mathrm
x^>>+p(x) y> <\mathrm x>>+q(x)y=0.> Понижение порядка применимо в том случае, если известно решение y 1 ( x ) (x)> , которое может быть найдено или дано в условии задачи. - Мы ищем решение в виде y ( x ) = v ( x ) y 1 ( x ) (x)> и подставляем его в данное уравнение:
- v ″ y 1 + 2 v ′ y 1 ′ + p ( x ) v ′ y 1 + v ( y 1 ″ + p ( x ) y 1 ′ + q ( x ) ) = 0 +2v’y_’+p(x)v’y_+v(y_»+p(x)y_’+q(x))=0>
- y 1 w ′ + ( 2 y 1 ′ + p ( x ) y 1 ) w = 0 <\displaystyle y_w'+(2y_'+p(x)y_)w=0>
- w ( x ) = exp ( ∫ ( 2 y 1 ′ ( x ) y 1 ( x ) + p ( x ) ) d x ) <\displaystyle w(x)=\exp \left(\int \left(<\frac <2y_'(x)>
>+p(x)\right)\mathrm x\right)> - v ( x ) = ∫ w ( x ) d x <\displaystyle v(x)=\int w(x)\mathrm x>
Уравнение Коши-Эйлера. Уравнение Коши-Эйлера является примером дифференциального уравнения второго порядка с переменными коэффициентами, которое имеет точные решения. Это уравнение применяется на практике, например для решения уравнения Лапласа в сферических координатах.
- Таким образом, можно попробовать искать решение в виде y ( x ) = x n , ,> где необходимо определить n , подобно тому, как мы искали решение в виде экспоненциальной функции для линейного дифференциального уравнения с постоянными коэффициентами. После дифференцирования и подстановки получаем
- x n ( n 2 + ( a − 1 ) n + b ) = 0 (n^+(a-1)n+b)=0>
- n ± = 1 − a ± ( a − 1 ) 2 − 4 b 2 =<\frac <1-a\pm <\sqrt <(a-1)^-4b>>>>>
Два различных действительных корня. Если корни n ± > действительны и различны, тогда решение дифференциального уравнения имеет следующий вид:
Два комплексных корня. Если характеристическое уравнение имеет корни n ± = α ± β i =\alpha \pm \beta i> , решением является комплексная функция.
- Чтобы преобразовать решение в действительную функцию, произведем замену переменных x = e t , ,> то есть t = ln x , и используем формулу Эйлера. Подобные действия выполнялись ранее при определении произвольных постоянных.
- y ( t ) = e α t ( c 1 e β i t + c 2 e − β i t ) (c_e^+c_e^)>
- y ( x ) = x α ( c 1 cos ( β ln x ) + c 2 sin ( β ln x ) ) (c_\cos(\beta \ln x)+c_\sin(\beta \ln x))>
Кратные корни. Чтобы получить второе линейно независимое решение, необходимо вновь провести понижение порядка.
- Требуется довольно много вычислений, но принцип остается тем же: мы подставляем y = v ( x ) y 1 > в уравнение, первым решением которого является y 1 > . После сокращений получается следующее уравнение:
- v ″ + 1 x v ′ = 0 >v’=0>
- y ( x ) = x n ( c 1 + c 2 ln x ) (c_+c_\ln x)>
Неоднородные линейные дифференциальные уравнения с постоянными коэффициентами. Неоднородные уравнения имеют вид L [ y ( x ) ] = f ( x ) , где f ( x ) — так называемый свободный член. Согласно теории дифференциальных уравнений, общее решение данного уравнения представляет собой суперпозицию частного решения y p ( x ) (x)> и дополнительного решения y c ( x ) . (x).> Однако в данном случае частное решение означает не решение, заданное начальными условиями, а скорее такое решение, которое обусловлено наличием неоднородности (свободным членом). Дополнительное решение — это решение соответствующего однородного уравнения, в котором f ( x ) = 0. Общее решение представляет собой суперпозицию этих двух решений, поскольку L [ y p + y c ] = L [ y p ] + L [ y c ] = f ( x ) +y_]=L[y_
]+L[y_]=f(x)> , а так как L [ y c ] = 0 , <\displaystyle L[y_]=0,> такая суперпозиция действительно является общим решением.
- Сравним члены в f ( x ) с членами в y c , ,> не обращая внимание на постоянные множители. Возможны три случая.
- Нет одинаковых членов. В этом случае частное решение y p > будет представлять собой линейную комбинацию членов из y p > и их линейно независимых производных.
- f ( x ) содержит член h ( x ) , который представляет собой произведение x n >и члена из y c , ,>где n является нулем или положительным целым числом, причем этот член соответствует отдельному корню характеристического уравнения. В этом случае y p > будет состоять из комбинации функции x n + 1 h ( x ) , h(x),> ее линейно независимых производных, а также других членов f ( x ) и их линейно независимых производных.
- f ( x ) содержит член h ( x ) , который представляет собой произведение x n >и члена из y c , ,>где n равно 0 или положительному целому числу, причем этот член соответствует кратному корню характеристического уравнения. В этом случае y p > представляет собой линейную комбинацию функции x n + s h ( x ) h(x)> (где s — кратность корня) и ее линейно независимых производных, а также других членов функции f ( x ) и ее линейно независимых производных.
- d 2 y d t 2 + 6 y = 2 e 3 t − cos 5 t ^y><\mathrm
t^>>+6y=2e^-\cos 5t> - y c ( t ) = c 1 cos 6 t + c 2 sin 6 t (t)=c_\cos >t+c_\sin >t>
- y p ( t ) = A e 3 t + B cos 5 t + C sin 5 t (t)=Ae^+B\cos 5t+C\sin 5t>
- 9 A e 3 t − 25 B cos 5 t − 25 C sin 5 t + 6 A e 3 t + 6 B cos 5 t + 6 C sin 5 t = 2 e 3 t − cos 5 t 9Ae^-25B\cos 5t&-25C\sin 5t+6Ae^\\&+6B\cos 5t+6C\sin 5t=2e^-\cos 5t\end>>
- < 9 A + 6 A = 2 , A = 2 15 − 25 B + 6 B = − 1 , B = 1 19 − 25 C + 6 C = 0 , C = 0 9A+6A=2,&A=<\dfrac >\\-25B+6B=-1,&B=<\dfrac >\\-25C+6C=0,&C=0\end>>
- y ( t ) = c 1 cos 6 t + c 2 sin 6 t + 2 15 e 3 t + 1 19 cos 5 t <\displaystyle y(t)=c_\cos >t+c_\sin >t+<\frac >e^+<\frac >\cos 5t>
Метод Лагранжа. Метод Лагранжа, или метод вариации произвольных постоянных, представляет собой более общий метод решения неоднородных дифференциальных уравнений, особенно в тех случаях, когда свободный член не содержит конечное число линейно независимых производных. Например, при свободных членах tan x или x − n > для нахождения частного решения необходимо использовать метод Лагранжа. Метод Лагранжа можно даже использовать для решения дифференциальных уравнений с переменными коэффициентами, хотя в этом случае, за исключением уравнения Коши-Эйлера, он применяется реже, поскольку дополнительное решение обычно не выражается через элементарные функции.
- Предположим, что решение имеет следующий вид. Его производная приведена во второй строке.
- y ( x ) = v 1 ( x ) y 1 ( x ) + v 2 ( x ) y 2 ( x ) (x)y_(x)+v_(x)y_(x)>
- y ′ = v 1 ′ y 1 + v 1 y 1 ′ + v 2 ′ y 2 + v 2 y 2 ′ <\displaystyle y'=v_'y_+v_y_'+v_'y_+v_y_'>
- v 1 ′ y 1 + v 2 ′ y 2 = 0 <\displaystyle v_'y_+v_'y_=0>
- y ′ = v 1 y 1 ′ + v 2 y 2 ′ <\displaystyle y'=v_y_'+v_y_'>
- y ″ = v 1 ′ y 1 ′ + v 1 y 1 ″ + v 2 ′ y 2 ′ + v 2 y 2 ″ <\displaystyle y''=v_'y_'+v_y_''+v_'y_'+v_y_''>
- v 1 ′ y 1 + v 2 ′ y 2 = 0 v 1 ′ y 1 ′ + v 2 ′ y 2 ′ = f ( x ) v_’y_+v_’y_&=0\\v_’y_’+v_’y_’&=f(x)\\\end>>
- ( v 1 ′ v 2 ′ ) = 1 W ( y 2 ′ − y 2 − y 1 ′ y 1 ) ( 0 f ( x ) ) v_’\\v_’\end>=<\frac ><\beginy_'&-y_\\-y_'&y_\end><\begin0\\f(x)\end>>
- v 1 ( x ) = − ∫ 1 W f ( x ) y 2 ( x ) d x <\displaystyle v_(x)=-\int <\frac >f(x)y_(x)\mathrm x>
- v 2 ( x ) = ∫ 1 W f ( x ) y 1 ( x ) d x <\displaystyle v_(x)=\int <\frac >f(x)y_(x)\mathrm x>
Дифференциальные уравнения первого порядка. Примеры решений.
Дифференциальные уравнения с разделяющимися переменнымиДифференциальные уравнения (ДУ). Эти два слова обычно приводят в ужас среднестатистического обывателя. Дифференциальные уравнения кажутся чем-то запредельным и трудным в освоении и многим студентам. Уууууу… дифференциальные уравнения, как бы мне всё это пережить?!
Такое мнение и такой настрой в корне неверен, потому что на самом деле ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ – ЭТО ПРОСТО И ДАЖЕ УВЛЕКАТЕЛЬНО. Что нужно знать и уметь, для того чтобы научиться решать дифференциальные уравнения? Для успешного изучения диффуров вы должны хорошо уметь интегрировать и дифференцировать. Чем качественнее изучены темы Производная функции одной переменной и Неопределенный интеграл, тем будет легче разобраться в дифференциальных уравнениях. Скажу больше, если у вас более или менее приличные навыки интегрирования, то тема практически освоена! Чем больше интегралов различных типов вы умеете решать – тем лучше. Почему? Придётся много интегрировать. И дифференцировать. Также настоятельно рекомендую научиться находить производную от функции, заданной неявно.
В 95% случаев в контрольных работах встречаются 3 типа дифференциальных уравнений первого порядка: уравнения с разделяющимися переменными, которые мы рассмотрим на этом уроке; однородные уравнения и линейные неоднородные уравнения. Начинающим изучать диффуры советую ознакомиться с уроками именно в такой последовательности, причём после изучения первых двух статей не помешает закрепить свои навыки на дополнительном практикуме – уравнения, сводящихся к однородным.
Есть еще более редкие типы дифференциальных уравнений: уравнения в полных дифференциалах, уравнения Бернулли и некоторые другие. Наиболее важными из двух последних видов являются уравнения в полных дифференциалах, поскольку помимо данного ДУ я рассматриваю новый материал – частное интегрирование.
Если у вас в запасе всего день-два, то для сверхбыстрой подготовки есть блиц-курс в pdf-формате.
Итак, ориентиры расставлены – поехали:
Сначала вспомним «обычные» уравнения. Они содержат переменные и числа. Простейший пример: . Что значит решить подобное уравнение? Это значит, найти множество всех чисел, которые удовлетворяют данному уравнению. Легко видеть, что детское уравнение имеет единственный корень . Выполним проверку, подставив четвёрку в уравнение:
– получено верное равенство, значит, решение найдено правильно.
Диффуры устроены примерно так же!
Дифференциальное уравнение первого порядка в общем случае содержит:
1) независимую переменную ;
2) зависимую переменную (функцию);
3) первую производную функции: .В некоторых уравнениях 1-го порядка может отсутствовать «икс» или (и) «игрек», но это не существенно – важно чтобы в ДУ была первая производная , и не было производных высших порядков – , и т. д.
Что значит решить дифференциальное уравнение? Решить дифференциальное уравнение – это значит, найти множество всех функций, которые удовлетворяют данному уравнению (впрочем, порой, достаточно одной). То есть корнями дифференциального уравнения являются функции. Для ДУ 1-го порядка такое множество функций зачастую имеет вид , который называют общим решением дифференциального уравнения («цэ» принимает различные действительные значения).
Решить дифференциальное уравнение
Полный боекомплект. С чего начать решение?
В первую очередь нужно переписать производную немного в другом виде. Вспоминаем громоздкое обозначение , которое многим из вас наверняка казалось нелепым и ненужным. В диффурах рулит именно оно!
На втором шаге смотрим, нельзя ли разделить переменные? Что значит разделить переменные? Грубо говоря, в левой части нам нужно оставить только «игреки», а в правой части организовать только «иксы». Разделение переменных выполняется с помощью «школьных» манипуляций: вынесение за скобки, перенос слагаемых из части в часть со сменой знака, перенос множителей из части в часть по правилу пропорции и т. п.
Дифференциалы и – это полноправные множители и активные участники боевых действий. В рассматриваемом примере переменные легко разделяются перекидыванием множителей по правилу пропорции:
Переменные разделены. В левой части – только «игреки», в правой части – только «иксы».
Следующий этап – интегрирование дифференциального уравнения. Всё просто, навешиваем интегралы на обе части:
Разумеется, интегралы нужно взять. В данном случае они табличные:
Как мы помним, к любой первообразной приписывается константа. Здесь два интеграла, но константу достаточно записать один раз (т. к. константа + константа всё равно равна другой константе). В большинстве случаев её помещают в правую часть.
Строго говоря, после того, как взяты интегралы, дифференциальное уравнение считается решённым. Единственное, у нас «игрек» не выражен через «икс», то есть решение представлено в неявном виде. Решение дифференциального уравнения в неявном виде называется общим интегралом дифференциального уравнения. То есть – это общий интеграл.
Ответ в такой форме вполне приемлем, но нет ли варианта получше? Давайте попытаемся получить общее решение.
Пожалуйста, запомните первый технический приём, он очень распространен и часто применяется в практических заданиях: если в правой части после интегрирования появляется логарифм, то константу во многих случаях (но далеко не всегда!) целесообразно записать тоже под логарифмом. И записать НЕПРЕМЕННО, если получились одни логарифмы (как в рассматриваемом примере).
То есть ВМЕСТО записи обычно пишут (и это корректно, так как с таким же успехом принимает все действительные значения, что и ).
Зачем это нужно? А для того, чтобы легче было выразить «игрек». Используем свойство логарифмов . В данном случае:
Теперь логарифмы и модули можно убрать:
Функция представлена в явном виде. Это и есть общее решение.
Ответ: общее решение: .
Ответы многих дифференциальных уравнений довольно легко проверить. В нашем случае это делается совсем просто, берём найденное решение и дифференцируем его:
После чего подставляем и производную в исходное уравнение :
– получено верное равенство, значит, множество функций удовлетворяет уравнению , что и требовалось проверить.
Придавая константе различные значения, можно получить бесконечно много частных решений дифференциального уравнения. Ясно, что любая из функций , , и т. д. удовлетворяет дифференциальному уравнению .
Иногда общее решение называют семейством функций. В данном примере общее решение – это семейство линейных функций, а точнее, семейство прямых пропорциональностей.
После обстоятельного разжевывания первого примера уместно ответить на несколько наивных вопросов о дифференциальных уравнениях:
1) В этом примере нам удалось разделить переменные. Всегда ли это можно сделать? Нет, не всегда. И даже чаще переменные разделить нельзя. Например, в однородных уравнениях первого порядка, сначала нужно провести замену. В других типах уравнений, например, в линейном неоднородном уравнении первого порядка, нужно использовать различные приёмы и методы для нахождения общего решения. Уравнения с разделяющимися переменными, которые мы рассматриваем на первом уроке – простейший тип дифференциальных уравнений.
2) Всегда ли можно проинтегрировать дифференциальное уравнение? Нет, не всегда. Очень легко придумать «навороченное» уравнение, которое не проинтегрировать, кроме того, существуют неберущиеся интегралы. Но подобные ДУ можно решить приближенно с помощью специальных методов. Даламбер и Коши гарантируют. …тьфу, lurkmore.to давеча начитался, чуть не добавил «с того света».
3) В данном примере мы получили решение в виде общего интеграла . Всегда ли можно из общего интеграла найти общее решение, то есть выразить «игрек» в явном виде? Нет не всегда. Например: . Ну и как тут выразить «игрек»?! В таких случаях ответ следует записать в виде общего интеграла. Кроме того, иногда общее решение найти можно, но оно записывается настолько громоздко и коряво, что уж лучше оставить ответ в виде общего интеграла
4) . Пожалуй, пока достаточно. В первом же примере нам встретился ещё один важный момент, но дабы не накрыть «чайников» лавиной новой информации, оставлю его до следующего урока.
Торопиться не будем. Еще одно простое ДУ и еще один типовой приём решения:
Найти частное решение дифференциального уравнения , удовлетворяющее начальному условию
Решение: по условию требуется найти частное решение ДУ, удовлетворяющее заданному начальному условию. Такая постановка вопроса называется задачей Коши.
Сначала находим общее решение. В уравнении нет переменной «икс», но это не должно смущать, главное, в нём есть первая производная.
Переписываем производную в нужном виде:
Очевидно, что переменные можно разделить, мальчики – налево, девочки – направо:
Общий интеграл получен. Здесь константу я нарисовал с надстрочной звездочкой, дело в том, что очень скоро она превратится в другую константу.
Теперь пробуем общий интеграл преобразовать в общее решение (выразить «игрек» в явном виде). Вспоминаем старое, доброе, школьное: . В данном случае:
Константа в показателе смотрится как-то некошерно, поэтому её обычно спускают с небес на землю. Если подробно, то происходит это так. Используя свойство степеней, перепишем функцию следующим образом:
Если – константа, то – тоже некоторая константа, переообозначим её через :
После чего раскрываем модуль:
и снова переобозначаем константу , подразумевая, что «цэ» может принимать как положительные, так и отрицательные значения:Запомните «снос» константы – это второй технический приём, который часто используют в ходе решения дифференциальных уравнений. На чистовике обычно сразу переходят от к , но всегда будьте готовы объяснить этот переход. Точно так же как вы – попросили меня объяснить, и я объяснил 🙂
Итак, общее решение: . Такое вот симпатичное семейство экспоненциальных функций.
На завершающем этапе нужно найти частное решение, удовлетворяющее заданному начальному условию . Это тоже просто.
В чём состоит задача? Необходимо подобрать такое значение константы , чтобы выполнялось условие .
Оформить можно по-разному, но понятнее всего, пожалуй, будет так. В общее решение вместо «икса» подставляем ноль, а вместо «игрека» двойку:
Стандартная версия оформления:
Теперь в общее решение подставляем найденное значение константы :
– это и есть нужное нам частное решение.Ответ: частное решение:
Выполним проверку. Проверка частного решения включает в себя два этапа:
Сначала нужно проверить, а действительно ли найденная функция удовлетворяет начальному условию ? Вместо «икса» подставляем ноль и смотрим, что получится:
– да, действительно получена двойка, значит, начальное условие выполняется.Второй этап уже знаком. Берём полученную функцию и находим производную:
Подставляем и в исходное уравнение :
– получено верное равенство.
Вывод: частное решение найдено правильно.
Переходим к более содержательным примерам.
Решить дифференциальное уравнение
Решение: переписываем производную в нужном нам виде:
Оцениваем, можно ли разделить переменные? Можно. Переносим второе слагаемое в правую часть со сменой знака:
И перекидываем множители по правилу пропорции:
Переменные разделены, интегрируем обе части:
Должен предупредить, приближается судный день. Если вы плохо изучили неопределенные интегралы, прорешали мало примеров, то деваться некуда – придется их осваивать сейчас.
Интеграл левой части легко найти методом подведения функции под знак дифференциала, с интегралом от котангенса расправляемся стандартным приемом, который мы рассматривали на уроке Интегрирование тригонометрических функций в прошлом году:
В результате у нас получились одни логарифмы, и, согласно моей первой технической рекомендации, константу тоже определяем под логарифм.
Теперь пробуем упростить общий интеграл. Поскольку у нас одни логарифмы, то от них вполне можно (и нужно) избавиться. С помощью известных свойств максимально «упаковываем» логарифмы. Распишу очень подробно:
Упаковка завершена, чтобы быть варварски ободранной:
, и сразу-сразу приводим общий интеграл к виду , коль скоро это возможно:Так делать, вообще говоря, не обязательно, но всегда же выгодно порадовать профессора 😉
В принципе, этот шедевр можно записать в ответ, но здесь ещё уместно возвести обе части в квадрат и переобозначить константу:
Ответ: общий интеграл:
! Примечание: общий интеграл часто можно записать не единственным способом. Таким образом, если ваш результат не совпал с заранее известным ответом, то это еще не значит, что вы неправильно решили уравнение.
Можно ли выразить «игрек»? Можно. Давайте выразим общее решение:
Само собой, полученный результат годится для ответа, но обратите внимание, что общий интеграл смотрится компактнее, да и решение получилось короче.
Третий технический совет: если для получения общего решения нужно выполнить значительное количество действий, то в большинстве случаев лучше воздержаться от этих действий и оставить ответ в виде общего интеграла. Это же касается и «плохих» действий, когда требуется выразить обратную функцию, возвести в степень, извлечь корень и т. п. Дело в том, что общее решение будет смотреться вычурно и громоздко – с большими корнями, знаками и прочим математическим трэшем.
Как выполнить проверку? Проверку можно выполнить двумя способами. Способ первый: берём общее решение , находим производную и подставляем их в исходное уравнение . Попробуйте самостоятельно!
Второй способ состоит в дифференцировании общего интеграла. Это довольно легко, главное, уметь находить производную от функции, заданной неявно:
делим каждое слагаемое на :
Получено в точности исходное дифференциальное уравнение, значит, общий интеграл найден правильно.
Найти частное решение дифференциального уравнения , удовлетворяющее начальному условию . Выполнить проверку.
Это пример для самостоятельного решения.
Напоминаю, что алгоритм состоит из двух этапов:
1) нахождение общего решения;
2) нахождение требуемого частного решения.Проверка тоже проводится в два шага (см. образец в Примере № 2), нужно:
1) убедиться, что найденная функцию удовлетворяет начальному условию;
2) проверить, что они вообще удовлетворяет дифференциальному уравнению.Полное решение и ответ в конце урока.
Найти частное решение дифференциального уравнения , удовлетворяющее начальному условию . Выполнить проверку.
Решение: сначала найдем общее решение. Данное уравнение уже содержит готовые дифференциалы и , а значит, решение упрощается. Разделяем переменные:
Интеграл слева – табличный, интеграл справа – берем методом подведения функции под знак дифференциала:
Общий интеграл получен, нельзя ли удачно выразить общее решение? Можно. Навешиваем логарифмы на обе части. Поскольку они положительны, то знаки модуля излишни:
(Надеюсь, всем понятно преобразование , такие вещи надо бы уже знать)
Итак, общее решение:
Найдем частное решение, соответствующее заданному начальному условию .
В общее решение вместо «икса» подставляем ноль, а вместо «игрека» логарифм двух:Более привычное оформление:
Подставляем найденное значение константы в общее решение.
Ответ: частное решение:
Проверка: Сначала проверим, выполнено ли начальное условие :
– всё гуд.Теперь проверим, а удовлетворяет ли вообще найденная функция дифференциальному уравнению. Находим производную:
Смотрим на исходное уравнение: – оно представлено в дифференциалах. Есть два способа проверки. Можно из найденной производной выразить дифференциал :
Подставим функцию и полученный дифференциал в исходное уравнение :
Получено верное равенство, таким образом, частное решение найдено правильно.
Второй способ проверки зеркален и более привычен: из уравнения выразим производную, для этого разделим все штуки на :
И в полученное ДУ подставим с найденной производной . В результате упрощений тоже должно получиться верное равенство.
Найти общий интеграл уравнения , ответ представить в виде .
Это пример для самостоятельного решения, полное решение и ответ в конце урока.
Какие трудности подстерегают при решении дифференциальных уравнений с разделяющимися переменными?
1) Не всегда очевидно (особенно, «чайнику»), что переменные можно разделить. Рассмотрим условный пример: . Здесь нужно провести вынесение множителей за скобки: и отделить корни: . Как действовать дальше – понятно.
2) Сложности при самом интегрировании. Интегралы нередко возникают не самые простые, и если есть изъяны в навыках нахождения неопределенного интеграла, то со многими диффурами придется туго. К тому же у составителей сборников и методичек популярна логика «раз уж дифференциальное уравнение является простым, то пусть хоть интегралы будут посложнее».
3) Преобразования с константой. Как все заметили, с константой в дифференциальных уравнениях можно обращаться достаточно вольно, и некоторые преобразования не всегда понятны новичку. Рассмотрим ещё один условный пример: . В нём целесообразно умножить все слагаемые на 2: . Полученная константа – это тоже какая-то константа, которую можно обозначить через : . Да, и поскольку у нас одни логарфимы, то константу целесообразно переписать в виде другой константы: .
Беда же состоит в том, что с индексами часто не заморачиваются и используют одну и ту же букву . В результате запись решения принимает следующий вид:
Что за дела?! Тут же ошибки! Строго говоря – да. Однако с содержательной точки зрения, ошибок нет, ведь в результате преобразования варьируемой константы получается равноценная варьируемая константа.
Или другой пример, предположим, что в ходе решения уравнения получен общий интеграл . Такой ответ выглядит некрасиво, поэтому у каждого слагаемого целесообразно сменить знак: . Формально здесь опять ошибка – справа следовало бы записать . Но неформально подразумевается, что «минус цэ» – это всё равно константа, которая с тем же успехом принимает то же множество значений, и поэтому ставить «минус» не имеет смысла.
Я буду стараться избегать небрежного подхода, и всё-таки проставлять у констант разные индексы при их преобразовании. Чего и вам советую делать.
Решить дифференциальное уравнение . Выполнить проверку.
Решение: Данное уравнение допускает разделение переменных. Разделяем переменные:
Интегрируем. В левой части подводим функцию под знак дифференциала, а в правой используем стандартный искусственный приём:
Константу тут не обязательно определять под логарифм, поскольку ничего путного из этого не получится.
Ответ: общий интеграл:
И, разумеется, здесь НЕ НАДО выражать «игрек» в явном виде, ибо получится трэш (вспоминаем третий технический совет).
Проверка: дифференцируем ответ (неявную функцию):
Избавляемся от дробей, для этого умножаем оба слагаемых на :
Получено исходное дифференциальное уравнение, значит, общий интеграл найден правильно.
Найти частное решение ДУ.
,Это пример для самостоятельного решения. Единственная подсказка – здесь получится общий интеграл, и, правильнее говоря, нужно исхитриться найти не частное решение, а частный интеграл. Полное решение и ответ в конце урока.
Как уже отмечалось, в диффурах с разделяющимися переменными нередко вырисовываются не самые простые интегралы. И вот еще парочка таких примеров для самостоятельного решения. Рекомендую всем прорешать Примеры № 9-10, независимо от уровня подготовки, это позволит актуализировать навыки нахождения интегралов или восполнить пробелы в знаниях.
Решить дифференциальное уравнение
Решить дифференциальное уравнение
Помните, что общий интеграл можно записать не единственным способом, и внешний вид ваших ответов может отличаться от внешнего вида моих ответов. Краткий ход решения и ответы в конце урока.
Решения и ответы:
Пример 4. Решение: найдем общее решение. Разделяем переменные:
Интегрируем:
Общий интеграл получен, пытаемся его упростить. Упаковываем логарифмы и избавляемся от них:
Выражаем функции в явном виде, используя .
Общее решение:Найдем частное решение, удовлетворяющее начальному условию .
Способ первый, вместо «икса» подставляем 1, вместо «игрека» – «е»:
.
Способ второй:Подставляем найденное значение константы в общее решение.
Ответ: частное решение:Проверка: проверяем, действительно ли выполняется начальное условие:
, да, начальное условие выполнено.
Проверяем, удовлетворяет ли вообще функция дифференциальному уравнению. Сначала находим производную:Подставим функцию и найденную производную в исходное уравнение :
Получено верное равенство, значит, решение найдено правильно.
Пример 6. Решение: данное уравнение допускает разделение переменных. Разделяем переменные и интегрируем:
Примечание: тут можно получить и общее решение:
Но, согласно моему третьему техническому совету, делать это нежелательно, поскольку такой ответ смотрится довольно плохо.
Пример 8. Решение: данное ДУ допускает разделение переменных. Разделяем переменные:
Интегрируем:
Общий интеграл:
Найдем частное решение (частный интеграл), соответствующий заданному начальному условию . Подставляем в общее решение и :Ответ: частный интеграл:
В принципе, ответ можно попричесывать и получить что-нибудь более компактное.Пример 9. Решение: данное уравнение допускает разделение переменных. Разделяем переменные и интегрируем:
Левую часть интегрируем по частям:
В интеграле правой части проведем замену:
Таким образом:
(здесь дробь раскладывается методом неопределенных коэффициентов, но она настолько простая, что подбор коэффициентов можно выполнить и устно)
Обратная замена:
Ответ: общий интеграл:
Пример 10. Решение: данное уравнение допускает разделение переменных. Разделяем переменные и интегрируем:
Методом неопределенных коэффициентов разложим подынтегральную функцию в сумму элементарных дробей:
Примечание: интеграл можно было также найти методом выделения полного квадрата.
Ответ: общее решение:
Автор: Емелин Александр

(Переход на главную страницу)

Zaochnik.com – профессиональная помощь студентам,
cкидкa 15% на первый зaкaз, при оформлении введите прoмoкoд: 5530-hihi5
© Copyright mathprofi.ru, Александр Емелин, 2010-2023. Копирование материалов сайта запрещено
- ( 1 − n ) y − n d y d x = p ( x ) ( 1 − n ) y 1 − n + ( 1 − n ) q ( x ) y><\mathrm
- d y d x = y 3 − x 3 y 2 x y><\mathrm
- d y d x = x 3 y ( 1 + x 4 ) <\displaystyle <\frac <\mathrm y><\mathrm x>>=>
- μ d y d x + μ p y = μ q y><\mathrm
- d 2 x d t 2 + k 2 x = 0 ^x><\mathrm
- d y d x + p ( x ) y = q ( x ) y><\mathrm
- ( d 3 y d x 3 ) 2 + d y d x = 0 ^y><\mathrm
- d y d x = k y y><\mathrm
- Ниже приведены несколько примеров обыкновенных дифференциальных уравнений.
