Вирішувачі (solver) ОДУ в MATLAB

MATLAB. Звичайні диференціальні рівняння.

Динамічні системи

Методичні вказівки щодо виконання

Лабораторних робіт

MATLAB. Прості диференціальні рівняння. Динамічні системи. Методичні вказівки щодо виконання лабораторних робіт/Упорядники В.В. Андрєєв, І.К. Насиров. - Казань: Казан. держ. енерг. ун-т, 2016. - 149 с.

Розглянуто основні теоретичні та прикладні питання дисципліни «Комп'ютерна математика» за напрямом підготовки 230100.62 «Інформатика та обчислювальна техніка», профіль підготовки «Програмне забезпечення засобів обчислювальної техніки та автоматизованих систем». Наведено приклади, а також завдання для самостійної роботи та тестові питання.

Вказівки призначені для дисциплін "Додаткові розділи вищої математики", "Методи математичного моделювання", "Моделювання систем та процесів", "Теорія нелінійних динамічних систем", а також для напрямів "Прикладна математика", "Програмне забезпечення обчислювальної техніки".

Ó Казанський державний енергетичний університет, 2016

Сучасні системи комп'ютерної математики (СКМ) пропонують цілий набір інтегрованих програмних систем і пакетів програм для автоматизації математичних розрахунків: Eureka, Gauss, TK Solver!, Derive, Mathcad, Mathematica, Maple та ін. Виникає питання: яке місце посідає серед них система MATLAB?

MATLAB – одна з найбільш відомих, ретельно опрацьованих і перевірених часом систем автоматизації математичних розрахунків, побудована на розширеному представленні та застосуванні матричних операцій. Це знайшло свій відбиток у назві системи MATrix LABoratory – матрична лабораторія. Однак синтаксис мови програмуванняСистема продумана настільки ретельно, що ця орієнтація майже не відчувається тими користувачами, яких не цікавлять безпосередньо матричні обчислення.

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

Загалом MATLAB – це унікальна колекція реалізацій сучасних чисельних методів комп'ютерної математики, створених протягом останніх трьох десятків років. Вона увібрала в себе і досвід, і правила, і методи математичних обчислень, що накопичилися за тисячі років розвитку математики. Це поєднується з потужними засобами графічної візуалізації і навіть анімаційної графіки. Систему з прикладеною до неї великою документацією цілком можна розглядати як фундаментальний багатотомний електронний довідник з математичного забезпечення ЕОМ - від масових персональних комп'ютерів до супер-ЕОМ.

Можливості MATLAB дуже великі, а за швидкістю виконання завдань система нерідко перевершує своїх конкурентів. Вона може бути застосована для розрахунків практично в будь-якій галузі науки і техніки. Наприклад, дуже широко використовується при математичному моделюванні механічних пристроїв та систем, зокрема у динаміці, гідродинаміці, аеродинаміці, акустиці, енергетиці тощо. Цьому сприяє розширений набір матричних та інших операцій та функцій.

Ця робота містить методичні вказівки щодо виконання лабораторних робіт.

У першій лабораторній роботі розглядаються інтерфейс користувача і основні об'єкти MATLAB, а також оператори, типи даних і дії з ними.

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

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

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

Лабораторна робота №1

МЕТА РОБОТИ

Сформувати у студентів уявлення про застосування ДК у різних галузях; прищепити вміння розв'язувати завдання Коші для ДУу<<>> <<>><<> (x,y) на відрізку [a,b] при заданій початковій умовіу0 =f(x0).

Рішення звичайних диференціальних рівнянь (ОДП)

Рішувачі (solver) ОДУ в MATLAB

Аналіз поведінки багатьох систем та пристроїв у динаміці, а також вирішення багатьох завдань у теорії коливань зазвичай базується на вирішенні систем ОДУ. Їх, як правило, представляють у вигляді системи з диференціальних рівнянь (ДК) першого порядку у формі Коші:

з граничними умовамиy(t0,tend,p) =y, деtend,t0 початкові та кінцеві точки інтервалів. Параметрt(незалежна змінна) необов'язково означає час, хоча найчастіше рішення ДК шукається у часовій області. Система ДК у формі Коші записується аналогічно (1.1), але підyу цьому випадку мається на увазі вектор-стовпець залежних змінних. Векторpвизначає початкові умови.

Для вирішенняДК другого та вищого порядку їх потрібно звести до системи ДК першого порядку.

Можливі ДК, не дозволені щодо похідної:

Рівняння (1.2) аналітично до форми (1.1) зазвичай привести не вдається. Проте чисельне рішення особливих труднощів не викликає достатньо визначенняf(y,t) вирішити (1.2) чисельно щодо похідної при заданихyтаt.

Рішителі ОДУ

Для вирішення систем ОДУ в MATLAB реалізовано різноманітні чисельні методи. Їх реалізації названірозв'язувачамиОДУ.

У цьому розділі узагальнена назва solver (рішач) означає один з можливих чисельних методів рішення ОДУ: ode45, ode23, ode113, ode15s, ode23s, ode23t, ode23tb, bvp4c або pdepe.

Вирішувачі реалізують такі методи вирішення систем ДК:

• ode23 однокрокові явні методи Рунге-Кутта 2-го та 4-го порядків у модифікації Богацьки та Шампіна. За помірної жорсткості системи ОДУ та низьких вимог до точності цей метод може дати виграш у швидкості вирішення.

• ode113 багатокроковий метод Адамса-Башворта-Мултона змінного порядку класу предиктор-коректор. Це адаптивний метод, який може забезпечити точність рішення.

• ode15s багатокроковий метод змінного порядку (від 1 до 5, за умовчанням 5), який використовує формули чисельного «диференціювання назад». Це адаптивний метод, його варто застосовувати, якщо решатель ode45 не забезпечує рішення та система ДК жорстка.

• ode23s однокроковий метод, який використовує модифіковану формулу Розенброку 2-го порядку. Може забезпечити високу швидкість обчислень за низької точності рішення жорсткої системи ДУ.

• ode23t неявний метод трапецій з інтерполяцією. Цей метод дає хороші результати під час вирішення завдань, що описують коливальнісистеми з майже гармонійним вихідним сигналом При помірно жорстких системах дистанційного керування може дати високу точність рішення.

• ode23tb неявний метод Рунге Кутта на початку рішення та метод, який використовує формули «диференціювання назад» 2-го порядку надалі. Незважаючи на порівняно низьку точність, цей метод може виявитися ефективнішим, ніж ode15s.

• bvp4c служить для проблеми граничних значень систем ДУ видуy′ =f(t,y),F(y(a),y(b),p) = 0 (повна форма системи рівнянь Коші). Завдання, що вирішуються, називають двоточковими крайовими завданнями, оскільки рішення шукається при завданні граничних умов як на початку, так і в кінці інтервалу рішення.

Усі вирішувачі можуть вирішувати системи рівнянь явного видуy′ =F(t,y), причому для вирішення жорстких систем рівнянь рекомендується використовувати тільки спеціальні вирішувачі ode15s, ode23s, ode23t, ode23tb.