Рішення звичайних диференціальних рівнянь

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Кафедра: Інформаційні Технології
Лабораторна Робота
На тему: розв'язків звичайних диференціальних рівнянь
Москва, 2008 рік

Розв'язків звичайних диференціальних рівнянь
Цілі роботи:
· Знати команди, використовувані при вирішенні звичайних диференціальних рівнянь у системі обчислень Maple;
· Вміти застосовувати зазначені команди для вирішення математичних завдань.
ТЕОРЕТИЧНІ ВІДОМОСТІ
Рішення звичайних диференціальних рівнянь.
За допомогою команди dsolve () можна отримати аналітичне рішення диференціального рівняння, а можна і сформувати процедуру побудови чисельного розв'язку задачі Коші, якщо система Maple не зможе знайти спільне рішення у аналітичному вигляді. Найбільш загальний синтаксис виклику команди рішення диференціального рівняння наступний:
dsolve (рівняння, невідомі, [опції]);
Параметром рівняння задається одне диференціальне рівняння або система диференціальних рівнянь. В останньому випадку всі рівняння системи повинні бути представлені у вигляді безлічі (їх список через кому варто взяти у фігурні дужки). Параметр невідомі визначає невідому функцію диференціального рівняння або невідомі функції системи диференціальних рівнянь, які, як і самі рівняння системи, повинні бути представлені у вигляді множини. Необов'язковий параметр опції, який визначається у вигляді ключевое_значеніе = значення, дозволяє задати методи і форму представлення рішення.
Щоб задати похідну шуканої функції в диференціальному рівнянні використовують команду diff () або оператор D, причому саму невідому функцію слід визначати з явною вказівкою незалежної змінної, наприклад у (х). Оператор D визначає операцію диференціювання і має наступний синтаксис:
(D @ @ n) (функція) (змінна);
У цьому записі n представляє ціле число, що визначає порядок похідної, параметр функція - використовуваний ідентифікатор функції, а параметр змінна - незалежну змінну функції. Наприклад, похідна другого порядку функції f (х) з використанням цього оператора задається так:
(D @ @ 2) (f) (x);
Нижче представлені кілька прикладів завдання диференціальних рівнянь і систем диференціальних рівнянь:
> Ex1: = diff (y (x), x $ 3) + k ^ 2 * y (x) = 0;

> Ex2: = (D @ @ 3) (y) (x) + k ^ 2 * y (x) = cos (k1 * x);

> Sys1: = {D (y1) (x) = a [1,1] * y1 (x) + a [1,2] * y2 (x),
D (y2) (x) = a [2,1] * y1 (x) + a [2,2] * y2 (x)};

Зауважимо, що в наведених прикладах і рівняння, і система рівнянь зберігаються в змінних Maple. Як зазначалося раніше, це досить поширений прийом, що дозволяє використовувати в подальшому задані рівняння простий посиланням на звичайну змінну.
Вирішимо одне з відомих рівнянь:
> Ex3: = diff (y (x), x $ 2) + k ^ 2 * y (x) = 0;

> Dsolve (ex3, y (x));

Знайдено спільне рішення диференціального рівняння, в якому змінні С1 і С2 - це згенеровані Maple спеціальні змінні, що представляють довільні константи спільного рішення диференціального рівняння другого порядку. Цей приклад показує, що при відсутності будь-яких опції система Maple намагається знайти точне спільне рішення в явному вигляді. Якщо в явному вигляді рішення не існує, то система спробує знайти його в неявному вигляді, як видно з наступного прикладу:
> Ex4: = diff (y (x), x) =- sqrt (x ^ 2-y (x)) +2 * x;

> Dsolve (ex4, y (x));

> Isolate (%, y (x));

Команда isolate () в цьому прикладі висловлює заданий другим параметром вираз (у (х)) з рівняння, що визначається першим параметром (у нашому випадку з неявного виду спільного рішення диференціального рівняння).
За замовчуванням команда dsolve () спочатку намагається знайти спільне рішення в явному вигляді, і якщо таке не вдається знайти, то дозвіл видається в неявному вигляді (звичайно, за умови його існування). Можна "спантеличити" Maple пошуком спільного рішення в явному вигляді, використовуючи опцію explicit = true (за замовчуванням використовується explicit = false):
> Dsolve (ex4, y (x), explicit = true);


Як бачимо, в цьому випадку ми дійсно отримали відразу ж рішення в явному вигляді, але воно представлено через функцію Rootof (), так що наш початковий підхід до вирішення диференціального рівняння виявився більш продуктивним.
Не для будь-якого диференціального рівняння вдається знайти спільне рішення в явному або неявному вигляді. У цьому випадку можна побудувати наближений розв'язок у формі ряду Тейлора. Для цього потрібно задати опцію
type = series в команді dsolve () (за замовчуванням використовується type = exact), а також установкою значення системної змінної Order визначити, до якого порядку малості щодо незалежної змінної функції шукається розкладання рішення в ряд Тейлора в околиці нульової точки:
> Order: = 4;

> Eqq: = (D @ @ 2) (y) (x) + (a * x ^ 2) * D (y) (x) + y (x) = 0;

> Dsolve (eqq, y (x), type = series);

Зауважимо, що в рішенні диференціального рівняння другого порядку, представленому поруч Тейлора, в якості постійних використовуються значення шуканої функції і її першої похідної в точці х = 0: в (0), D (y) (0).
Для вирішення задачі Коші або крайової задачі необхідно задати перший параметр команди dsoive () у вигляді безлічі, елементами якого є саме рівняння і всі початкові або крайові умови. Вирішимо задачу Коші і крайову задачу для наступного диференціального рівняння другого порядку:
> Eqn1: = diff (y (x), x $ 2) + k ^ 2 * y (x) = 0;

Задача Коші для цього диференціального рівняння другого порядку вимагає завдання в нульовій точці значення невідомої функції і її першої похідної. Її рішення наведено нижче:
> Dsolve ({eqn1, y (0) = 0, D (y) (0) = 1}, y (x));

Крайова задача для цього диференціального рівняння другого порядку вимагає завдання в двох точках, наприклад, х = 0 і х = 1 значення невідомої функції. Її рішення також отримано за допомогою команди dsolve ():
> Dsolve ({eqn1, y (0) = 0, y (1) = 1}, y (x));

Початкові або крайові умови задаються у вигляді рівнянь, в лівій частині яких визначено задається параметр (значення невідомої функції чи його похідної необхідного порядку) у відповідній точці, а в правій частині значення цього параметра. При завданні похідних в початкових або крайових умовах слід використовувати оператор D - команда diff () тут не вживається.
Якщо точне рішення задачі Коші або крайової задачі системою Maple не знайдено, а наближений розв'язок у вигляді ряду Тейлора нас не влаштовує, то можна побудувати чисельне рішення, знову-таки з використанням все тієї ж команди dsoive (). Для цього задають опцію type = numeric, а за допомогою опції method = метод визначають використовуваний для побудови чисельного рішення метод. Параметр метод приймає одне зі значень, представлених у табл. 1.
Таблиця 1. Значення опції method при чисельному рішенні диференціальних рівнянь.

Значення

Опис

Rkf45
Метод Рунге-Кутта-Фальберг порядку 4-5

Dverk78

Метод Рунге-Кутта близько 7-8

За умовчанням (якщо не задана опція method) застосовується метод Рунге-Кутта-Фальберг порядку 4-5. При використанні чисельного рішення слід пам'ятати, що всі параметри диференціального рівняння (символьні константи) повинні бути визначені. Наприклад, для задачі Коші рівняння eqn1 попереднього прикладу слід задати чисельне значення для параметра k.
Чисельне рішення будується у формі процедури Maple, тому слід деякої змінної привласнити результат побудови командою dsolve () чисельного рішення у вигляді процедури. Надалі ім'я цієї змінної можна використовувати як ім'я процедури для обчислення значення рішення задачі Коші в деякій точці, що відповідає значенням незалежної змінної функції рішення. Це значення передається в процедуру як її параметр - після імені процедури в круглих дужках. Наступний приклад демонструє побудову чисельного розв'язання задачі Коші і його використання.
> Eqn1: = diff (y (x), x $ 2) + k ^ 2 * y (x) = 0;

Змінної f присвоюємо результат чисельного розв'язання задачі Коші для диференціального рівняння другого порядку (в нульовій точці задається значення невідомої функції і її першої похідної):
> F: = dsolve ({eqn1, y (0) = 0, D (y) (0) = 1}, y (x), type = numeric);

Якщо не присвоїти параметру k конкретного числового значення, то спроба отримати значення рішення в точці, наприклад x = 1, призведе до помилки:
> F (1);
Error, (in dsolve/numeric/rkf45) cannot evaluate boolean: 2. + Abs (.2511886433 e-1-.2016799760e-5 * k ^ 2-.3377712687e-4 * k ^ 2 * (.2318664400 e-1-.3700729218e -5 * k ^ 2) + .6309573448 e-5 * k ^ 2 * (.2511886433 e-1-.6603721651e-5 * k ^ 2)) <= 0.
Слід обов'язково визначити всі символьні параметри диференціального рівняння числовими значеннями перед використанням чисельного рішення:
> K: = 1:
> F (0); F (1); F (2);



Зверніть увагу, в якому вигляді побудована процедура чисельного рішення видає результати - у вигляді списку значень незалежної змінної, самої функції і її похідних (до порядку на одиницю менше порядку самого рівняння).
Завдання для самостійного рішення.
1. Вирішити рівняння:
1.1. ; 1.13. ;
1.2. ; 1.14. ;
1.3. ; 1.15. ;
1.4. ; 1.16. ;
1.5. ; 1.17. ;
1.6. ; 1.18. ;
1.7. ; 1.19. ;
1.8. ; 1.20. ;
1.9. ; 1.21. ;
1.10. ; 1.22.
1.11. ; 1.23. ;
1.12. ; 1.24.
Варіанти завдань.
. 1.1; 1.2; . 1.12; 1.21;
. 1.3; 1.4; . 1.13; 1.22
. 1.5; 1.6; . 1.14; 1.23;
. 1.7; 1.8; . 1.15; 1.24;
. 1.9; 1.18; . 1.16; 1.14;
. 1.10; 1.19; . 1.17; 1.15;
. 1.11; 1.20;
Контрольні питання.
1. Команда dsolve (), її призначення і синтаксис.
2. Оператор D, його призначення і синтаксис.
3. Команда isolate (), її призначення і синтаксис.
4. Яка опція в команді dsolve () використовується для побудови наближеного рішення диференціального рівняння у формі ряду Тейлора?
5. Як вирішити завдання Коші за допомогою команди dsolve ()?
6. Як вирішити крайову задачу за допомогою команди dsolve ()?
7. Чи можна за допомогою команди diff () задавати похідні в початкових або крайових умовах?
8. Як за допомогою команди dsolve () побудувати чисельне рішення диференціального рівняння?

Література
1. Говорухін В.М., Цибуліно В.Г. Введення в Maple. Математичний пакет для всіх. - М.: Світ, 1997. - 208 с.
2. Дьяконов В.П. Математична система Maple V. - М.: Видавництво "Солон", 1998.
3. Двайт Г.Б. Таблиці інтегралів та інші математичні формули. - М.: Наука. Головна редакція фізико-математичної літератури, 1983. - 176 с.
4. Матросов А.В. Maple 6. Рішення задач вищої математики і механіки. - СПб.: БХВ - Петербург, 2001 .- 528 с.
5. Манзон Б.М. Maple V Power Edition - М.: Інформаційно-видавничий дім "Філін", 1998р.
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Лабораторна робота
30.1кб. | скачати


Схожі роботи:
Програма розв язання звичайних диференціальних рівнянь однокроковими методами
Рішення диференціальних рівнянь 2
Рішення диференціальних рівнянь
Рішення диференціальних рівнянь 2
Різницевий метод розв язування звичайних диференціальних рівнянь Апроксимація Метод прогонки
Рішення систем диференціальних рівнянь
Методи та алгоритми комп`ютерного рішення диференціальних рівнянь
Рішення неоднорідних диференціальних рівнянь 2-го порядку з постійними коефіцієнтами Комплексні
Рішення неоднорідних диференціальних рівнянь 2 го порядку з постійними коефіцієнтами Комплексні
© Усі права захищені
написати до нас