МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ІКТА
Кафедра Захист інформації
З В І Т
До лабораторної роботи №6
з курсу:
„ Комп’ютерні методи дослідження
інформаційних процесів та систем ”
на тему:
„ Методи чисельного розв’язування диференціальних рівнянь”
Варіант 4
Львів – 2010
Мета роботи - ознайомлення з методами чисельного розв’язування диференціальних рівнянь.
Короткі теоретичні відомості
Диференціальне рівняння (ДР), що містить лише одну незалежну змінну і похідні за нею, називають звичайними (ДР). ДР, що містить декілька незалежних змінних і похідні за ними, називають рівняння в частинних похідних
Порядком ДР називається найвищий порядок похідної (або диференціалу), який входить в рівняння. Звичайне ДР (ЗДР) -го порядку в загальному випадку має незалежну змінну, невідому функцію та її похідні до -го порядку включно:
(1)
- незалежна змінна;
- невідома функція (залежна змінна);
- похідні цієї функції.
Диференціальне рівняння -го порядку, розв’язане відносно старшої похідної, може бути записано у вигляді:
(2)
Щоб розв’язати ЗДР, необхідно мати значення залежної змінної та (або) її похідних при деяких значення незалежної змінної.
Якщо ці значення задані при одному значенні незалежної змінної - така задача називається задачею з початковими умовами або задачею Коші, а при або більше значеннях незалежної змінної - задача називається крайовою.
Значення залежної змінної та її похідних називаються додатковими умовами, котрі в задачі Коші називаються початковими, а в крайовій задачі - граничними.
Метод Рунге – Кутта четвертого порядку
В методі Рунге-Кутта значення функції , як і в методі Ейлера, визначається за формулою
Якщо розкласти функцію в ряд Тейлора і обмежитись членами до включно, то приріст можна записати у вигляді
(10)
Замість того, щоб обчислювати члени ряду за формулою (10) в методі Рунге-Кутта використовують наступні формули.
Похибка на кожному кроці має порядок . Таким чином метод Рунге-Кутта забезпечує значно вищу точність ніж метод Ейлера, однак вимагає більшого об’єму обчислень.
Деколи зустрічається інша форма представлення методу Рунге-Кутта 4-го порядку точності.
Завдання
Розв’язати методом Рунге-Кутта 4-го порядку звичайне диференціальне рівняння.
; y(0)=1;
БЛОК-СХЕМА
Список індентифікаторів, змінних, функцій, використаних у блок-схемі алгоритму і програмі, та їх пояснення
Math – клас, в якому визначено стандартні математичні функції;
double – тип з плаваючою точкою подвійної точності;
if-else - умовний оператор;
Main() – головна функція;
Pow(x,y)-математична функція обчислення хп;
do while-оператор покрокового циклу;
Текст програми
#include <stdio.h>
#include <math.h>
void main()
{
double x,y,ynext,h,E,k1,k2,k3,k4;
x=0;
y=1.0;
ynext=1.0;
h=0.01;
E=0.0001;
do
{
y=ynext;
k1=pow(y,2)+y*pow(x,3);
k2=pow(y+(h/2)*k1,2)+(y+(h/2)*k1)*pow(x+h/2,3);
k3=pow(y+(h/2)*k2,2)+(y+(h/2)*k2)*pow(x+h/2,3);
k4=pow(y+(h/2)*k3,2)+(y+(h/2)*k3)*pow(x+h/2,3);
ynext=y+(h/6)*(k1+k2+k3+k4);
}
while
(fabs(ynext-y)>E);
printf("y=%lf",y);
}
Виконання програми
у=1.0000
y=1.0201
Висновок
На цій лабораторній роботі я ознайомився з методами розв’язування диференціальних рівнянь. Я склав програму мовою C для розв’язування диференціального рівняння методом Рунге-Кутта 4-го порядку.