Практичне заняття 9. Розв’язування системи Ван-дер-Поля в системі matlab.
Відомий голандський фізик Балтазар Ван-дер-Поль (B. Van-der-Pol) у 20-тих роках минулого століття запропонував вдалу математичну модель лампового генератора періодичних електричних коливань, що отримала назву рівняння Ван-дер-Поля:
d2y/dt2 – μ(1–y2)∙dy/dt + ω2y=0; (9.9) де: μ(1–y2) – нелінійний коефіцієнт втрат, що залежить від y; ω – кругова частота власних коливань генератора.
Рівняння Ван-дер-Поля широко використовується для моделювання періодичних коливань у різних системах живої та неживої природи.
Д dy1/dt = y2; dy2/dt = μ(1–y12)∙y2 – ω2y1.
(9.10)
Розглянемо, як розв’язувати систему Ван-дер-Поля (9.10) у системі MATLAB. Задамо спочатку значення параметрів системи Ван-дер-Поля. Нехай параметр ω дорівнює одиниці. Параметр μ визначає жорсткість системи: чим більше μ, тим більша жорсткість. Нехай для жорсткої системи μ=200, а для нежорсткої μ=0.2.
Текст MATLAB-програми розв’язування системи Ван-дер-Поля наведено нижче.
%****************************************************************************
% Solving Van-der-Pol system:
% dy1/dt = y2; dy2/dt = mu*(1-y1^2)*y2 - y1;
%****************************************************************************
y0=[2, 0]; tlimit=[0, 50]; %tlimit=[0, 500];
options = odeset('Stats','on');
[t,y]=ode45(@vdpe,tlimit,y0,options); %Explicit Runge-Kutta metod
%[t,y]=ode23s(@vdpe,tlimit,y0,options); %Implicit Gear metod
plot(t,y(:,1),'.-');
% Content of the file vdpe.m
function dydt=vdpe(t,y)
% dy1/dt = y2; dy2/dt = mu*(1-y1^2)*y2 - y1;
dydt=[ y(2); 0.2*(1-y(1)^2)*y(2) - y(1) ];
% dydt=[ y(2); 200*(1-y(1)^2)*y(2) - y(1) ];
Перші оператори програми задають початкові значення змінних y0 та часовий інтервал розв’язування tlimit. Далі задано таке значення змінної options, щоб після розв’язування рівнянь виводились підсумкові результати. Подальше звертання до функції розв’язування рівнянь явним методом Рунге-Кутта ode45 створює вектор значень часового аргумента t та матрицю y, що містить вектори значень змінних y1 та y2. Аргументами функції ode45 є: звертання до файлу з іменем vdpe.m, в якому описана система Ван-дер-Поля; інтервал розв’язку tlimit; початкове значення вектора змінних y0; змінна options, що зумовлює вивід у командне вікно підсумкових результатів розв’язування (дивись таблицю 3). Часовий графік змінної y1 виводить у графічне вікно функція plot з позначенням обчислених кроків точками (дивись рис. 25). Аналогічне звертання до функції ode23s розв’язує систему неявним методом Гіра. Власне систему Ван-дер-Поля описує функція vdpe у файлі з іменем vdpe.m.
В тексті програми значення параметра μ=0.2 (mu) відповідає нежорсткій системі Ван-дер-Поля. Щоб перейти до розв’язування жорсткої системи, треба задати μ=200 і параметр tlimit=[0, 500] (дивись рис. 26). Відповідні оператори є в тексті програми, тільки позначені символом коментаря %.
Таблиця 3. Підсумкові результати розв’язування системи Ван-дер-Поля.
Нежорстка система, метод Рунге-Кутта.
72 successful steps
16 failed attempts
529 function evaluations
0 partial derivatives
0 LU decompositions
0 solutions of linear systems
Нежорстка система, метод Гіра.
302 successful steps
60 failed attempts
1632 function evaluations
302 partial derivatives
362 LU decompositions
1086 solutions of linear systems
Жорстка система, метод Рунге-Кутта.
54860 successful steps
3652 failed attempts
351073 function evaluations
0 partial derivatives
0 LU decompositions
0 solutions of linear systems
Жорстка система, метод Гіра.
586 successful steps
17 failed attempts
2966 function evaluations
586 partial derivatives
603 LU decompositions
1809 solutions of linear systems
Лабораторна робота 9. Розв’язування системи Ван-дер-Поля в системі MATLAB.
1. Набрати в системі MATLAB та відлагодити текст програми, що розв’язує систему Ван-дер-Поля.
2. Отримати розв’язки нежорсткої та жорсткої систем методами Рунге-Кутта та Гіра (рис. 25 та рис. 26).
3. Порівняти підсумкові результати розв’язування та зробити висновки щодо доцільності використання кожного з методів (таблиця 3).
4. Пояснити всі оператори MATLAB-програми.
Контрольні завдання до розділу 9
1. Чому єдиний розв’язок звичайного диференціального рівняння існує лише за початкових умов?
2. Виведіть ітераційну формулу метода Ейлера.
3. Поясніть проблему жорстких звичайних диференціальних рівнянь.
4. Запишіть формулу неявного метода Ейлера.
Рекомендована література
1. Фельдман Л. П., Петренко А. І., Дмитрієва О. А. Чисельні методи в інформатиці. Підручник. – К., 2006. – 480 с.
2. Чабан Василь. Чисельні методи. Навчальний посібник.– Львів, 2001. – 186 с.
3. Д. Каханер, К. Моулер, С. Неш. Численные методы и программное обеспечение. Пер. с англ. – М., 1998. – 575 с.
4. А. А. Самарский. Введение в численные методы. – М., 1982. – 272 с.
5. В. Дьяконов, В. Круглов. Математические пакеты расширения MATLAB. Спец. справочник. СПб, 2001. – 480 с.
Алфівітний покажчик термінів та власних імен.
Алгоритмічні мови – 6.
Графічна інтерпретація розв’язування СЛАР – 13, 16.
Жорсткі системи диференціальних рівнянь – 74, 75.
Звичайні диференціальні рівняння – 70.
„Золоте січення” – 56.
Інтерполяція поліноміальна – 22.
Математичне програмування – 54.
Матриця Вандермонда – 19, 23.
Мінімум глобальний та локальний – 53.
Модель задачі словесна, математична – 5.
Найменших квадратів метод – 16.
Некоректна математична задача – 37.
Некоректність обчислення похідних – 38.
Обумовленість СЛАР – 13.
Рунге функція, Рунге проблема – 23.
Сплайн – 28.
– – апроксимаційний – 29, 39.
– – інтерполяційний – 28, 39.
Степеневий поліном – 5, 23.
– – апроксимаційний – 24, 38.
– – інтерполяційний – 23, 24, 37.
Теорема Вейерштраcса – 23.
Умова існування єдиного розв’язку СЛАР – 13.
Штрафних функцій метод – 63.
Якоб’ян – 50, 74.
Адамар Жак-Саломон (Hadamard) – 37.
Ван-дер-Поль Балтазар (B. Van-der-Pol) – 75.
Вейерштраcс Карл (Carl Weierstrass) – 23.
Гаусс, Карл Фрідріх (Carl Friedrich Gauss) – 14, 16, 18.
Да Вінчі Леонардо (Leonardo da Vinci) – 56.
Данціг Джордж (Dantzig) – 67.
Евклід (Eνκλειδηζ, Euclid) – 56.
Ейлер Леонард (Leonhard Euler) – 72.
Канторович Леонід Віталійович – 59, 67.
Ковалевська Софія – 23.
Коші Огюстен (Augustin Cauchy) – 70.
Купманс Тьялінг (Koopmans) – 67.
Левер’є Урбен (Le Verrier), Адамс Джон (Adams) – 18.
Лейбніц Готфрід (Gottfried Wilhelm von Leibniz) – 35.
Нейман, Джон фон (John von Neumann) – 4.
Ньютон Ісаак (Isaak Newton) – 6, 35, 38, 45.
Піфагор (Πυθαγορασ, Pythagoras) – 56.
Рунге Карл (Runge) – 23, 76.
Чебишев Пафнутій – 23.
Якобі Карл (Carl Jacobi), Якобі Борис Семенович (Moritz Jacobi) – 50.
- Інститут підприємництва та перспективних технологій Матвійчук я.М. Методи та алгоритми обчислень на еом
- Передмова
- Розділ 1. Обчислювальний метод та обчислювальний алгоритм
- Практичне заняття 1. Обрахунок степеневого поліному в системі matlab
- Практичне заняття 2. Розв’язування систем лінійних рівнянь у системі matlab
- Лабораторна робота 2. Розв’язування систем лінійних рівнянь у системі matlab
- Практичне заняття 3. Інтерполяція та апроксимація функції Рунге в системі matlab
- Лабораторна робота 3. Інтерполяція та апроксимація функції Рунге в системі matlab
- Практичне заняття 4. Сплайн-інтерполяція та сплайн-апроксимація в системі matlab.
- Лабораторна робота 4. Сплайн-інтерполяція та сплайн-апроксимація в системі matlab.
- Практичне заняття 5. Обчислення означених інтегралів у системі matlab
- Практичне заняття 6. Розв’язування нелінійних рівнянь у системі matlab
- Лабораторна робота 6. Розв’язування нелінійних рівнянь у системі matlab
- Практичне заняття 7. Оптимізація функції однієї змінної у системі matlab
- Лабораторна робота 7. Оптимізація функції однієї змінної у системі matlab
- Практичне заняття 8. Розв’язування задачі лінійного програмуван ня в системі matlab
- Практичне заняття 9. Розв’язування системи Ван-дер-Поля в системі matlab.