Розв’язування задачі Коші методом Рунге-Кутта

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

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

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

Рік:
2024
Тип роботи:
Лабораторна робота
Предмет:
Чисельні методи

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра АСУ Звіт Лабораторна робота № 8 «Розв’язування задачі Коші методом Рунге-Кутта» з дисципліни: «Чисельні методи» Варіант №9 Мета роботи: вивчити і засвоїти постановку та методи розв’язування задачі Коші. Навчитися досліджувати розв’язок , використовуючи метод Рунге-Кутта. Порядок роботи: Попереднє опрацювання теоретичного матеріалу. Отримання допуску до виконання лабораторної роботи. Опрацювання типового навчального завдання (прикладів). Створення проекту для виконання індивідуального завдання. Оформити звіт для захисту лабораторної роботи за зразком: назва роботи; мета роботи; короткі теоретичні відомості; алгоритм розв’язування задачі; тексти відповідних модулів проекту; аналіз отриманих результатів та висновки. 6. Захист лабораторної роботи. Завдання Застосовуючи чисельнi методи розв’язування задачi Кошi, розв’язати диференцiйне рiвняння першого порядку з точнiстю є =0.0001 на відрiзку  із кроком h= 0.05 i заданими початковими умовами , а також порівняти отриманий розв’язок із точним розв’язком y*, використовуючи правило Рунге.  Код програми #include "stdafx.h" #include <iostream> #include <cmath> #include <locale> #define H 0.05 #define E 2.71828 using namespace std; double msy[11]; double F (double x, double y) { return у*(2*х*х-у*у)/2*х*х*х; } void SetK (double& k1, double& k2, double& k3, double& k4, double x, int i) { k1=H*F(x, msy[i-1]); k2=H*F(x+H/2, msy[i-1]+k1/2); k3=H*F(x+H/2, msy[i-1]+k2/2); k4=H*F(x+H, msy[i-1]+k3); } void main () { setlocale (LC_ALL, ""); double k1, k2, k3, k4, x=0, yt; msy[2]=2; cout<<" X Точне значення Наближене значення Точнiсть"<<endl<<endl; printf ("%3.2f\t%f\t%f\t%f\n\n", x, msy[0],0,0); for (int i=1; i<(0.5/H+1); i++){ SetK (k1, k2, k3, k4, x, i); msy[i]=msy[i-1]+(1.0/6.0)*(k1+2*k2+2*k3+k4); x+=H; yt=х/sqrt(log(x/2)+1); //це є функція у* printf ("%3.2f\t%f\t%f\t%e\n\n", x, msy[i], yt, abs(msy[i]-yt)); } cin.get(); } Приклад виконання програми  Висновок: на даній роботі була створена програма розв’язування задачі Коші методом Рунге-Кутта. На скріншоті виконання програми проілюстровані отримані результати. Даний приклад демонструє розв’язання вказаної у завданні задачі Коші методом Рунге-Кутта на інтервалі х є [0, 0.5] з кроком h=0.05. Перший рядок таблийці ілюструє початкову умову: х=0, у=0.4. Як видно по стовбцях 2 і 3, які містять наближене значення обчислень методом Рунге-Кутта і точне значення, вони рівні до шести знаків після коми, а отже умова почності є = 0.0001 виконується. З четвертого рядка, який вказує точність обчислення видно, що точність обчислень на даному проміжку рівна є = 10-8, аналізуючи зміну точності обчислення видно, що точність з кожним кроком падає. Наприклад точність для: х1=0.05, точність=1.120*10-8; х6=0.3, точність=5.279*10-8; x10=0.5 точність=7.306*10-8. Таким чином видно, що даний метод має високу точність обчислення, яка залежить від обраної формули Рунге-Кутта і падає з кожною новою ітерацією у залежності від кроку (віддалення від початкової позиції).
Антиботан аватар за замовчуванням

06.12.2015 15:12-

Коментарі

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

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

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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