Методы решения математических задач в Maple
VI. Дифференциальные уравнения
1.Аналитическое решение дифференциальных уравнений.
2.Численное решение дифференциальных уравнений.
§1. Аналитическое решение дифференциальных уравнений
Общее решение дифференциальных уравнений.
Для нахождения аналитических решений дифференциальных уравнений в 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(%).
76
Методы решения математических задач в Maple
Задание 1.1.
1. Найти общее решение дифференциального уравнения y'+ycosx=sinxcosx.
>restart;
>de:=diff(y(x),x)+y(x)*cos(x)=sin(x)*cos(x);
∂ |
|
|
||
de:= |
|
y(x) |
+ y(x) cos(x) = sin(x) cos(x) |
|
∂x |
||||
|
|
|
||
> dsolve(de,y(x));
y(x) = sin(x) −1 + e(−sin(x)) _ C 1
Итак, решение искомого уравнения есть функция y(x) = sin(x) −1 + e(−sin(x)) _ C 1.
Замечание: при записи решения диффреренциального уравнения в Maple в строке вывода произвольная постоянная обозначена как _С1. 2. Найти общее решение дифференциального уравнения второго порядка y''−2y'+y=sinx+e−x.
>restart;
>deq:=diff(y(x),x$2)-2*diff(y(x),x)+y(x) =sin(x)+exp(-x);
|
∂2 |
|
∂ |
|
+ y(x) = sin(x) + e(−x) |
||
deq:= |
|
|
y(x) |
− 2 |
|
y(x) |
|
|
2 |
|
|||||
|
∂x |
|
∂x |
|
|
||
|
|
|
|
||||
> dsolve(deq,y(x));
y(x) = _ C1e x + _ C2ex x + 12 cos(x) + 14 e(−x)
Замечание: так как исходное уравнение было второго порядка, то полученное решение содержит две произвольные константы, которые в Maple обычно обознаются как _С1 и _С2. Первые два слагаемых представляют собой общее решение соответствующего однородного дифференциального уравнения, а вторые два – частное решение неоднородного дифференциального уравнения.
3. Найти общее решение дифференциального уравнения порядка y''+k2y=sin(qx) в двух случаях: q≠k и q=k (резонанс).
> restart; de:=diff(y(x),x$2)+k^2*y(x)=sin(q*x);
|
∂2 |
|
+ k 2y(x) = sin(qx) |
|
de:= |
|
|
y(x) |
|
|
2 |
|||
|
∂x |
|
|
|
|
|
|
|
|
> dsolve(deq,y(x));
77
Методы решения математических задач в Maple
|
|
|
|
|
1 |
|
cos((k + q)x) |
|
1 |
|
cos((k − q)x) |
|
|
|||||||
|
|
|
|
− |
|
+ |
|
sin(kx) |
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
2 |
|
|
k + q |
2 |
|
|
k − q |
|
|
|
|||||
y(x) = |
|
|
|
|
|
|
|
− |
||||||||||||
|
|
|
|
|
|
|
|
|
|
k |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
1 sin((k − q)x) |
|
1 sin((k + q)x) |
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
− |
|
|
|
|
|
|
|
|
cos(kx) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
2 |
|
|
k − q |
|
2 |
|
|
k + q |
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
+ _ C1sin(kx) + _ C2cos(kx) |
||||||||||||
|
|
|
|
|
|
|
|
|
|
k |
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Теперь найдем решение в случае резонанса. Для этого перед вызовом команды dsolve следует приравнять q=k.
> q:=k: dsolve(de,y(x));
|
|
|
|
|
|
|
1 |
|
1 |
|
|
|
1 |
|
cos(kx)2 sin(kx) |
|
|
− |
|
cos(kx)sin(kx) + |
|
kx cos(kx) |
|
|
|
|
2 |
2 |
|
||||||
y(x) = − |
|
− |
|
|
|
|
+ |
||||
2 |
|
k 2 |
|
|
|
k 2 |
|
|
|||
|
|
|
|
|
|
|
|
|
_ C1sin(kx) + _ C2cos(kx)
Замечание: в обоих случаях частное решение неоднородного уравнения и общее решение, содержащее произвольные постоянные, выводятся отдельными слагаемыми.
Фундаментальная (базисная) система решений.
Команда dsolve представляет возможность найти фундаментальную систему решений (базисные функции) дифференциального уравнения. Для этого в параметрах команды dsolve следует указать output=basis.
Задание 1.2.
Найти фундаментальную систему решений дифференциального уравнения: y(4)+2y''+y=0.
> de:=diff(y(x),x$4)+2*diff(y(x),x$2)+y(x)=0;
|
|
∂ |
4 |
|
|
|
∂ |
2 |
|
|
|
||
de:= |
|
|
|
y(x) |
|
|
|
|
y(x) |
|
+ y(x) = 0 |
||
|
|
|
4 |
|
+ 2 |
|
|
2 |
|
||||
|
∂x |
|
|
∂x |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
||||
> dsolve(de, y(x), output=basis);
[cos(x),sin(x), x cos(x), x sin(x)]
Решение задачи Коши или краевой задачи.
Команда dsolve может найти решение задачи Коши или краевой задачи, если помимо дифференциального уравнения задать начальные или краевые условия для неизвестной функции. Для обозначения производных в начальных или краевых условиях
78
Методы решения математических задач в Maple
используется дифференциальный |
оператор D , например, |
условие |
||
y''(0)=2 |
следует записать в виде |
(D @@ 2)( y)(0) = 2 , |
или |
условие |
y'(1)=0: |
D( y)(1) = 0 . Напомним, |
что производная |
n-го |
порядка |
записывается в виде (D@@ n)( y) .
Задание 1.3.
1. Найти решение задачи Коши: y(4)+y''=2cosx, y(0)=−2, y'(0)=1, y''(0)=0, y'''(0)=0.
>de:=diff(y(x),x$4)+diff(y(x),x$2)=2*cos(x); de := ∂∂x44 y(x) + ∂∂x22 y(x) = 2 cos(x)
>cond:=y(0)=-2, D(y)(0)=1, (D@@2)(y)(0)=0, (D@@3)(y)(0)=0;
cond:=y(0)=−2, D(y)(0)=1, (D(2))(y)(0)=0, (D(3))(y)(0)=0 > dsolve({de,cond},y(x));
y(x)=−2cos(x)−xsin(x)+х
|
|
|
|
y''+y = 2x − π , y(0) = 0 , |
|
π |
|
||||
2. Найти решение краевой задачи: |
y |
|
|
= 0 . |
|||||||
2 |
|||||||||||
Построить график решения. |
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|||
> restart; de:=diff(y(x),x$2)+y(x)=2*x-Pi; |
|
|
|
||||||||
|
∂2 |
|
|
|
|
|
|
|
|
||
de:= |
|
|
y(x) |
+ y(x) |
= 2x − π |
|
|
|
|
||
|
2 |
|
|
|
|
||||||
|
∂x |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
||
> cond:=y(0)=0,y(Pi/2)=0; |
π |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|||
cond := y(0) = 0, y |
|
= 0 |
|
|
|
|
|||||
|
|
|
|
|
|||||||
|
|
|
|
|
2 |
|
|
|
|
||
> dsolve({de,cond},y(x)); y(x)=2x−π+πcos(x)
Замечание: для построения графика решения предварительно следует отделить правую часть полученного выражения.
> y1:=rhs(%):plot(y1,x=-10..20,thickness=2);
79
Методы решения математических задач в Maple
Системы дифференциальных уравнений.
Команда dsolve может найти решение системы дифференциальных уравнений (или задачи Коши), если в ней указать: dsolve({sys},{x(t),y(t),…}), где sys − система дифференциальных уравнений, x(t),y(t),… − набор неизвестных функций.
Задание 1.4.
Найти решение системы дифференциальных уравнений:
|
|
|
|
|
|
2 |
|
|
x′ = −4x − 2 y |
+ |
|
|
|
, |
|||
et − |
|
|||||||
|
|
|
|
|
1 |
|||
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
|
|
|
|
y′ = 6x |
+ 3y |
− |
|
e |
t |
−1 |
|
|
|
|
|
|
|
|
|
||
>sys:=diff(x(t),t)=-4*x(t)-2*y(t)+2/(exp(t)-1), diff(y(t),t)=6*x(t)+3*y(t)-3/(exp(t)-1):
>dsolve({sys},{x(t),y(t)});
{x(t) = −3 _ C1 + 4C1 _ e(−t) − 2C2 _+ 2C2 _ e(−t) + 2e(−t) ln(e y(t) = 6 _ C1 − 6 _ C1e−t − 3 _ C2e(−t) + 4 _ C2 − 3e(−t) ln(e(t)
Найдены две функции x(t) и y(t), которые зависят от двух произвольных постоянных _С1 и _С2.
t−1),
−1)}
Приближенное решение дифференциальных уравнений с помощью степенных рядов.
Для многих типов дифференциальных уравнений не может быть найдено точное аналитическое решение. В этом случае дифференциальное уравнение можно решить с помощью
80