МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ІКТА
Кафедра Захист інформації
З В І Т
До лабораторної роботи №6
з курсу:
„ Комп’ютерні методи дослідження
інформаційних процесів та систем ”
на тему:
„ МЕТОДИ ЧИСЕЛЬНОГО РОЗВ’ЯЗУВАННЯ
ДИФЕРЕНЦІАЛЬНИХ РІВНЯНЬ ”
Варіант 17
Львів – 2010
Мета роботи - ознайомлення з методами чисельного розв’язування диференційних рівнянь.
Короткі теоретичні відомості
Диференціальне рівняння (ДР), що містить лише одну незалежну змінну і похідні за нею, називають звичайними (ДР). ДР, що містить декілька незалежних змінних і похідні за ними, називають рівняння в частинних похідних
Порядком ДР називається найвищий порядок похідної (або диференціалу), який входить в рівняння. Звичайне ДР (ЗДР) -го порядку в загальному випадку має незалежну змінну, невідому функцію та її похідні до -го порядку включно:
(1)
- незалежна змінна;
- невідома функція (залежна змінна);
- похідні цієї функції.
Диференціальне рівняння -го порядку, розв’язане відносно старшої похідної, може бути записано у вигляді:
(2)
Щоб розв’язати ЗДР, необхідно мати значення залежної змінної та (або) її похідних при деяких значення незалежної змінної.
Якщо ці значення задані при одному значенні незалежної змінної - така задача називається задачею з початковими умовами або задачею Коші, а при або більше значеннях незалежної змінної - задача називається крайовою.
Значення залежної змінної та її похідних називаються додатковими умовами, котрі в задачі Коші називаються початковими, а в крайовій задачі - граничними.
Метод Рунге – Кутта четвертого порядку
В методі Рунге-Кутта значення функції , як і в методі Ейлера, визначається за формулою
Якщо розкласти функцію в ряд Тейлора і обмежитись членами до включно, то приріст можна записати у вигляді
(10)
Замість того, щоб обчислювати члени ряду за формулою (10) в методі Рунге-Кутта використовують наступні формули.
Похибка на кожному кроці має порядок . Таким чином метод Рунге-Кутта забезпечує значно вищу точність ніж метод Ейлера, однак вимагає більшого об’єму обчислень.
Деколи зустрічається інша форма представлення методу Рунге-Кутта 4-го порядку точності.
Завдання
Розв’язати методом Рунге-Кутта 4-го порядку звичайне диференціальне рівняння
Блок-схема алгоритму програми
/
Список індентифікаторів, змінних, функцій, використаних у блок-схемі алгоритму і програмі, та їх пояснення
x, у – змінні дійсного типу, які є аргументами виразу;
Math – клас, в якому визначено стандартні математичні функції;
double – тип з плаваючою точкою подвійної точності;
do-while - оператор циклу з післяумовою;
Main() – головна функція;
Sin (x) - повертає синус параметра х;
Pow(x,y) - повертає значення х піднесене до степеня у;
\n - нова сторінка , символ нового рядка;
Текст програми
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace RyngeKutta4
{
class Program
{
static void Main(string[] args)
{
double x, y, ynext=0, h, k1, k2, k3, k4, yn;
x = 0;
y = 0;
h = 0.1;
yn = 0;
do
{
yn = ynext;
yn = Math.Sin(x + Math.Pow(y, 2));
k1 = Math.Sin(x + Math.Pow(y, 2));
k2 = Math.Sin((x + h / 2) + Math.Pow(y + h / 2 * k1, 2));
k3 = Math.Sin((x + h / 2) + Math.Pow(y + h / 2 * k2, 2));
k4 = Math.Sin((x + h) + Math.Pow(y + h * k3, 2));
ynext = yn + (h / 6) * (k1 + 2 * k2 + 2 * k3 + k4);
Console.WriteLine("Значення х={0} y={1}", x, ynext);
x = x + h;
} while (x <= 1.0);
Console.WriteLine("\nРезультат");
Console.WriteLine(ynext);
Console.ReadLine();
}
}
}
Виконання програми
/
Висновок
На цій лабораторній роботі я ознайомився з методами чисельного розв’язування диференційних рівнянь.
Я склав програму мовою C# для для розв’язування звичайного диференціального рівняння методом Рунге-Кутта 4-го порядку.