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

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

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

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

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

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА кафедра ЗІ ЗВІТ До лабораторної роботи №4 з курсу: «Комп’ютерні методи дослідження інформаційних процесів та систем» на тему: «Методи чисельного розв’язування диференціальних рівнянь» Варіант №9 МЕТА РОБОТИ Ознайомлення методами чисельного розв’язання диференціальних рівнянь. КОРОСТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ Модифікований метод Ньютона. Метод Ейлера є найпростішим методом розв’язування задачі Коші. Він дозволяє інтегрувати ДР першого порядку виду.  (4) Метод Ейлера базується на розкладі функції  в ряд Тейлора в околі точки    (5) Якщо  мале, то, знехтувавши членам розкладу, що містять в собі  і т.д. отримаємо  (6) Похідну знаходимо з рівняння (4), підставивши в нього початкову умову. Таким чином можна знайти наближене значення залежної змінної при малому зміщенні  від початкової точки. Цей процес можна продовжувати, використовуючи співвідношення. , роблячи як завгодно багато кроків. Похибка методу має порядок , оскільки відкинуті члени, що містять  в другій і вище степенях. Недолік методу Ейлера - нагромадження похибок, а також збільшення об’ємів обчислень при виборі малого кроку  з метою забезпечення заданої точності. В методі Ейлера на всьому інтервалі  тангенс кута нахилу дотичної приймається незмінним і рівним . Очевидно, що це призводить до похибки, оскільки кути нахилу дотичної в точках  та  різні. Точність методу можна підвищити, якщо покращити апроксимацію похідної. ЗАВДАННЯ № п./п Диференційне рівняння Початкові умови  9     БЛОК-СХЕМА АЛГОРИТМУ СПИСОК ІДЕНТИФІКАТОРІВ КОНСТАНТ, ЗМІННИХ, ФУНКЦІЙ, ВИКОРИСТАНИХ У ПРОГРАМІ, ТА ЇХ ПОЯСНЕННЯ Main() – головний метод; input() – метод зчитування введених даних; class Program – клас, який містить тільки головну функцію Main(); class Main – клас, у якому відбуваються усі дії; Console.ReadLine() та Console.ReadKey() – функція зчитування з клавіатури; Console.WriteLine() та Console.Write() – функції виведення на екран; Convert.ToDouble() – функція конвертування у тип Double; try {} catch (Exception) {} – функція перехоплення винятку; goto – оператор переходу виконання коду до відповідної мітки; for() – оператор циклі з передумовою; if {} else {} – оператор умови; ТЕКСТ ПРОГРАМИ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace kmd_lab6 { class Program { static void Main(string[] args) { Main p = new Main(); p.calc(); Console.Write("\nPress <Enter> to exit..."); Console.ReadKey(); } } class Main { public int i, n = 1, a, b; public double h = 0.01, x; double[] f = new double[2]; double[] y = new double[2]; public void input() { inpt: try { Console.Write(" Почтакове значення y = "); y[0] = Convert.ToDouble(Console.ReadLine()); Console.Write(" Значення a = "); a = Convert.ToInt32(Console.ReadLine()); Console.Write(" Значення b = "); b = Convert.ToInt32(Console.ReadLine()); } catch (Exception) { Console.WriteLine("\tВиникла помилка!!!"); goto inpt; } } public void dy() { f[0] = y[0]; y[0] = Math.Sqrt(Math.Pow(Math.Sin(x * x), 2) + 3); } public void eiler() { dy(); for (i = 0; i < n; i++) { y[i] = y[i] + h * f[i]; } x += h; } public void calc() { input(); x = a; do { eiler(); Console.WriteLine(" x = {0:0.#0}\ty' = {1}", x, y[0]); } while (x <= b); } } } РЕЗУЛЬТАТ РОБОТИ ПРОГРАМИ  ... ... ...  ВИСНОВОК Отже, під час лабораторної роботи я ознайомився з методами чисельного розв’язування диференціальних рівнянь. За допомогою методу Ейлера склав алгоритм розв’язування диференціальних рівнянь.
Антиботан аватар за замовчуванням

28.05.2013 18:05-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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