- •Комп’ютерні методи прикладної математики
- •І.О. Бардус Комп'ютерні методи прикладної математики
- •6.010104 Професійна освіта. Комп’ютерні технології в управлінні та навчанні,
- •6.010104 Професійна освіта. Комп’ютерні системи та мережі,
- •6.010104 Професійна освіта. Обробка та захист інформації в комп’ютерних системах та мережах
- •Пояснювальна записка
- •1. Структура вікна Maple
- •Лабораторна робота №1
- •Структура вікна Maple. Арифметичні операції, числа, константи й стандартні функції. Елементарні перетворення математичних виразів
- •Теоретична частина
- •2. Арифметичні операції. Цілі й раціональні числа, константи в Maple
- •3. Синтаксис команд. Стандартні функції
- •4. Перетворення математичних виразів
- •Контрольні завдання
- •Контрольні питання
- •2. Операції оцінювання
- •3. Розв’язання рівнянь
- •4. Розв’язання нерівностей
- •Контрольні завдання
- •Контрольні питання
- •2. Тривимірні графіки. Анімація
- •Контрольні завдання
- •Контрольні питання
- •2. Дії з матрицями
- •3. Системи лінійних рівнянь. Матричні рівняння
- •Контрольні завдання
- •Контрольні питання
- •2. Диференціювання
- •3. Інтегрування
- •Контрольні завдання
- •Контрольні питання
- •Системи диференціальних рівнянь.
- •2. Чисельне розв’язання диференціальних рівнянь
- •Контрольні завдання
- •Контрольні питання
- •2 Інтегральне числення функцій багатьох змінних
- •3. Векторний аналіз
- •4. Ряди й добутки
- •5. Інтегральні перетворення
- •Контрольні завдання
- •Контрольні питання
- •Лабораторна робота № 8
- •Знаходження коренів характеристичного поліному
- •Теоретична частина
- •Контрольні завдання
- •Контрольні завдання
- •Контрольні питання
- •Список літературних джерел Основна література
- •Додаткова література
Системи диференціальних рівнянь.
Команда 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.
