logo
Интегрирование дифференциальных уравнений с помощью степенных рядов

2.3 Примеры интегрирования в Maple

Для нахождения аналитических решений дифференциальных уравнений в Maple применяется команда dsolve(eq,var,options), где eq - дифференциальное уравнение, var - неизвестные функции, options - параметры. Параметры могут указывать метод решения задачи, например, по умолчанию ищется аналитическое решение: type=exact. При составлении дифференциальных уравнений для обозначения производной применяется команда diff, например, дифференциальное уравнение записывается в виде: diff(y(x),x$2)+y(x)=x.

Чтобы найти приближенное решение дифференциального уравнения в виде степенного ряда, в команде dsolve следует после переменных указать параметр type=series (или просто series). Для того, чтобы указать порядок разложения , т.е. порядок степени, до которой производится разложение, следует перед командой dsolve вставить определение порядка с помощью команды Order:=n.

Если ищется общее решение дифференциального уравнения в виде разложения в степенной ряд, то коэффициенты при степенях найденного разложения будут содержать неизвестные значения функции в нуле и ее производных и т.д. Полученное в строке вывода выражение будет иметь вид, похожий на разложение искомого решения в ряд Маклорена, но с другими коэффициентами при степенях . Для выделения частного решения следует задать начальные условия и т.д., причем количество этих начальных условий должно совпадать с порядком соответствующего дифференциального уравнения.

Разложение в степенной ряд имеет тип series, поэтому для дальнейшей работы с этим рядом его следует преобразовать в полином с помощью команды convert(%,polynom), а затем выделить правую часть полученного выражения командой rhs(%) [15].

Пример 2.5. Найти общее решение дифференциального уравнения в виде разложения в степенной ряд до 4-го порядка. Найти разложение при начальных условиях: [16].

> restart; Order:=4:

> de:=diff(y(x),x$2)-y(x)^3=exp(-x)*cos(x):

> f:=dsolve(de,y(x),series);

Замечание: в полученном разложении запись D(y)(0) обозначает производную в нуле: Для нахождения частого решения осталось задать начальные условия:

> y(0):=1: D(y)(0):=0:f;

Пример 2.6. Найти приближенное решение в виде степенного ряда до

6-го порядка и точное решение задачи Коши:

Построить на одном рисунке графики точного и приближенного решений [15].

> restart; Order:=6:

> de:=diff(y(x),x$3)-diff(y(x),x)=3*(2-x^2)*sin(x);

> cond:=y(0)=1, D(y)(0)=1, (D@@2)(y)(0)=1;

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

> y1:=rhs(%):

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

Замечание: тип решения дифференциального уравнения в виде ряда есть series, поэтому для дальнейшего использования такого решения (вычислений или построения графика) его обязательно следует конвертировать в полином с помощью команды convert.

дифференциальный уравнение ряд степень

> convert(%,polynom): y2:=rhs(%):

> p1:=plot(y1, x=-3..3, thickness=2, color=black):

> p2:=plot(y2, x=-3..3, linestyle=3, thickness=2, color=black):

> with(plots): display(p1,p2);

На рисунке 2 видно, что наилучшее приближение точного решения степенным рядом достигается примерно на интервале

Рисунок 2

Yandex.RTB R-A-252273-3
Yandex.RTB R-A-252273-4