- •Комп’ютерні методи прикладної математики
- •І.О. Бардус Комп'ютерні методи прикладної математики
- •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
- •Знаходження коренів характеристичного поліному
- •Теоретична частина
- •Контрольні завдання
- •Контрольні завдання
- •Контрольні питання
- •Список літературних джерел Основна література
- •Додаткова література
2. Чисельне розв’язання диференціальних рівнянь
Чисельне розв’язання диференціальних рівнянь за допомогою команди dsolve. Побудова графіків розв’язків диференціальних рівнянь за допомогою команди odeplot.
Для того, щоб знайти чисельне розв’язання диференціального рівняння (задачі Коші або крайову задачу) у команді dsolve треба вказати параметр type=numeric (або просто numeric). Тоді команда розв’язання диференціального рівняння буде мати вигляд dsolve(eq, vars, type=numeric, options), де eq – рівняння, vars – список невідомих функцій, options – параметри, що дозволяють указати метод чисельного інтегрування диференціального рівняння. В Maple реалізовані такі методи: method=rkf45 метод Рунге-Кутта-Фельберга 5-ого порядку (установлений за замовчуванням); method=dverk78 – метод Рунге-Кутта 7-8 порядку; mtthod=classical – класичний метод Рунге-Кутта 3-його порядку; method=gear і method=mgear – однокроковий і багатокроковий методи Гіра.
Графік чисельного розв’язання диференціального рівняння можна побудувати за допомогою команди odeplot(dd, [x,y(x)], x=x1..x2), де як функція використовується команда dd:=dsolve({eq,cond}, y(x), numeric) чисельного розв’язання, після її у квадратних дужках указують змінну й невідому функцію [x,y(x)], і інтервал x=x1..x2 для побудови графіка.
Приклад 2.1.
1. Знайти чисельне й наближене
розв’язання у вигляді степеневого ряду
до 6-ого порядку задачія Коші:
,
,
.
Спочатку знайдемо чисельне розв’язання задачі Коші й побудуємо його графік.
> restart; Ordev=6:
> eq:=diff(y(x),x$2)-x*sin(y(x))=sin(2*x):
> cond:=y(0)=0, D(y)(0)=1:
> de:=dsolve({eq,cond},y(x),numeric);
de:=proc(rkf45_x)...end
Зауваження: у рядку виводу з'являється повідомлення про те, що при розв’язанні використаний метод rkf45. Щоб уникнути виводу рядків, що не несуть корисної інформації, рекомендується відокремлювати проміжні команди двокрапкою. Якщо необхідно одержати значення розв’язання при якомусь фіксованому значенні змінної х (заодно буде виведене значення похідної розв’язання в цій точці), наприклад, при х=0.5, то треба набрати:
> de(0.5);
> with(plots):
> odeplot(de,[x,y(x)],-10..10,thickness=2);
Тепер знайдемо наближене розв’язання задачі Коші у вигляді степеневого ряду й побудуємо графіки чисельного розв’язання й отриманого степеневого ряду в інтервалі їхнього найкращого збігу.
> dsolve({eq, cond}, y(x), series)
> convert(%, polynom):p:=rhs(%):
> p1:=odeplot(de,[x,y(x)],-2..3, thickness=2,color=black):
> p2:=plot(p,x=-2..3,thickness=2,linestyle=3,color=blue):
> display(p1,p2);
Найкраще наближення розв’язання степеневим рядом досягається приблизно на інтервалі 1<x<1 (так само як і в прикладі 3 завдання 1.5).
2. Побудувати графіки розв’язків задачі Коші системи диференціальних рівнянь:
х'(t)=2y(t)sin(t)х(t)t,
y'(t)=x(t),
х(0)=1, y(0)=2.
> restart; cond:=x(0)=1,y(0)=2:
> sys:=diff(x(t),t)=2*y(t)*sin(t)-x(t)-t,diff(y(t),t)=x(t):
> F:=dsolve({sys,cond},[x(t),y(t)],numeric):
> with(plots):
> p1:=odeplot(F,[t,x(t)],-3..7, color=black, thickness=2,linestyle=3):
> p2:=odeplot(F,[t,y(t)],-3..7,color=green,thickness=2):
> p3:=textplot([3.5,8,"x(t)"], font=[TIMES, ITALIC, 12]):
> p4:=textplot([5,13,"y(t)"], font=[TIMES, ITALIC, 12]):
> display(p1,p2,p3,p4);
Пакет графічного подання розв’язків диференціальних рівнянь Detools
Для чисельного розв’язання задачі Коші, побудови графіків розв’язання в Maple є спеціальний пакет DEtools.
Команда DEplot з пакета DEtools будує чисельними методами графіки розв’язання або фазових портретів. Ця команда аналогічна команді odeplot, але більше функціональна. Вона, на відміну від odeplot, сама робить чисельне розв’язання диференціального рівняння. Основні параметри DEplot схожі на параметри odeplot: DEplot(de, vars, range, x=х1..х2, y=в1..в2, cond, ptions), де de диференціальне рівняння або система диференціальних рівнянь; vars – список невідомих функцій; range – діапазон виміру незалежної змінної; cond – початкові умови; x=х1..х2 і y=в1..в2 – діапазони зміни функцій; options – додаткові параметри.
Найбільше часто використовувані параметри: linecolor=колір лінії; scene=[x,y] визначає, які залежності виводити на графік; iterations=число ітерацій, необхідне для підвищення точності обчислень (за замовчуванням це число дорівнює 1); stepsize=число, що дорівнює відстані між точками на графіку, за замовчуванням воно дорівнює (x2x1)/20, цей параметр необхідний для виводу більше гладкої кривої розв’язання; obsrange=true/false переривати чи ні обчислення, якщо графік розв’язання виходить за встановлений для малювання інтервал.
Для розв’язання диференціального рівняння n-ого порядку початкові умови можна задавати в більш компактній формі: [x0, y0, y'0, y''0,…], де x0 точка, у якій задаються початкові умови, y0 значення шуканої функції в точці x0, y'0, y''0,…значення похідних першої, другої і т.д. до (n1)-ого порядку.
Приклад 2.2.
Намалювати графік розв’язання диференціального рівняння:
,
,
,
в інтервалі
.
> restart; with(DЕtools):
> DEplot(diff(y(x),x$3)+x*sqrt(abs(diff(y(x),x)))+x^2*y(x)=0, {y(x)}, =-4..5, [[y(0)=0,D(y)(0)=1, (D@@2)(y)(0)=1]], stepsize=.1, linecolor=black, thickness=2);
