Головна

Метод Ейлера.

  1. I. Методичні рекомендації щодо вивчення
  2. I. МЕТОДИЧНЕ НАПРЯМОК
  3. I. Методи підрахунку показників
  4. I. ЗАГАЛЬНІ ОРГАНІЗАЦІЙНО-МЕТОДИЧНІ ВКАЗІВКИ
  5. I. Організаційно-методичний розділ

Розглянемо задачу Коші для рівняння 1-го порядку:

Будемо шукати чисельне рішення рівняння на відрізку [x0, b]. Задамо на цьому відрізку сітку {xi, i = 0,1, ...,N}, таким чином, щоб x0x1<... xN = b. Введемо позначення для кроку сітки hi = xi+1 - xi, i = 0, ...N-1. Замінивши похідну в рівнянні правої різницею, отримаємо

Відомо що y0 = y(x0) = ?. Звідки можна знайти всі інші значення yi по рекуррентной формулою:

Даний метод знаходження чисельного рішення називається методом Ейлера (або методом ламаних). Схеми, в яких значення функції явно виражається через уже знайдені значення, називаються явними, Інакше - неявними. Таким чином, схема Ейлера є явною. Оцінка похибки для даного методу дає O(max(hi)), Що передбачає малий крок сітки для отримання задовільного рішення.

На кожному з відрізків [xi, xi+1] Отримане рішення буде являти собою відрізок прямої, проведеної через точку (xi, yi) З кутовим коефіцієнтом f(xi, yi). Така геометрична інтерпретація рішення пояснює друга назва методу (метод ламаних).

Приклад п.1. Знайти чисельне рішення наступної задачі Коші на відрізку x? [0,1] методом Ейлера (на рівномірній сітці з кроком h = 0.1) і порівняти його з аналітичним:

Реалізуємо метод Ейлера у вигляді файл-функції:

function [yy, xx] = euler (f, x0, y0, xe, h)

xx = x0: h: xe; % Значення координат х для розрахунку

% Виділяємо пам'ять для значень функції:

yy = zeros (length (y0), length (xx));

yy (:, 1) = y0; % Початкове значення y

% Послідовне обчислення значень в циклі

for i = 1: length (xx) -1

yy (:, i + 1) = yy (:, i) + h * f (xx (i), yy (:, i));

end

end

Нам знадобиться також допоміжний файл для функції в правій частині рівняння:

function f = f (x, y)

f = x. ^ 2;

end

За допомогою створених функцій знайдемо розв'язок задачі Коші:

[Y, x] = euler (@ f, 0,1,1,0.1)

y =

1.0000 1.0000 1.0010 1.0050 1.0140 1.0300 1.0550 1.0910 1.1400 1.2040 1.2850

x =

0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000

Відобразимо на графіку отримане наближене рішення і точне рішення, знайдене аналітично (y = x3/ 3 + 1). На рис. П.1 суцільна крива - аналітичне рішення, пунктирна ламана із зірочками - наближений розв'язок.

Мал. П.1. Точне і наближене рішення задачі Коші

Вправа 1.Для виконання вправи вибрати завдання Коші для рівняння 1-го порядку відповідно до номером комп'ютера (список варіантів наведено в кінці лабораторної роботи).

1) Знайти рішення задачі на відрізку x? [0,1] методом Ейлера, використовуючи рівномірну сітку з кроком h = 0.1.

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

3) Побудувати графіки точного і чисельного рішень (на одному малюнку) і графік помилки обчислень (на окремому малюнку).

4) Повторити рішення задачі для кроку сітки h = 0.05. До графіками, побудованим в пункті 3, додати графік нового чисельного рішення і графік відповідної йому помилки.

2. Рішення рівнянь p-го порядку і систем звичайних диференціальних рівнянь.

Розглянемо звичайне диференціальне рівняння (ОДУ) p-го порядку:

Шляхом введення заміни {y(k) = yk, k = 1, ...,p - 1} дане рівняння можна звести до системи диференціальних рівнянь першого порядку:

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

Для знаходження рішення отриманої задачі Коші може бути застосований метод Ейлера, розглянутий раніше. Уявімо отриману задачу в векторному вигляді

ввівши позначення:

У даних позначеннях формули методу Ейлера можуть бути представлені у вигляді

Зверніть увагу, що функція для методу Ейлера, описана в прикладі П.1, спочатку була розрахована на роботу з перемінними y, y0, Заданими у вигляді вектора-стовпчика. Вносити додаткові зміни в цю функцію для вирішення систем рівнянь не потрібно. Достатньо лише правильно задати параметри і реалізувати обчислення правої частини.

Вправа 2.Для виконання вправи вибрати завдання Коші для рівняння 2-го порядку відповідно до номером комп'ютера (список варіантів наведено в кінці лабораторної роботи).

1) Знайти рішення задачі на відрізку x? [0,1] методом Ейлера, використовуючи рівномірну сітку з кроком h = 0.1 і попередньо перетворивши завдання в задачу Коші для системи рівнянь 1-го порядку.

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

3) Побудувати графіки точного і чисельного рішень (на одному малюнку) і графік помилки обчислень (на окремому малюнку).

4) Повторити рішення задачі для кроку сітки h = 0.05. До графіками, побудованим в пункті 3, додати графік нового чисельного рішення і графік відповідної йому помилки.

3. Методи Рунге-Кутта.

Для похибки методу Ейлера справедлива оцінка ? = O(h), Т. Е метод Ейлера має перший порядок точності. Це означає, що для зменшення похибки обчислень в 100 раз крок сітки також необхідно зменшити в 100 раз. Для більшості практичних завдань, на жаль, такий низький порядок точності не достатній.

Для вирішення поставленого завдання з більш високим порядком точності було придумано ціле сімейство методів, які отримали назву методи Рунге-Кутта. Найбільш популярний з цих методів - метод Рунге-Кутта 4-го порядку точності, який ми розглянемо далі. На практиці також часто застосовують метод 2-го порядку і вже знайомий нам метод Ейлера (він же метод Рунге-Кутта 1-го порядку). У літературі можна знайти методи Рунге-Кутта до 8-го порядку точності включно, але практичного поширення вони не отримали.

Для пошуку рішення задачі Коші за допомогою методів Рунге-Кутта в області рішення вводиться рівномірна сітка, і значення функції обчислюються послідовно в вузлах сітки, починаючи з відомого значення в точці x0. У загальному вигляді формула для обчислення нового значення функції задається як:

Кожен конкретний метод сімейства Рунге-Кутта визначається числом проміжних етапів (стадій) s і фіксованими значеннями коефіцієнтів aj, l, bj, cj. Значення коефіцієнтів підбираються таким чином, щоб при заданому порядку точності число необхідних стадій було мінімальним.

Зокрема, метод Ейлера має одну стадію і коефіцієнти b1 = 1, c1 = 0. Для досягнення 2-го порядку точності необхідно дві стадії (використовувані для цього значення коефіцієнтів можна легко знайти в літературі). Для досягнення 4-го порядку точності потрібно використовувати метод Рунге-Кутта з чотирма стадіями:

Метод з таким набором коефіцієнтів отримав назву методу Рунге-Кутти 4-го порядку. Для його похибки справедлива оцінка ? = O(h4), Т. Е при зменшенні кроку сітки в 10 разів, похибка зменшується в 10000 разів.

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

Приклад п.2. Написати файл-функцію, що реалізує метод Рунге-Кутта 4-го порядку. Передбачити можливість використання методу для системи рівнянь.

function [yy, xx] = runge (f, x0, y0, xe, h)

xx = x0: h: xe;

% Yy створимо у вигляді матриці, i-й рядок якої відповідає i-й функції

yy = zeros (length (y0), length (xx));

yy (:, 1) = y0;

for i = 1: length (xx) -1

k1 = h * f (xx (i), yy (:, i));

k2 = h * f (xx (i) + h / 2, yy (:, i) + k1 / 2);

k3 = h * f (xx (i) + h / 2, yy (:, i) + k2 / 2);

k4 = h * f (xx (i) + h, yy (:, i) + k3);

yy (:, i + 1) = yy (:, i) + (k1 + 2 * k2 + 2 * k3 + k4) / 6;

end

end

Вправа 3.Виконати завдання вправ 1 і 2, застосовуючи замість методу Ейлера метод Рунге-Кутта 4-го порядку. Порівняти похибки, отримані при використанні різних методів.

Рівняння Лапласа в прямокутнику | хвильові рівняння


Чисельні методи рішення диференціальних рівнянь у приватних похідних | Використання методу сіток для вирішення гіперболічних рівнянь | Використання методу сіток для вирішення еліптичних рівнянь | Висновок рівняння коливання струни | Жорстке закріплення. | Вільне закріплення. | Вправи. | Висновок рівняння теплопровідності | Метод Фур'є для кінцевого стрижня | Вправи. |

© 2016-2022  um.co.ua - учбові матеріали та реферати