DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Методи чисельного розв’язування диференціальних рівнянь

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра захисту інформації

Інформація про роботу

Рік:
2011
Тип роботи:
Інші
Предмет:
Комп’ютерні методи дослідження інформаційних процесів та систем

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА” ІКТА Кафедра захисту інформації З В І Т До лабораторної роботи №6 з курсу: „ Комп’ютерні методи дослідження інформаційних процесів та систем ” на тему: «Методи чисельного розв’язування диференціальних рівнянь» Варіант 10 Мета роботи: Ознайомлення з методами чисельного розв’язування диференційних рівнянь. Вступ Диференціальне рівняння (ДР), що містить лише одну незалежну змінну і похідні за нею, називають звичайними (ДР). ДР, що містить декілька незалежних змінних і похідні за ними, називають рівняння в частинних похідних Порядком ДР називається найвищий порядок похідної (або диференціалу), який входить в рівняння. Звичайне ДР (ЗДР) -го порядку в загальному випадку має незалежну змінну, невідому функцію та її похідні до -го порядку включно:  (1)  - незалежна змінна; - невідома функція (залежна змінна); - похідні цієї функції. Диференціальне рівняння -го порядку, розв’язане відносно старшої похідної, може бути записано у вигляді:  (2) Щоб розв’язати ЗДР, необхідно мати значення залежної змінної та (або) її похідних при деяких значення незалежної змінної. Якщо ці значення задані при одному значенні незалежної змінної - така задача називається задачею з початковими умовами або задачею Коші, а при  або більше значеннях незалежної змінної - задача називається крайовою. Значення залежної змінної та її похідних називаються додатковими умовами, котрі в задачі Коші називаються початковими, а в крайовій задачі - граничними. Задача Коші Задача Коші формулюється так: Нехай задане ДР  (3) з початковими умовами . Потрібно знайти функцію , що задовольняє дане рівняння та початкову умову. Для одержання чисельний розв’язку цієї задачі спочатку обчислюють значення похідної, а потім задаючи малий приріст, переходять до нової точки  Положення нової точки визначають за нахилом кривої, обчисленому з допомогою ДР. Таким чином, графік чисельного розв’язку являє собою послідовність коротких прямолінійних відрізків, якими апроксимується істинна крива . Сам чисельний метод визначає порядок дій при переході від даної точки кривої до наступної. Існують дві групи методів розв’язування задачі Коші. Однокрокові методи. В них для знаходження наступної точки на кривій  потрібна інформація лише про попередній крок. Багатокрокові. Для знаходження наступної точки кривої  вимагається інформація більш ніж про одну з попередніх точок. Всі ці методи розв’язування ДР дають розв’язок у вигляді таблиці значень. Методи з автоматичною зміною кроку Застосовуються в тому випадку, якщо розв’язок потрібно одержати із заданою точністю. При високій точності (похибка ) автоматична зміна кроку забезпечує зменшення загального числа кроків в декілька разів (особливо при розв’язках у вигляді кривих, що сильно відрізняються крутизною). Метод Рунге-Кутта-Фельберга з автоматичною зміною кроку Це метод четвертого порядку, дає більш точну оцінку похибки (порівняно з методом Рунге-Кутта-Мерсона) на кожному кроці і реалізується послідовним циклічним обчисленням за наступними формулами:        Похибка  Якщо а) , крок  зменшується в двічі б) Якщо , крок  збільшується вдвічі. Час розрахунку для однієї точки удвічі більший, ніж для методу Рунге-Кутта-Мерсона 2. ЗАВДАННЯ ДО ЛАБОРАТОРНОЇ РОБОТИ Розв’язати чисельним методом диференціальне рівняння. 10     Блок схема програми + - - +  Список індентифікаторів, змінних, функцій, використаних у блок-схемі алгоритму і програмі, та їх пояснення class Program – клас, в якому оголошений метод Main; class RungeKuFelberg –клас, в якому оголошені методи f, Metod; public void f – метод обчислення функції; public void Metod – метод обчислення диференціального рівняння з автоматичним вибором кроку; static void Main(string[] args) – головна функція; robly –екземпляр класу RungeKuFelberg; x, y, h, E,R,Y - змінні типу double; i – змінна типу int; Текст програми: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace laba6 { class Program { static void Main(string[] args) { RungeKuFelberg robly = new RungeKuFelberg(); robly.Metod(); Console.ReadLine(); } } class RungeKuFelberg { double x, y, h, k1, k2, k3, k4, k5, k6, R, E = 0.001, Y; int i; public double f(double X, double Y) { return Math.Cos(Math.Pow(X, 2)) + Math.Sin(Math.Pow(Y, 3)); } public void Metod() { x = 0; y = 1; for (x = 0; x <= 1; i++) { h = 0.01; do { k1 = h * f(x, y); k2 = h * f(x + h * 2 / 9, y + 2 * k1 / 9); k3 = h * f(x + h * 1 / 3, y + k1 * 1 / 12 + k2 * 1 / 4); k4 = h * f(x + h * 3 / 4, (y + k1 * 69 / 128) - k2 * 143 / 128 + k3 * 135 / 64); k5 = h * f(x + h, (y + k1 * 17 / 12 + k2 * 27 / 4 - k3 * 27 / 5 + k4 * 16 / 15)); k6 = h * f(x + h * 5/6,(y+k1*65/432)-(k2*5/16)+(k3*13/16)+(k4*4/27)+(k5 *5/144)); Y = f(x, y) + k1 * 1 / 9 - k3 * 3 / 100 + k4 * 16 / 45 + k5 * 1 / 12; R = k1 * 1 / 150 - k3 * 3 / 100 + k4 * 16 / 75 + k5 * 1 / 20 - k6 * 6 / 25; if (Math.Abs(R) > E) { h /= 2; } if (Math.Abs(R) < E / 30) { h *= 2; } else { Console.WriteLine("y= " + Y + "\tx= " + x); x += h; } } while (Math.Abs(R) > E); } } } } Результат виконання програми: y= 1,85128370998275 x= 0 y= 1,85128370475665 x= 0,01 y= 1,85128362857824 x= 0,02 y= 1,85128330007922 x= 0,03 y= 1,85128241725352 x= 0,04 y= 1,85128055745783 x= 0,05 y= 1,85127717741295 x= 0,06 y= 1,8512716132065 x= 0,07 y= 1,85126308029783 x= 0,08 y= 1,85125067352596 x= 0,09 y= 1,85123336712177 x= 0,1 y= 1,85121001472557 x= 0,11 y= 1,85117934941166 x= 0,12 y= 1,85113998372123 x= 0,13 y= 1,85109040970568 x= 0,14 y= 1,85102899898204 x= 0,15 y= 1,85095400280276 x= 0,16 y= 1,85086355214206 x= 0,17 y= 1,85075565780135 x= 0,18 y= 1,8506282105363 x= 0,19 y= 1,8504789812083 x= 0,2 y= 1,85030562096335 x= 0,21 y= 1,85010566144143 x= 0,22 y= 1,84987651501964 x= 0,23 y= 1,84961547509251 x= 0,24 y= 1,84931971639323 x= 0,25 y= 1,84898629535933 x= 0,26 y= 1,84861215054699 x= 0,27 y= 1,84819410309791 x= 0,28 y= 1,84772885726303 x= 0,29 y= 1,84721300098749 x= 0,3 y= 1,84664300656141 x= 0,31 y= 1,84601523134123 x= 0,32 y= 1,84532591854635 x= 0,33 y= 1,84457119813621 x= 0,34 y= 1,84374708777285 x= 0,35 y= 1,84284949387433 x= 0,36 y= 1,84187421276437 x= 0,37 y= 1,84081693192373 x= 0,38 y= 1,83967323134917 x= 0,39 y= 1,83843858502555 x= 0,4 y= 1,83710836251724 x= 0,41 y= 1,83567783068472 x= 0,42 y= 1,8341421555325 x= 0,43 y= 1,83249640419472 x= 0,44 y= 1,83073554706462 x= 0,45 y= 1,82885446007435 x= 0,46 y= 1,82684792713163 x= 0,47 y= 1,82471064271976 x= 0,48 y= 1,8224372146676 x= 0,49 y= 1,8200221670962 x= 0,5 y= 1,81745994354874 x= 0,51 y= 1,81474491031049 x= 0,52 y= 1,81187135992555 x= 0,53 y= 1,80883351491708 x= 0,54 y= 1,80562553171767 x= 0,55 y= 1,80224150481669 x= 0,56 y= 1,79867547113106 x= 0,57 y= 1,79492141460613 x= 0,58 y= 1,79097327105326 x= 0,59 y= 1,78682493323029 x= 0,6 y= 1,78247025617139 x= 0,61 y= 1,77790306277241 x= 0,62 y= 1,77311714963768 x= 0,63 y= 1,76810629319423 x= 0,64 y= 1,76286425607895 x= 0,65 y= 1,75738479380428 x= 0,66 y= 1,75166166170748 x= 0,67 y= 1,74568862218854 x= 0,68 y= 1,7394594522413 x= 0,69 y= 1,73296795128217 x= 0,7 y= 1,7262079492804 x= 0,71 y= 1,71917331519354 x= 0,72 y= 1,71185796571139 x= 0,73 y= 1,70425587431103 x= 0,74 y= 1,69636108062557 x= 0,75 y= 1,68816770012818 x= 0,76 y= 1,67966993413292 x= 0,77 y= 1,67086208011309 x= 0,78 y= 1,66173854233725 x= 0,79 y= 1,65229384282249 x= 0,8 y= 1,64252263260394 x= 0,810000000000001 y= 1,63241970331856 x= 0,820000000000001 y= 1,62197999910093 x= 0,830000000000001 y= 1,61119862878747 x= 0,840000000000001 y= 1,60007087842534 x= 0,850000000000001 y= 1,58859222408078 x= 0,860000000000001 y= 1,57675834494134 x= 0,870000000000001 y= 1,56456513670513 x= 0,880000000000001 y= 1,55200872524952 x= 0,890000000000001 y= 1,53908548057055 x= 0,900000000000001 y= 1,5257920309834 x= 0,910000000000001 y= 1,51212527757328 x= 0,920000000000001 y= 1,4980824088846 x= 0,930000000000001 y= 1,48366091583576 x= 0,940000000000001 y= 1,46885860684513 x= 0,950000000000001 y= 1,45367362315295 x= 0,960000000000001 y= 1,43810445432248 x= 0,970000000000001 y= 1,42214995390251 x= 0,980000000000001 y= 1,40580935523191 x= 0,990000000000001 Висновок: На цій лабораторній роботі я склав програму мовою С# і ознайомився з методом Рунге-Кутта-Фельберга з автоматичною зміною кроку для розв’язування рівнянь
Антиботан аватар за замовчуванням

25.12.2011 16:37

Коментарі

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

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!