Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки, молоді та спорту України
Національний університет «Львівська Політехніка»
ІКТА
Кафедра ЗІ
Звіт до лабораторної роботи №5
з дисципліни: «Комп’ютерні методи дослідження інформаційних процесів та систем»
на тему: «Методи чисельного розв’язування диференціальних рівнянь»
Мета роботи
Ознайомлення з методами чисельного розв’язування диференційних рівнянь.
Метод Ейлера
Метод Ейлера є найпростішм методом розв’язування задачі Коші. Він дозволяє інтегрувати ДР першого порядку виду.
(4)
Метод Ейлера базується на розкладі функції в ряд Тейлора в околі точки
(5)
Якщо мале, то, знехтувавши членам розкладу, що містять в собі і т.д. отримаємо
(6)
Похідну знаходимо з рівняння (4), підставивши в нього початкову умову. Таким чином можна знайти наближене значення залежної змінної при малому зміщенні від початкової точки. Цей процес можна продовжувати, використовуючи співвідношення.
,
роблячи як завгодно багато кроків.
Похибка методу має порядок , оскільки відкинуті члени, що містять в другій і вище степенях.
Недолік методу Ейлера - нагромадження похибок, а також збільшення об’ємів обчислень при виборі малого кроку з метою забезпечення заданої точності.
В методі Ейлера на всьому інтервалі тангенс кута нахилу дотичної приймається незмінним і рівним . Очевидно, що це призводить до похибки, оскільки кути нахилу дотичної в точках та різні. Точність методу можна підвищити, якщо покращити апроксимацію похідної.
Завдання
Розв’язати чисельним методом звичайне диференційне рівняння.
5
Текст програми
namespace Lab_6
{
class Program
{
static void Main(string[] args)
{
Lab Lab = new Lab();
Lab.Obrach();
Console.ReadLine();
}
}
class Lab
{
public int i, n = 1, a = 0, b = 1;
public double h = 0.01, x;
double[] f = new double[2];
double[] y = new double[2];
public void dy()
{
f[0] = y[0];
y[0] = Math.Sin(x + Math.Pow(y[0], 2));
}
public void Eiler()
{
dy();
for (i = 0; i < n; i++)
{
y[i] = y[i] + h * f[i];
}
x = x + h;
}
public void Obrach()
{
for (i = 0; i < n; i++)
{
Console.WriteLine("Pochatkove znachennja y");
y[i] = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("znachennja a");
a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("znachennja b");
b = Convert.ToInt32(Console.ReadLine());
}
x = a;
do
{
Eiler();
Console.WriteLine("x = " + x + "\ty1 = " + y[0]);
}
while (x < b);
Console.ReadLine();
Console.ReadLine();
}
}
}
Результат роботи програми
Висновок
В цій лабораторній роботі я ознайомилася з методами чисельного розв’язування диференційних рівнянь, а саме з методом Ейлера
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!