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

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

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

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

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

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

Міністерство освіти і науки, молоді та спорту України Національний університет «Львівська Політехніка» ІКТА Кафедра ЗІ  Звіт до лабораторної роботи №6 з дисципліни: «Комп’ютерні методи дослідження інформаційних процесів та систем» на тему: «Методи чисельного розв’язування диференціальних рівнянь» Мета роботи Ознайомлення з методами чисельного розв’язування диференційних рівнянь. Метод Ейлера Метод Ейлера є найпростішм методом розв’язування задачі Коші. Він дозволяє інтегрувати ДР першого порядку виду.  (4) Метод Ейлера базується на розкладі функції  в ряд Тейлора в околі точки    (5) Якщо  мале, то, знехтувавши членам розкладу, що містять в собі  і т.д. отримаємо  (6) Похідну знаходимо з рівняння (4), підставивши в нього початкову умову. Таким чином можна знайти наближене значення залежної змінної при малому зміщенні  від початкової точки. Цей процес можна продовжувати, використовуючи співвідношення. , роблячи як завгодно багато кроків. Похибка методу має порядок , оскільки відкинуті члени, що містять  в другій і вище степенях. Недолік методу Ейлера - нагромадження похибок, а також збільшення об’ємів обчислень при виборі малого кроку  з метою забезпечення заданої точності. В методі Ейлера на всьому інтервалі  тангенс кута нахилу дотичної приймається незмінним і рівним . Очевидно, що це призводить до похибки, оскільки кути нахилу дотичної в точках  та  різні. Точність методу можна підвищити, якщо покращити апроксимацію похідної. Завдання Розв’язати чисельним методом звичайне диференційне рівняння. 11     Текст програми using System; 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(); //f[0] = y[0]; //y[0] = Math.Sqrt(Math.Pow(Math.Sin(x * x), 2) + 3); 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]); //x += h; } while (x <= b); } } } Результат роботи програми  Висновок В цій лабораторній роботі я ознайомилася з методами чисельного розв’язування диференційних рівнянь, а саме з методом Ейлера
Антиботан аватар за замовчуванням

29.05.2013 23:05-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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