Програма Maple і застосування її до звичайних диференціальних рівнянь (курсова робота)

Курсова робота

Програма Maple і застосування її до звичайних диференціальних рівнянь

Зміст

Вступ.

Робота з Maple і
інтерфейс………………………………………………………
.. 3

Знаходження похідної функції і інтеграла за допомогою

системи
Maple………………………………………………………….
……………………9

Аналітичний розв’язок звичайних диференціальних рівнянь………12

Розв’язання задачі Коші для ДР в системі
Maple……………………….14

Знаходження числового розв’язку
ДР………………………………………..15

Наближені методи розв’язання звичайних
ДР……………………………16

Структура об’єкта Desol. Застосування до
ДР……………………………17

Пакет Detools.
Застосування……………………………………………………
..18

Застосування пакета Matlab до знаходження числового

розв’язку системи
ДР…………………………………………………………….
……..21

Висновки.

1. Робота з MAPLE і інтерфейс.

Графічний інтерфейс MAPLE використовує звичайні засоби роботи з файлами
і редагування (мишка і клавіатура). Після запуску виконуючого модуля
wmaple або в середовищі Unix з’являється оболонка з новим документом
(worksheet). В верхній частині вікна розміщене меню (пункти File, Edite
і т.д), нижче — рядок значків Tolbar для ряду часто виконуваних
операцій, ще нижче — рядок значків Context Bar, які організовують
представлення даних в сеансі. Потім слідує одне або кілька вікон з
документами, в яких розміщуються формули, малюнки і т.д. В нижній
частині вікна знаходиться полоса Status line, яка містить інформацію про
систему.

Робота в Maple в режимі сесії (session) — користувач вводить команди,
математичні вирази, процедури, які сприймаються і інтерпретуються Maple.
Кожна команда повинна завершуватися крапкою з комою (;) або двокрапкою
(:). В першому випадку під запрошенням буде виведений результат
виконання команди або інформація про помилку, в другому випадку
результат не виводиться. Для того, щоб відмінити всі зроблені дії і
початку нового сеансу без виходу із Maple використовують команду
restart.

Крім того, в Maple можна вводити таблиці і текстові параграфи,
структурувати текст і документ, добавляти гіперссилки, які об’єднують
кілька документів в книги подібні до електронних. В документ також можна
вставляти об’єкти (рисунки і таблиці) і другі програми, використовуючи
інтерфейс OLE2.

Зазначимо, що різні документи, відкриті в одному сеансі, використовують
спільну область пам’яті, і значення, присвоєне змінній в одному
документі, зберігається при переході до другого документу. Для
реалізації багатозадачної роботи існує програма Parallel Server maple 6.
Її інтерфейс ідентичний головній програмі wmaple, але при роботі
призначення змінних дійсні тільки в межах “рідного” документу.

Оболонка

Команди Maple набираються після запрошення (>). Можливі два способи
представлення введеного: стандартна математична нотація і нотація
Maple.В першому випадку на екрані дисплея інтеграли, суми та ін. будуть
задаватися своїми математичними формулами, в другому — за допомогою
текстових еквівалентів.

Натискання клавіші Enter запускає виконання введених команд. Якщо
інтерпретатор порахував введене кінцеве представлення, то команди
виконуються, в іншому випадку Maple очікує закінчення вводу. Знайшовши
помилку, Maple видає в наступному рядку інформацію про неї, при
синтаксичній помилці символом ^ задається перша цифр. Яка не
розпізнається.

Результати роботи можуть бути збережені в файлах різних форматів.
Поточний документ (області вводу і виводу, коментарі, текст, графіка)
записуються в файл з розширенням .mvs. При записі в файли з другими
розширеннями зберігаються тільки області вводу і тексти коментарів. Крім
того ввесь документ або його частина можуть бути збережені в форматах,
які допускають їх використання в других програмах.

В пакеті Maple постійно з’являються нові команди, відповідно, можливості
для проведення математичних викладок, обчислень, графічного відображення
інформації, при цьому відбуваються зміни в синтаксисі і оболонці.

Організація документа

Набір і виконання команд проходить по групам (Execution Group). Кожна
група складається з кількох частин: область вводу (Input Region) з
командами виконання і тексти коментаріїв (Text Region). Область виводу
може включати результати виконання математичних операцій і алгоритмічних
операцій, а також графічні образи (двовимірна і трьохвимірна графіка).
Групи виділяються зліва квадратними дужками і розділяються сепараторами
(Separator), яких по замовчуванню не видно, але можуть бути зроблені
видимими. Для структурування документу можуть використовуватися
параграфи.

Система меню

Головне меню складається з пунктів, які наведені в таблиці 1.1

Таблиця 1.1.Головне меню

Пункт Призначення

File

Edit

View

Insert

Format

Spreadsheet

Option

Window

Help Робота з файлами

Редагування

Перегляд

Вставка

Форматування документу

Робота з таблицями

Установки і параметри

Робота з вікнами

Довідка

Представимо окремі меню Maple, групуючи близькі по сенсу пункти.
Багатокрапка в пунктах меню означає появу додаткового вікна для вказання
імені документу, що читається.

після пункту меню вказує на додаткове меню. Так, при виборі пункту
Export As викликає меню форматів для експорту документа (HTML…, LaTex…,
Maple explorer…, Maple Text…, Maple Plain…, RTF…).

Таблиця 1.2 Меню File-робота з файлами, друк

Пункти Призначення

New

Open…/Open URL…

Save…/Save As

Export As

Close

Save Setting/AutoSave Settings

Print/Print Preview/Print Setup

Exit Створити новий документ

Відкрити документ/відкрити сторінки URL

Зберегти/зберегти як

Експортувати в вигляді

Закрити документ

Зберегти параметри Maple/режим автоматичного зберігання

Друк/перегляд сторінки для друку/установка параметрів друку

Вихід

Призначення пунктів меню редагування в основному відповідають стандартам
Windows (див.табл.1.3). Копіювання тексту Maple і відповідна вставка
призначені для того, щоб при операціях опустити вивід а перенести тільки
команди Maple.

Edit Таблиця 1.3. Меню редагування

Пункти Призначення

Undo/Redo

Cut

Copy/Copy as Maple Text

Paste/Paste Maple Text

Delete Paragraph

Select All

Find

Hyperlinks

Object

Entry mode

Split/Join

Execute

Remove Output Відмінити дію, вернути дію

Вирізати в буфер

Копіювати в буфер/Копіювати як текст Maple

Вставити з буфера/Вставити як текст Maple

Видалити параграф

Виділити все

Пошук і заміна

Редагування гіперпосилань

Редагування об’єкта OLE2

Переключення моди вводу від стандартної математичної до текстової

Розділення і об’єднання груп і секцій

Видалення області виводу для виділеної частини

Видалення області виводу для виділеної частини або всього документу

з’являється меню, яке дозволяє по вибору встановлювати палітри
грецьких букв (Symbol Paleyye), шаблонів математичних виразів
(Expression Palette) і задання матриць (Matrix Palette), задати режим
присутності (Show All Palettes) або відсутності (Hide All Palettes) всіх
палітр.

Таблиця 1.4. Меню View — вигляд оболонки

Пункти Призначення

Status Bar

Palettes

Zoom Factor

Bookmarks

Back/Forward

Hide Content

Show Invisible Characters

Show Section Ranges

Show Group Ranges

Show OLE type

Expand All Sectiopn/

Collapse All Sections Перемикачі, які регулюють відображення рядка
Toolbar, а також панелі з значками операцій Context Bar і оформлення

Допоміжні палітри грецьких букв, математичних шаблонів і матриць

Вибір дозволу(50-400%)

Редагування закладок

Переміщення назад/вперед по гіперссилці

Підменю перемикачів, які дозволяють сховати таблиці, ввід, вивід,
графіку

Перемикачі, які регулюють відображення службових символів, діапазонів
секцій, діапазонів груп і об’єктів OLE

Відкриття і закриття секцій

В режимі відображення діапазонів секцій (груп) встановлюються
вертикальні лінії для відмітки секцій (груп) . Можливість одночасно
відкрити чи закрити всі секції полегшує роботу з великими
структурованими документами.

Призначення пунктів меню вставки (див.табл.1.5) відповідно: забезпечує
перехід від текстового режиму вводу команд і математичних формул,
використовуючи різні нотації, вставляти групи, параграфи, розділи,
підрозділи і ін., створювати документ, який зручний для читання і
використання у науковій роботі, викладання, публікаціях і презентаціях.

Таблиця 1.5.Меню вставки Insert

Пункти Призначення

Text/Standart Math

Maple Input/

Standart Math Input

Execution Group

Plot

Spreadsheat

Paragraph

Section, Subsection

Hyperlink…

OLE Object

Page Break Перехід в текстовий режим/перехід в режим набору математичної
функції в тексті

Перехід в режим вводу команд/перехід в режим набору команд в
математичній моді

Вставити групу

Вставити двовимірний чи трьохвимірний рисунок

Вставити параграф (абзац)

Вставити розділ чи підрозділ

Вставити посилання на URL, документ чи довідку

Вставити об’єкт OLE 2.0

Вставити розділювач сторінок

Підменю, яке появляється при виконанні команди Execution Group і
Paragraf, дозволяє виконати вставку нової групи і параграфа до чи після
групи, яка відмічена курсором.

За допомогою підменю Plot можна вставити порожній двовимірний чи
трьохвимірний графік, а також осі координат. Можна виділити в документі
і скопіювати в область малюнка різні функції чи вирази для побудови
графіка.

Текстове оформлення документа, параметри сторінки, призначення стилів,
виділення і використані стилі — все це встановлюється в меню Format
(див.табл.1.6).

Таблиця 1.6. Меню Format-форматування документу.

Пункти Призначення

Stylies…

Page Numbers..

Italic, Bold, Underline

Left Justify, Center, Right Justify

Paragraph, Character

Indent, Outdent

Convert to… Редагування стилів

Нумерація сторінок

Виділення шрифта відповідним стилем

Режими вирівнювання

Оформлення тексту, призначення шрифту

Формування секції, обернене перетворення

Перетворення виділеного тексту в гіперссилку, математичну чи Maple —
нотацію

За допомогою команди Styles меню Format викликається спеціальне вікно
для зміни стилів.

Для зміни властивостей шрифту потрібно натиснути кнопку Font.

Пункт меню Convert to… дозволяє перетворити текст до одного з видів:
текст (Text), формула в тексті (Standart Math), вираз, команда в
математичній нотації (Standart Math Input).

Speadsheet. В документі при цьому появиться таблиця, і на панелі
Context Bar відображаються кнопки команд роботи з таблицею. Спосіб
взаємодії з таблицями в Maple нагадує роботу з другими електронними
таблицями, в тому числі Excel.

Таблиця 1.7. Меню Speadsheet — робота з таблицями.

Пункти Призначення

Evaluate Selection Evaluate Spreadsheet

Row

Column

Filt

Import Data/Export Data

Properties

Show Border

Resize to Grid Обчислювати виділене / таблицю

Розмір, вставка, видалення рядка

Розмір, вставка, видалення стовпця

Заповнення виділеного

Зчитування/збереження даних

Властивості комірок (точність, режим обчислення)

Показувати обрамление

Масштабування

Speadsheet. При цьому появиться таблиця. Робота з таблицями може
проводитися як інтерактивно, так і з використанням пакета Speard.

Встановити необхідні властивості документу і параметри роботи дозволяють
пункти меню Option. Це в основному перемикачі. Різні можливості
розміщення декількох документів здійснюється за допомогою меню Windows.
Крім того, це меню містить імена відкритих в сеансі документів і
сторінок довідки, що дозволяє переходити до потрібного документа, якщо
він захований за другим.

Таблиця 1.8. Меню Option — можливості

Пункти Призначення

Replase Output

Insert Mode

Browser

Accept Launches

Export

Input Display

Output Display

Assumed Variables

Plot Display

Display 2-D Lagends

Print Quality

Palette Size

Auto Save Режим заміщення при виводі (перемикач)

Вставка нової групи при виконанні (перемикач)

Вибір браузера для відкриття URL

Запит на виконання команд Maple з других додатків

Параметри експорту документа (worksheet)

Нотація для команд, що вводяться (стандартна чи математична)

Нотація для виводу результату

Управління видом змінних, відносно яких зроблені позначення

Режим виводу графіки (документ чи окреме вікно)

Вивід легенди для двовимірних графіків

Якість друку

Розмір палітри

Режим автозберігання

Таблиця 1.9. Меню windows — робота з вікнами.

Пункти Призначення

Cascade/Tile

Horizontal/Vertical

Arrange Icons

Close All/Close All Help Розмістити документ каскадом/без накладання

Розмістити документи в ряд по горизонталі/вертикалі

Розприділити значки

Закрити всі документи/закрити всі довідки

По команді Закрити всі Maple поцікавиться про збереження тих документів,
зміни в яких були записані.

2.Знаходження похідної функції і інтеграла за допомогою системи Maple.

допомогою команд diff (expr, x) або Diff (expr, x). Ці команди можна
застосовувати також для знаходження частинних похідних функцій багатьох
змінних. В цьому випадку використовують такий формат команди:

Diff (expr, x1$n1, x2$n2,…). Тут expr — функція, яка залежить від
змінних x1, x2, …, а n1, n2,… — порядки похідних по відповідним змінним.

Наведемо приклад:

:

%=simplify(value(%));

>u:= z^(x*y):diff (u, x) : diff (u, y) : diff (u, z);

>factor (diff (u , z$4) );

Якщо правило диференціювання функції невідоме, або одна із змінних
неявно залежить від другої, то в результаті будуть зберігатися символи
диференціювання. Наприклад:

>alias(y = y(x)):diff(x^2 + y^2 = g(x), x);

Для задання диференціального оператора використовується символ D.
Диференціальний оператор D застосовується в тих випадках, коли шукається
похідна функції, а не виразу і результатом дії оператора буде також
функція. Приклад:

Аналогічний результат можна отримати, використовуючи команду unapply
(giff (g(x), x, x) ).

Для знаходження частинних похідних функції декількох змінних
використовується звернення до оператора D з індексами, які вказують, по
якому аргументу диференціювати.

Наприклад, обчислення оператора Лапласа L функції h буде виглядати так:

Перейдемо до знаходження інтеграла від функції. Для того, щоб знайти
невизначений інтеграл використовується команда: int (expr, var), де expr
— функція, яка інтегрується, var — змінна інтегрування.

Приклад:

Для обчислення визначених інтегралів використовується команда int (expr,
var = a..b), де expr, функція, яка інтегрується, var — змінна
інтегрування, а (a, b) — відрізок інтегрування.

. Щоб обчислити подвійний, потрійний і т.д. інтеграл, цю команду
потрібно застосувати кілька разів.

Приклад:

Знайдемо повторний інтеграл:

Якщо інтеграл не виражається через елементарні функції, то інколи
відповідь можна виразити через елементарні функції, використовуючи
додаткові умови на параметри і змінні (команда assume).

Приклад:

Definiti integration : Can’t determine if the integral is convergent.

c

Will now try indefinite integration and then take limits.

Якщо інтеграл не обчислюється аналітично і підінтегральна функція не
містить невизначених параметрів, то його можна обрахувати чисельно.

Для цього використовується команда:

Тут обов’язковими параметрами є підінтегральна функція expr, яка
залежить тільки від змінної x і меж інтегрування a і b, а
необов’язковими — число значущих цифр digits і flag — код числового
методу.

Приклад:

— константа Каталана.

3.Аналітичний розв’язок звичайних ДР.

Розглянемо приклад задання ДР і звернемося до команди dsolve.

Команда dsolve має такий формат:

Dsolve (рівняння, невідомі [опції]; параметром “рівняння” задається одне
ДР або невідомі функції системи диференціальних рівнянь, які як і самі
рівняння системи, повинні бути представлені в вигляді множини.
Необов’язковий параметр — “опції”, який задає методи і форму
представлення розв’язку. Для того, щоб задати похідну функції в ДР
можна використати команду diff ( ) або оператор D, причому саму невідому
функцію потрібно визначати з вказанням незалежної змінної, наприклад
y(x). З командою diff ( ) ми уже знайомі.

Якщо неповне задання рівняння (відсутній знак рівності), то система
Maple доповнює рівняння нульовою правою частиною:

Розв’язок лінійного рівняння 2-го порядку знайдемо у вигляді суми
експонент з довільними сталими.

Рзглянемо для цього рівняння задачу Коші:

Зауважимо, що змінна ic має тип exprsed (послідовність виразів). Її
об’єднання з рівнянням de взято в фігурні дужки для того, щоб оформити
вираз типу Set (множина). Якщо змінну ic зразу визначити, як множину, то
перший аргумент команди dsolve повинен бути оформлений як сума множин.
Для цього потрібно взяти de у фігурні дужки і застосувати спеціальну
операцію об’єднання (union). Знайдемо розв’язок крайової задачі. Для
цього задамо крайові умови в вигляді множин і звернемося до команди
dsolve:

В Maple 6 можна проглядати хід розв’язання при використанні dsolve. Для
цього потрібно використати команду:

>infolevel [dsolve]:=3;

:=3

В результаті для лінійного диференціального рівняння 5-го порядку з
сталими коефіцієнтами маємо:

>de:= (D 5)(y)(x)-(D 3)(y)(x) + a*D(y)(x)-a*y(x): dsolve(de);

)(y)(x) + aD(y)(x) — ay(x)

Methods for high order ODEs:

Trying to isolate the derivative d^5y/dx^5…

Successful isolation of d^5y/dx^5

->Trying classification methods

Trying a quadrature

Trying high order axact linearfully integrable

Trying constant coefficients

Linear constant coefficient successful

Відповідь містить структуру RootOf, причому, в якості індекса виступає
змінна _а. Функція RootOf появляється, коли для диференціального
рівняння не вдається факторизувати характеристичний поліном.

Для того, щоб перевірити, чи знайдені розв’язки SOL задовольняють
рівняння чи систему ODE, використовують функцію odetest:

odetest (SOL, ODE)

Наприклад, для лінійного диференціального рівняння п’ятого порядку з
сталими коефіцієнтами, яке розглядали вище отримаємо:

>odetest (%,de);

0

Якщо після підстановки розв’язку в рівняння чи систему рівнянь 0 не
отримали, то можна перетворити відповідь, використовуючи команди
combine, expand і інші.

4.Розв’язання задачі Коші для ДР в системі Maple.

Розв’язання задачі Коші в системі Maple таке ж просте, як і відшукання
загального чи наближеного розв’язку. Для цього слід задати перший
параметр команди dsolve ( ) в вигляд множини. Елементами якої є саме
рівняння і всі початкові умови. Розв’яжемо задачу Коші і крайову задачу
для наступного диференціального рівняння 2-го порядку:

>eqn1:=diff(y(x1,x$2)+k^2*y(x)=0;

Задача Коші для цього рівняння потребує задання в нульовій точці
значення невідомої функції і її першої похідної:

>dsolve ( {eqn1, y(0) = 0, D(y)(0) = 1, y (x) );

Початкові умови задаються у вигляді рівнянь, в лівій частині яких
міститься параметр(значення невідомої функції чи похідної певного
порядку) в відповідній точці, а в правій частині — значення цього
параметру. Звернемо увагу на те, що при заданні похідних в початкових
умовах, потрібно використовувати оператор D — команда diff ( ) тут не
використовується.

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

Таблиця 1

Значення Опис

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

Dverk78 Метод Рунне — Кутта порядку 7-8

По замовчуванню (якщо не задана властивість method) застосовується

метод Рунне – Кутта — Фальберга 4 — 5 порядку.

5.Знаходження числового розв’язку ДР.

Для числового розв’язку диференціальних рівнянь за допомогою команди
dsolve потрібно вказати параметр numeric.

Це можна зробити 2-ма способами:

dsolve (ODE, VAR, type = numeric, OPT) або dsolve (ODE, VAR, numeric,
OPT).

Рівняння і початкові умови задаються у вигляді множини ODE, VAR
(невідома функція або множина невідомих функцій), додаткові параметри
OPT визначають метод числового розв’язку задачі Коші і ряд параметрів
методу. В якості правої частини конструкції method = MET можуть
виступати: метод Рунне – Кутти – Фельберга порядку 4-5 (rkf45), Метод
Рунне — Кутти 7-8 порядку (dverk78), однокроковий (gear) і
багатокроковий (mgear) методи Гіра і набір методів для систем
“жестких” рівнянь lsode. Ряд класичних методів можна визначити за
допомогою конструкції metho = classical [MET], тут в якості MET можна
вказати різні варіанти методу Ейлера (foreuler, heunform, impoly),
декілька методів Рунне — Кутти,

багатокрокові методи (adambash, admoulton). Додатково можуть бути
визначені метод розкладу в ряд Тейлора для обрахунку (taylorseries).

Для ряду методів існує своя система параметрів, опис яких можна
отримати, звернувшись до справки. По замовчуванню, для інтегрування
використовується метод Рунне – Кутти — Фельберга.

Наступний приклад показує знаходження числового розв’язку задачі Коші і
його застосування.

>eqn1:= diff (y(x), x$2) + k^2*y(x)=0;

Змінній F присвоюємо результат числового розв’язку задачі Коші для ДР
другого порядку (в нульовій точці задається значення невідомої функції і
її першої похідної):

>F:= dslve ( {eqn1, y(0) = 0, D(y)(0) = 1}, y(x), type = numeric);

F:= proc (rkf45_x)…end proc

Якщо не присвоїти параметру k конкретного числового значення, то спроба
отримати значення розв’язку в точці, наприклад x=1, приведе до помилки.
Потрібно обов’язково задати всі символьні параметри ДР числовими
значеннями.

>k:= 1;

>F(0); F(1); F(2);

y(x)=1.]

y(x)=.5403023090400994189]

y(x)=-.416146840428394782]

Звернемо увагу на те, в якому вигляді побудована процедура числового
розв’язку видає результати в вигляді списку значень незалежної змінної,
самої функції і її похідних (до порядку на одиницю меншого самого
рівняння).

За допомогою параметра output = listprocedure сформується список
процедур — по процедурі на кожну змінну:

>p:= dsolve ( {diff (x(t), t) = y(t), diff ( y(t), t) = -x(t)^3 + x(t),

x(0), y(0)=0.1}, { x(t), y(t) },

type = numeric, output = listprocedure:

p:= [t = (proc(t)…end proc), x(t) = (proc(t)…end proc), y(t) =
(proc(t)…end proc)]

Для того, щоб при допомозі команди dsolve отримати розв’язок у вигляді
таблиці можна використати параметр value = x з масивом точок x, для яких
буде обраховано розв’язок:

>ode:= {D (y) (t) = y(t)*(1- y (t) ), y(0) = .5};

arr:= array( [0..5,1.0,2.0,5.0] ):

F:= dsolve (ode, y(t), tupe = numeric, method = gear, value = arr):

[t, y(t)]

F:= 0 5

.5 .6224593304

.7310585770

.8807970769

.9933071788

Можна написати власну процедуру інтегрування, наприклад My_Sheme.

6.Наближені методи розв’язання звичайних ДР.

Для розв’язання нелінійних задач, які не подаються аналітичним методом,
можуть бути використані числові процедури. При цьому повинні бути
визначені числові значення всіх параметрів. Якщо розв’язку в замкнутій
формі немає, а числові підходи неможливі або непотрібні, то можна
використовувати наближені методи. Для цього команда dsolve має параметр
series для пошуку розв’язку у вигляді розкладу в ряд і параметр laplace
для застосування методу перетворення Лапласа.

Наведемо приклади звернення до команди dsolve з параметром series.
Спочатку переозначимо значення змінної Order, яка задає порядок для
обчислення розкладів, а потім отримаємо розв’язок для нелінійного
рівняння 2-го порядку:

>Order:= 4: de:= (D 2) (y)(x) — y(x)^2 = sin(x);

>dsolve (de, y(x), series);

В відповіді фігурують невизначені початкові значення для функції і
першої похідної. За допомогою команди subs легко задати потрібні
значення:

>subs (y(0) = 0, D(y) (00=1, %);

Розглянемо ще один приклад:

>restart; Order:= 5; de:= D(y)(x)-sin9b*y(x)0=x;

>sol:= dsolve ( {de, y(0) = 0}, y(x), series);

de:= D(y)(x) — sin( by(x) ) = x

Виконаємо перевірку. Для цього використаємо команду odetest і розклад в
ряд, для того, щоб позбутися синуса.

>te:= series (map (odetest, [sol], de) [ ], x);

7.Структура об’єкта Desol. Застосування до ДР.

Навіть у тому випадку, коли відсутнє явне представлення розв’язку, можна
працювати з розв’язком ДР чи системи. Для цього вводиться спеціальний
об’єкт Desol:

Desol (ODE, VARsol:= Desol (diff (y(x), x, x)+asin (y(x) ), y(x) );

Наступним прикладом покажемо, як використовувати об’єкт Desol для
отримання наближеного розв’язку розкладом в ряд (команда series) і
побудови числового розв’язку. Задамо рівняння Дуффінга і початкові
умови:

>de:= diff (y(x), x, x) + y(x) + y(x)^3 = cos (x);

>ic:= {y(0) = 0, D(y)(0 = 1};

ic:= {y(0), D(y)(0)=1}

Визначимо сам об’єкт Desol:

>des:= Desol (de, y(x), ic);

При спробі аналітичного розв’язання задачі Коші для даного рівняння
область визначення залишається порожньою:

>dsolve ( {de} union ic, y(x) };

Використаємо команду series для обрахунку розв’язку в вигляді ряду по
степенях x, а отриманий вираз перетворимо у поліном за допомогою команди

convert:

>Poly:= convert (series (des, x = 0), polinom);

Потім згенеруємо процедуру числового розв’язку:

>Y:= dsolve ( {de} union ic, y(x), type = numeric);

Y:= proc (rkf45, x)…end proc

Тепер за допомогою команди odeplot з графічного пакета plots побудуємо
графік числового розв’язку, за допомогою універсальної команди plot —
графік полінома, а отримані малюнки об’єднаємо командою display:

>pY:= plots [odeplot] (Y [x, y(x)], 0..2, color = blak);

>pP:= plot (Poly, x=0..2, thickness = 2, color=black);

>plots [display] ( {pY, pP}, axes = boxed);

8.Пакет Detools. Застосування.

Для кваліфікаційної роботи з звичайними диференціальними рівняннями

призначений пакет Detools.

Для використання команд із пакета Detools можна підключити увесь пакет

командою

with (Detools) або виконати відповідну команду COM за допомогою
звернення

with (Detools, COM).

Крім того, можна використовувати повну форму звернення, вказуючи в
квадратних дужках ім’я команди після імені пакета:

Detools [COM] (…)

Пакет складається з декількох груп команд.

Підпакет Poincare недавно включений в Maple. В його склад входить
команда отримання гамільтонової системи рівнянь по заданому
гамільтоніану (hamilton_eqs), команда підготовки початкових точок для
інтегрування generate_ic, головна команда poincare для отримання
двовимірних і троьхвимірних січних Пуанкаре і команда zoom, яка дозволяє
збільшити чи зменшити масштаб відображення перерахунку траєкторій.

Для перетворення ДР використовують наступну групу команд : autonomous,
convertsys, DEnormal, indicialeq, reduceOrder, regularsp, translate,
untranslate, varparam. Так, команда convertAlg понижає порядок рівняння,
а команда regularsp вичислює сингулярні точки для лінійних рівнянь.
Команда convertAlg використовується для отримання коефіцієнтів
диференціального рівняння, а команда Denormal — для нормалізації його
коефіцієнтів, причому, може застосовуватися як до рівняння, так і до
списку коефіцієнтів. Пояснимо дію цих команд простим прикладом:

>de:= D(y)(x)/x + diff (y(x), x, x) + x; DE:= convertAlg (de, y(x) );

DE:= [ [0,1/x,1], -x]

>Denormal (de, x, y(x) );

Для перетворення рівняння високого порядку до системи рівнянь першого
порядку використовують команду, дію якої показує наступний приклад:

>converrtsys ( {de}, {y(0)=a}, {y(x)}, x, y, d_y);

Відповідь дається у вигляді списку, який в свою чергу складається з
рівнянь, в яких у лівій частині використано позначення похідних (в
прикладі d_y), списку замін, початкової точки і списку початкових
значень.

Команди, які використовуються для перетворення диференціальних рівнянь,
можуть використовуватися до рівнянь з частинними похідними і навпаки.
Наприклад, команда dchange з пакету PDEtools дозволяє проводити заміну
змінних в диференціальних рівняннях. В попередніх версіях для цього в
пакеті Detools була команда Dchangevar.

Велика група команд призначена для класифікації ДР, а також для
перетворення ДР з використанням інтегрувальних множників і груп симетрії
Лі.

Важливу роль для вивчення і пошуку значень відіграє команда odeadvisor,
яка видає інформацію про тип розглядуваного рівняння чи системи.
Наприклад, для рівняння другого порядку визначається його тип — це
рівняння Бесселя:

>ode:= x^2*(D 2)(y)(x) + x*D(y)(x) — 9x^2 + 1)*y(x) = 0;

>Detools [odeadvisor] (ode); [ [_Bessel,_modifield] ]

>dsolve (ode);

Y(x) = _C1 BesselI (1, x) + _C2 Bessel K (1, x)

Для роботи з лінійними диференціальними рівняннями і побудови формальних
розкладів існують команди пакета Slode і спеціальна структура
LODEstruct. Можна також звести вихідне ДР до рівняння меншого порядку,
розв’язки якого є також розв’язками вихідної задачі і працювати з
диференціальними операторами. Для перетворення рівнянь до
диференціального оператора використовується команда de2diffop, а для
зворотного перетворення — diffop2de.

Наступна група команд забезпечує побудову розв’язку у в замкнутій
системі:

Dfactorsols, RiemannPsols, abelsols, bernoullisol, chinisol,
clairautsol, constcoeffsols, eulersols, exactsol, expsols, genhomosol,
kovacicsols, liesol, linearsol, matrixDE, parametricsol, polysols,
ratsols, riccatisol, separablesol.

Розроблювачі Maple прагнуть до того, щоб всі рівняння з довідки по ДР
були представлені в пакеті. Через неможливість навіть короткого опису
типів рівнянь, які розв’язуються точно обмежимося переліком команд,
вказуючи кореневе слово, якщо є кілька видів рівнянь і команд даного
класу.

Команди аналізу рівняння першого порядку включає наступні типи: Абеля
(Abel), однорідні (homogeneos), Бернуллі (Bernoulli), Рікатті (Riccati),
а також лінійні (linear) і рівняння, які розв’язуються точно (exact) та
інші.

Наведемо приклад розв’язання лінійного диференціального рівняння з
змінними коефіцієнтами:

>lin_ode:= diff ( y(x) ,x) + sin (x)*y(x) — sin(2*x);

>Detools [odeadvisor] (lin _ ode): so:= dsolve (lin _ ode);

[_linear]

Зауважимо, що аналізу і розв’язку підлягають рівняння з довільними
функціями в ролі коефіцієнтів:

>lde:= diff (y(x), x) + f(x)*y(x) — g(x);

>Detools [odeadvisor] (lde): so:= dsolve (lde);

[_linear]

Для розв’язання рівняння другого порядку є команди, які орієнтовані як
на окремі важливі рівняння, так і на цілі класи рівнянь: Bessel,
Duffing, ellipsoidal, elliplic, Emden, erf, Gegenbauer, Halm,Hermite,
Jacobi, Lagerstrom, Laguerre, Lienard, Liouville, linear_sym, Painleve,
quadrature, sys_Fx, Titchmarch, Van_der_Pol.

Для розв’язання рівняння другого і вище порядків застосовують наступні
команди: exact_linear, exact_nonlinear, linear_ODEs, missing,
quadrature, reducible.

Розглянемо в якості прикладу рівняння Ван дер Поля:

>VdP:= diff (y(x), x, x) — mu*(1 — y(x)^2)*diff ( y(x), x) + y(x);

DETools [odeadvisor] (VdP); ans:= dsolve (VdP, way = 3);

[ [_2nd_order,_missing_x], _Van_der_Pol]

Відповідь представлена спеціальною структурою ODESolStruc, яка
появляється у тому випадку, коли для розглядуваного диференціального
рівняння був понижений порядок, але розв’язку не було отримано.
Структура містить термін &where і складається з двох полів:
функціонального представлення в нових змінних і списку трьох множин
(зведене диференціальне рівняння, пряме і обернене перетворення
змінних).

9.Числовий розв’язок системи звичайних ДР з використанням MATLAB.

Розглянемо застосування MATLAB до числового інтегрування отриманої
системи ДР. В MAPLE проведемо заміну змінних, наблизивши їх імена до
синтаксису MATLAB. Замість змінних vi(t), ci(t), si(t) введемо змінні
y(k), для чого оформимо множину (змінна podst), яка задає потрібну
підстановку:

>podst:= {seq (v[i](t) = y(i), i=1..N),

seq (c[i](t) = y (i+N), i=1..N), s0(t) = y (2*N+1),

seq (s[i](t) = y(i+2*N+1), i=1..N)};

Для числового розв’язку значення всіх параметрів задачі повинні бути
визначені. Виберемо один набір величин і сформуємо множину parsubs для
підстановки значень параметрів у рівняння:

>parsubs:= {delta|} 0=0.00001,

delta | | 1=0.2, delta| |2=0.005, kappa=6., C=0.65};

Для перетворення рівнянь опишемо масив і присвоємо його елементам праві
частини диференціальних рівнянь, в яких здійснені описані підстановки:

>eqbuf:= array (1,,NEQ);

>for I from 1 to NEQ do eqbuf [I]:=

rhs (evalf (subs (parsubs, subs (podst, equat [i])))); od;

Для звернення до команди розв’язку системи ДР пакету MATLAB необхідно
сформувати файл, який задає праві частини системи. Наступні команди
задають процедуру на мові MATLAB (m — файл) і записують її в файл
робочого каталогу MATLAB:

>open (“c:\\MatlabR11\\work\\rmaple.m”.WRITE);

writeline (“c:\\MatlabR11\\work\\rmaple.m”,

“function f = rmaple(t,y)”):

writeline (“c:\\MatlabR11\\work\\rmaple.m”.”f=[…”):

for I from 1 to NEQ do

nn:= nops (eqbuf [I] ): j:=1: uu:=0:

while jNEQ then writeline (“c:\\MatlabnR11\\work\\rmaple.m”,

cat (convert(uu,string),”:///”))

else writeline (“c:\\MatlabbR11\\work\\rmaple.m”,

cat (convert(uu,string),”];”)) fi;

fi: od: close(“c:\\MatlabR11\\work\\rmaple.m”):

В результаті в файлі rmaple.m будуть міститися команди MATLAB, які
реалізують праві частини отриманої системи звичайних ДР.

function f = rmaple (t, y)

f=[…

-.9869604404e-4*y(1)-18.84955592*y(26):…

-2.*y(37)*y(25)-6.756115171*y(37)-.7071067810*y(31)^2+…

-.7071067810*y(18)*y(31)-.7071067810*y(17)*y(32)-

1.*y(25)*y(24)+…

-.7071067810*y(13)*y(36)-1.414213562*y(30)*y(32)

.7071067810*y(22)*y(27)+…

-1.414213562*y(26)*y(36)-.7071067810*y(20)*y(29)-

.7??????????????????????????????????????????????????????????????????????
???????????????????????????????????????????

Перед переглядом команд MATLAB підключимо необхідну бібліотеку:

>with (Matlab):

Для розв’язання задачі Коші визначимо початкові значення невідомих:

>yinit:= array (1..NEQ):

>for I from 1 to NEQ do yinit[I]:=0.01: od:

>yinit [N+1]:= 0.2: yinit [2*N+1]:= 0.5: yinit [2*N+2]:=0.1:

Тепер два рази звернемося до команди ode45 для розв’язання системи
звичайних диференціальних рівнянь методом Рунне — Кутти. Перший
розрахунок проводять для встановлення режиму, отримані в його результаті
значення змінних є початковими для другого розрахунку. По другому
розв’язку можна судити про встановлений режим взаємодії популяцій:

>ti :=0: tf :=40.0:

>(T, Ysol) := ode45 (“rmaple”, ti..tf.yinut. “tol”:=.01):

>ti :=0: tf:=40.0;

>(T,Ysol := ode45 ( “rmaple”. T ..tf. yinit. ‘tol” = .001 ):

Наступний рядок виводить кількість точок числового розв’язку:

>nsol:= size (Ysol) [1];

nsol:= 13993

Для візуалізації розв’язку вирахуємо аналітично дві величини — середнє
по відрізку значення жертв і середню їх кількість:

>I:= ’i’:varplot1:= subs (podst, parsubs,

int (value (C+c(t, x))*value (s (t, x) ), x=0..1));

varplotI:= y(14)y(25) + y(20)y(31) + y(19()y(30) + y(13)y(24) +
y(17)y(28) + y(12)y(23) + y(16)y*(27) + y(15)y(26) + .65y(21)_y(18)y(29)
+ y(11)y(220)

>varplot2:= subs (poast, parsubs, int (value (s (t, x) ), x = 0..1) );

varplot2: + y (25)

Сформуємо двовимірний масив Yplot, який містить значення змінних
varplot1 і varplot2 в різні періоди часу. Зауважимо, що для кожного
моменту часу t формується допоміжна змінна ppp для підстановки чисел
замість відповідних символьних змінних:

>Yplot:= array (1..nsol, 1..2):

>for I from 1 to nsol do

ppp:={seq(y(j)=Ysol[I,j],j=1..NEQ)}:

Yplot [I,1] := subs (ppp, varplot1 0:

Yplot [I,2]:= subs (ppp, varplot2): od:

Щоб закрити сеанс Matlab необхідно виконати команду:

> Matlab[closelink]():

Висновки

В курсовій роботі розглянули програму Maple і застосування її до
звичайних диференціальних рівнянь. Зокрема, інтерфейс програми,
організацію документу і систему меню, як запустити на виконання введені
команди.

Задача знаходження похідної функції і інтеграла за допомогою системи
Maple реалізовується за допомогою відповідних команд (diff (expr, x),
int (expr, var)). Розглянули приклади на знаходження похідної функції,
невизначеного і визначеного інтеграла за допомогою розглянутих команд. А
також команду dsolve для знаходження аналітичного розв’язку ДР, приклад
на застосування. В системі Maple можна розв’язувати задачу Коші. Для
знаходження числового розв’язку обов’язково необхідно задати всі
символьні параметри числовими значеннями. В тому випадку, коли відсутнє
явне представлення розв’язку ми розглянули спеціальний об’єкт Desol для
роботи з ДР чи системою ДР. Показали, як використовувати Desol для
отримання наближеного розв’язку розкладом в ряд і побудови числового
розв’язку. Розглянули пакет Detools, який дає великі можливості для
перетворення ДР, пониження порядку, перетворення рівняння до
диференціального оператора, побудови розв’язку у замкнутій системі тощо.

Розглянули пакет Matlab, за допомогою якого можна знайти числовий
розв’язок системи звичайних диференціальних рівнянь.

Використана література:

Матросов А.В “Maple 6. Решение задач высшей математики и механики”.

1. Heal K.M., Hansen M.L “Maple 6 Learning Guide”. Waterloo Maple Inc.,
2000. — 314.

Carron j. “Maple 6 Programming Guide”. Waterloo Maple inc., 2000.-586
с.

3. Волков Е.А. “Численные методы : Учеб. Пособие для вузов”. – М.:
Наука, 1987. – 248 с.

4.Евсеев Е.А., Зенкевич Н.А., Лукьянова А.Е. “Основы математического
анализа для менеджеров: ”Учебное пособие СПб. :Изд-во с. —
Петербургского университета”, 1996- 108с.

5. Коллатц Л., Альбрехт Ю. ”Задачи по прикладной математики.” – М. :
Наука, 1978.-167с.

6. Пискунов Н.С.”Дифференциальное и интегральное исчисление”. – М. :
Наука, 1978. Т.2.-576 с.

7. Постов В.А “Численные методы расчета судових конструкций”. – Л. :
Судостроение, 1977 – 280с.

В. Говорухин. Б. Цибулин “Компьютер в математическом исследовании”.
602c.

1. Говорухин В.Н., Цибулин В.Г “Введение в Maple. Математический пакет
для всех. М. : Мир, 1997.

2. Дьяконов В. “Математическая система Maple 5. Солон 1998.

3. Матросов А. “Maple 6. Решение задач…” БХВ – Петербург, 2001.

4. Прохоров Г., Колосев В., Желков К., Леденев М. “Математический пакет
Maple 5 Release 4 : Руководство пользователя. Калуга : облиздат.. 1998.

5. Хайрер Я., Нерсет С., Ваннер Г. Решение обыкновенных дифференциальных
уравнений. : М. : Мир. 1986.

PAGE

PAGE 27

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *