logo
ЭО Лаб работа 2

Аналитическое решение дифференциальных уравнений

Для нахождения аналитических решений дифференциальных уравнений в 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(%).

Например, найдем общее решение дифференциального уравнения y'+ycosx=sinxcosx.

> restart;

> de:=diff(y(x),x)+y(x)*cos(x)=sin(x)*cos(x);

de:=

> dsolve(de,y(x));

1

Итак, решение искомого уравнения есть функция 1.

Замечание: при записи решения диффреренциального уравнения в Maple в строке вывода произвольная постоянная обозначена как _С1.

Найти общее решение дифференциального уравнения второго порядка y''2y'+y=sinx+ex.

> restart;

> deq:=diff(y(x),x$2)-2*diff(y(x),x)+y(x)=sin(x)+exp(-x);

deq:=

> dsolve(deq,y(x));

Замечание: так как исходное уравнение было второго порядка, то полученное решение содержит две произвольные константы, которые в Maple обычно обознаются как _С1 и _С2. Первые два слагаемых представляют собой общее решение соответствующего однородного дифференциального уравнения, а вторые два – частное решение неоднородного дифференциального уравнения.

Найти общее решение дифференциального уравнения порядка y''+k2y=sin(qx) в двух случаях: qk и q=k (резонанс).

> restart; de:=diff(y(x),x$2)+k^2*y(x)=sin(q*x);

> dsolve(de,y(x));

Теперь найдем решение в случае резонанса. Для этого перед вызовом команды dsolve следует приравнять q=k.

> q:=k: dsolve(de,y(x));

Замечание: в обоих случаях частное решение неоднородного уравнения и общее решение, содержащее произвольные постоянные, выводятся отдельными слагаемыми.

Команда dsolve предоставляет возможность найти фундаментальную систему решений (базисные функции) дифференциального уравнения. Для этого в параметрах команды dsolve следует указать output=basis.

Найти фундаментальную систему решений дифференциального уравнения: y(4)+2y''+y=0.

> de:=diff(y(x),x$4)+2*diff(y(x),x$2)+y(x)=0;

de:=

> dsolve(de, y(x), output=basis);

Команда dsolve может найти решение задачи Коши или краевой задачи, если помимо дифференциального уравнения задать начальные или краевые условия для неизвестной функции. Для обозначения производных в начальных или краевых условиях используется дифференциальный оператор , например, условие y''(0)=2 следует записать в виде, или условиеy'(1)=0: . Напомним, что производнаяn-го порядка записывается в виде .

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);

> 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)+х

2. Найти решение краевой задачи: ,,. Построить график решения.

> restart; de:=diff(y(x),x$2)+y(x)=2*x-Pi;

de:=

> cond:=y(0)=0,y(Pi/2)=0;

> dsolve({de,cond},y(x));

y(x)=2x+cos(x)

Замечание: для построения графика решения предварительно следует отделить правую часть полученного выражения.

> y1:=rhs(%):plot(y1,x=-10..20,thickness=2);