Знаходження розв'язку диференціального рівняня методом Рунге-Кутта-Мерсона в середовищі програмування Delphi

Програми написані на мові Borland Delphi і дозволяє вирішувати диференціальні рівняння першого порядку точності, використовуючи для цього метод Рунге-Кутта-Мерсона. Перевагою даного методу є можливість оцінити похибку на кожному кроці інтегрування і в залежності від цього зменшити чи збільшити даний крок. Така можливість дає змогу досягнути заданої точності розв'язку та значно скоротити час рішення диференціального рівняння.

Суть роботи програми доволі проста, за вхідними даними (інтервал інтегрування і крок h) формується масив X[i], і такої ж розмірності масив Y[i], значення елементів якого заповнюються за алгоритмом методу Рунге-Кутта-Мерсона. Також відмітимо, що при роботі з програмою слід враховувати, що точність результату значною мірою залежить від величини кроку інтегрування, тобто чим менший крок h тим більша точність результуючих даних.

Результатом роботи програми є вивід послідовності точок (масив X[i]) та значень функції в них (масив Y[i]), а також побудова відповідного графіка в компоненті TChart.

Читати повністю

Метод Рунге-Кутта-Мерсона. Розв'язування звичайних диференціальних рівнянь методом Рунге-Кутта-Мерсона

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

Метод Рунге-Кутта-Мерсона

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

Метод Рунге-Кутта-Мерсона

після чого послідовні значення Метод Рунге-Кутта-Мерсона шуканої функції Метод Рунге-Кутта-Мерсона визначаються за наступною формулою:

Читати повністю

Знаходження розв'язку задачі Коші засобами Delphi використовуючи метод Мілна

Розглянемо delphi-проект, який використовуючи метод Мілна четвертого порядку точності (відноситься до групи методів прогнозу і коррекції) знаходить чисельний розв'язок задачі Коші. Перш ніж приступити до розгляду головної форми delphi-програми, нагадаємо, що основна ідея методів прогнозу і коррекції полягає в тому, що  рішення в наступній точці знаходиться у два етапи. На першому етапі знаходимо прогнозоване значення функції. На другому — корекція значення отриманого на попередньому етапі. Більш детальну інформацію про метод Мілна можна знайти за посиланням Знаходження розв'язку задачі Коші використовуючи метод Мілна.

Отже, після запуску програми, яка реалізує Метод Мілна, на екрані появиться форма наступного виду:

Головна форма delphi-проекту, який використовуючи метод мылна знаходить розвєязок задачі Коші

Головна форма delphi-проекту, який використовуючи метод Мілна знаходить розв'язок задачі Коші

Читати повністю

Знаходження розв'язку задачі Коші використовуючи метод Мілна

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

Нехай потрібно знайти розв'язок задічі Коші:

Метод Мілна

Для цього, виберемо деякий крок Метод Мілна, і покладемо:

Метод Мілна

Далі, виходячи з того, що для знаходження значення Метод Мілна метод Мілна використовує інформацію з чотирьох попередніх точок Метод Мілна, знаходимо їх використовуючи початкову умову та будь-який з однокрокових методів (метод Ейлера, методо Рунге-Кутта).

Читати повністю

Мінімізація функції багатьох змінних використовуючи метод Ньютона (метод Ньютона на Delphi)

Програма призначена для знаходження точки мінімуму функцій декількох змінних, тобто для мінімізації цих функцій. У програмі реалізовано один з методів, який відноситься до методів другого порядку — метод Ньютона. Даний метод при пошуку мінімуму використовує інформацію про функцію та її похідні до другого порядку включно. Детально розглядати теоретичну частину методу Ньютона в даному параграфі не будемо, її можна знайти за посиланням мінімізація функції багатьох змінних використовуючи методом Ньютона. Розглянемо лише delphi-проект, який реалізує алгоритм даного методу.

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

  1. У поле «Функція» — X*X+Y*Y-16.
  2. У поле «Список змінних» — X;Y.
  3. У поле «Початкове значення» — 0;0.

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

Читати повністю

Мінімізація функції двох змінних використовуючи метод Ньютона (метод Ньютона на Delphi)

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

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

Читати повністю

Мінімізація функції методами других порядків (метод Ньютона)

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

Метод Ньютона

де Метод Ньютона — квадратна матриця (матриця Гессе), елементами якої є частинні похідні другого порядку функції optumizacija_metodom_njytona4 в точці Метод Ньютона і які можна обчислити за наступною формулою:

Метод Ньютона

Далі, для визначення напрямку пошуку точки мінімуму за методом Ньютона, замінимо в виразі (1) Метод Ньютона на Метод Ньютона і Метод Ньютона на Метод Ньютона. В результаті отримаємо:

Читати повністю

« Попередня сторінкаНаступна сторінка »