Чисельні методи розв’язання звичайних диференціальних рівнянь

Автор работы: Пользователь скрыл имя, 18 Июня 2013 в 18:24, лабораторная работа

Описание работы

Мета роботи: Формування навичок практичного застосування чисельних методів розв’язання звичайних диференціальних рівнянь (ЗДР).
Необхідно розробити алгоритм методу вирішення ЗДР та розв’язати рівняння, використовуючи програму. При цьому задати кількість точок n =10, а крок за змінною h = 0,2; а також зменшити крок за змінною до h= 0,1 і побудувати 20 точок розв’язку. Результати двох розв’язків показати у вигляді графіків в одній системі координат. Порівняти і проаналізувати обидва розв’язки.

Файлы: 1 файл

звіт №4(заготовка).doc

— 245.50 Кб (Скачать файл)

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

ХАРКІВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ РАДІОЕЛЕКТРОНІКИ

 

 

 

 

 

 

 

 

 

 

Кафедра системотехніки

 

 

 

 

 

 

 

Звіт до лабораторної роботи №4:

«Чисельні методи розв’язання звичайних диференціальних рівнянь»

 

 

 

 

 

 

 

 

Виконав:

Перевірив:

ст. гр. АКІТу 12-1

доц. Калита Н. І.

Савельєв Д.Ю.

 

 

 

 

 

 

2013 р.

 

4.1 Мета роботи

 

Формування навичок практичного  застосування чисельних методів  розв’язання звичайних диференціальних рівнянь (ЗДР).

 

4.2 Постановка задачі

 

Задано рівняння і метод вирішення задачі:

 

26.

РК


 

Необхідно розробити алгоритм методу вирішення ЗДР та розв’язати рівняння, використовуючи програму. При цьому задати кількість точок n =10, а крок за змінною h = 0,2; а також зменшити крок за змінною до h= 0,1 і побудувати 20 точок розв’язку. Результати двох розв’язків показати у вигляді графіків в одній системі координат. Порівняти і проаналізувати обидва розв’язки.

 

4.3 Опис методу

 

Метод дозволяє вирішувати системи звичайних диференціальних рівнянь (ОДУ) першого порядку такого вигляду: 

які мають рішення: 

де t - незалежна змінна (наприклад, час); X, Y і т.д. -  функції (залежні від t змінні). Функції f, g і  т.д. - задані. Також передбачаються заданими і початкові умови, тобто значення шуканих функцій у початковий момент.

Метод Рунге-Кутта включає в  себе кілька інших таких як: метод  Ейлера і метод Ейлера - Коші.

Методи Рунге-Кутта мають такими властивостями:

1. Ці методи є одноступінчастими:  щоб знайти уm +1, потрібна інформація про попередню точці xm, ym.

2. Вони узгоджуються з рядом  Тейлора аж до членів порядку  hp, де ступінь р різна для  різних методів і називається  порядковим номером або порядком  методу.

3. Вони не вимагають обчислення  похідних від f (x, y), а вимагають обчислення самої функції.

Методи Рунге-Кутта  третього і четвертого порядків можна  вивести абсолютно аналогічно тому, як це робилося при виведенні методів  першого і другого порядків. Ми не будемо відтворювати викладки, а  обмежимося тим, що наведемо формули, що описують метод четвертого порядку, один з найуживаніших методів інтегрування диференціальних рівнянь. Цей класичний метод Рунге-Кутта описується системою наступних п'яти співвідношень:

 

ym+1=ym+h/6(k1+2 k 2+2 k 3+ k 4) 1.11.

 

де k 1=f(xm,ym), 1.12.

 

k 2=f(xm+h/2,ym+h k 1/2), 1.13.

 

k 3=f(xm+h/2,ym+h k 2/2), 1.14.

 

k 4=f(xm+h/2,ym+h k 3/2). 1.15.

 

Помилка обмеження для  цього методу дорівнює et = kh5

 

4.4 Виконання роботи

 

4.4.1 Для реалізації метода Рунге-Кутта була розроблена та нижче наведена блок-схема:

 

 

Схема 4.1 - Реалізація метода Рунге-Кутта

 

 

 

4.4.2 Программа розроблена у середовищі Visual C++:

 

#include "stdafx.h"

#include <iostream>

#include <math.h>

#include <conio.h>

using namespace std;

double f(double x,double y)

{

return ((3*y)-(y*eхр^(x)*y));

}

void main()

{

double x0,y0,h;

double y[20],x[20],k1,k2,k3,k4;

int n,i;

cout«"vvedite kol shagov n=";

cin»n;

cout«"vvedite x0=";

cin»x0;

cout«"vvedite y0=";

cin»y0;

cout«"vvedite h=";

cin»h;

x[0]=x0;

y[0]=y0;

for(i=1;i<n;i++)

{

k1=f(x[i-1],y[i-1]);

k2=f(x[i-1]+ h/2,y[i-1]+k1*h/2);

k3=f(x[i-1]+ h/2,y[i-1]+k2*h/2);

k4=f(x[i-1]+ h/2,y[i-1]+k3*h/2);

y[i]=y[i-1]+h/6*(k1+2*k2+2*k3+k4);

x[i]=x[i-1]+h;

cout«"y="«y[i]«" ";

cout«"x="«x[i]«" "«endl;

}

getch();

}

 

 

 

Рисунок 4.1 -  Результат виконання програми для кроку 0.2.

 

Рисунок 4.2 -  Результат виконання програми для кроку 0.1.

 

4.4.3 Графіки отриманих значень.

 

Рисунок 4.3 - Порівняльний графік функції при кількості кроків n = 10 і кроці h = 0,2; при кількості кроків n = 20 і кроці h = 0,1

 

Висновки:

 

На даній лабораторній роботі ми набули навички практичного застосування чисельних методів розв’язання звичайних диференціальних рівнянь (ЗДР). Розробили алгоритм методу вирішення ЗДР та розв’язали рівняння, використовуючи програму. Результати двох розв’язків показали у вигляді графіків в одній системі координат. Порівняли і проаналізували обидва розв’язки.


Информация о работе Чисельні методи розв’язання звичайних диференціальних рівнянь