Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MAPLE.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
3 Мб
Скачать
☆

Системи диференціальних рівнянь.

Команда dsolve може знайти розв’язання системи диференціальних рівнянь (або задачі Коші), якщо в ній вказати: dsolve({sys},{x(t),y(t),…}), де sys  система диференціальних рівнянь, x(t),y(t),… набір невідомих функцій.

Приклад 1.4.

Знайти розв’язання системи диференціальних рівнянь:

> 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) і 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-го порядку.

> restart; Order:=5:

> dsolve({diff(y(x),x)=y(x)+x*exp(y(x)), y(0)=0}, y(x), type=series);

В отриманому рішенні доданок означає, що точність розкладання була до 5-го порядку.

2. Знайти загальний розв’язок диференціального рівняння y''(х)y3(х)=ехcosx, у вигляді розкладання в степеневий ряд до 4-го порядку. Знайти розкладання при початкових умовах: y(0)=1, y'(0)=0.

> 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). Для знаходження часного розв’язку залишилося задати початкові умови:

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

3. Знайти наближений розв’язок у вигляді степеневого ряду до 6-го порядку й точний розв’язок задачі Коші: , , , . Побудувати на одному малюнку графіки точного й наближеного розв’язків.

> restart; Order:=6:

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

de:=

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

cond:=y(0)=1, D(y)(0)=1, D(2)(y)(0)=1

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

y(x)=

> y1:=rhs(%):

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

y(x)=

Зауваження: тип розв’язання диференціального рівняння у вигляді ряду є 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=blue):

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

На цьому малюнку видно, що найкраще наближення точного розв’язку степеневим рядом досягається приблизно на інтервалі 1<x<1.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]