Politechnika Świętokrzyska
Wydział Elektrotechniki, Automatyki i Informatyki
Katedra Zastosowań Informatyki
Metody obliczeniowe – laboratorium
Instrukcja laboratoryjna nr 10A:
Rozwiązywanie równań różniczkowych zwyczajnych
Opracował: dr inż. Andrzej Kułakowski
Data: 15.11.2013 r.
1. Wprowadzenie
Sformułowanie zadania przybliżonego rozwiązywania równań różniczkowych zwyczajnych:
Najprostszym równaniem różniczkowym zwyczajnym jest równanie różniczkowe pierwszego
rzędu o postaci:
y
(1)
(x) = f(x, y(x))
(1)
z warunkiem początkowym: y(x
0
) = y
0
Zakładamy że funkcja f(x, y(x)) jest określona i ciągła
w obszarze x
0
≤
x
≤
b , -
∞
≤
y
≤
∞
, gdzie: x
0
i b są skończone
CELEM przybliżonego rozwiązywania równań różniczkowych zwyczajnych jest obliczenie
wartości funkcji y(x) dla ciągu wartości x=xi, dla i =1,2,...
czyli znajdowanie punktów na krzywej całkowej y(x)
2. Metoda Eulera
Niech będzie dane równanie różniczkowe zwyczajne wyrażone zależnością (1),
z warunkiem początkowym y(x
0
) = y
0
Metoda Eulera polega na zastąpieniu krzywej całkowej y=y(x) przechodzącej przez punkt
M
0
(x
0
,y
0
)., odpowiadający warunkom początkowym,
łamaną M
0
M
1
M
2
... o wierzchołkach M
i
(x
i
,y
i
) i=0,1,2, składająca się z odcinków prostych.
Punkt rozpoczęcia i-tego odcinka łamanej określony jest punktem osiągnięcia przez (i-1) - szy
odcinek prostej odciętej x
i
=x
0
+ih
gdzie: h - stały krok obliczeń
Punkt M0 rozpoczęcia pierwszego odcinka łamanej jest określony
warunkiem początkowym y(x0) = y0.
Odcinki Mi Mi+1 i=0,1,2.. łamanej mają współczynnik kątowy wyrażony następującą zależnością:
y
i+1
−
y
i
h
=f
(
x
i
,y
i
)
=y
i
(
1
)
=y
(
1
)
(
x
i
)
(2)
Ze wzoru (2) wynika również, ze wartości yi można znaleźć z następujących wzorów
yi+1=yi+
∆
yi
∆
yi = h·f(xi,yi) i=0,1,2..
Przykład 1:
Rozwiązać równanie różniczkowe:
y
(1)
(x) = 2xy(x)
z warunkiem początkowym y(0)=1; długość kroku h=0.1
Rozwiązanie:
i
x
y
f(x,y)=2xy
∆
y = h·f(x,y)
0
0
1
0
0
1
0,1
1
0,2
0,02
2
0,2
1,02
0,408
0,0408
3
0,3
1,06080
0,63648
0,06365
4
0,4
1,12445
0,89956
0,08996
5
0,5
1,21441
1,121441
0,11214
6
0,6
1,33585
Po sześciu krokach uzyskano wynik: 1,33585
3. Metoda Rungego-Kutty
Metoda Rungego-Kutty jest metodą jednokrokową charakteryzująca się tym, że przy obliczaniu
wartości funkcji w kolejnym punkcie x
i
=x
0
+i·h bierze się pod uwagę również punkty
wewnątrz i-tego kroku. W zależności od liczby punktów wziętych pod uwagę, mówimy o rzędzie
metody.
Poniżej opisano metodę Rungego-Kutty 4-go rzędu (RK4).
Niech będzie dane równanie różniczkowe zwyczajne z warunkiem początkowym, wyrażone
zależnością (1).
Wybierzmy krok całkowania h i wprowadźmy oznaczenia x
i
=x
0
+i·h oraz y
i
=y(x
i
) dla i=0,1,...
W metodzie RK4 kolejne wartości y
i
szukanej krzywej całkowej y=y(x) znajdujemy ze wzoru
y
i+1
=y
i
+
∆
y
i
gdzie:
Δy
i
=
1
6
(
k
1
(
i
)
+
2k
2
(
i
)
+
2k
3
(
i
)
+k
4
(
i
)
)
i=0,1,2..
oraz
k
1
(
i
)
=h⋅ f
(
x
i
,y
i
)
,
k
2
(
i
)
=h⋅f
(
x
i
+
1
2
h,y
i
+
1
2
k
1
(
i
)
)
,
k
3
(
i
)
=h⋅f
(
x
i
+
1
2
h,y
i
+
1
2
k
2
(
i
)
)
,
k
4
(
i
)
=h⋅f
(
x
i
+h,y
i
+k
3
(
i
)
)
,
Wartości k
n
(i)
n=1,2,3,4, są różne w każdym kroku i.
W celu ułatwienia korzystania z metody RK4 można podać następujący schemat rozwiązywania
równania różniczkowego:
i
x
y
k=h·f(x,y)
∆
y
0
x
0
y
0
k
1
(0)
k
1
(0)
x
0
+½h
y
0
+½k
1
(0)
k
2
(0)
2k
2
(0)
x
0
+½h
y
0
+½k
2
(0)
k
3
(0)
2k
3
(0)
x
0
+h
y
0
+k
3
(0)
k
4
(0)
k
4
(0)
1
6 ·
Σ = ∆
y
0
1
jak wyżej, ale ze zmianą indeksu „0” na „1”
Przykład 2:
Rozwiązać równanie różniczkowe:
y
(1)
(x) = 2xy(x)
z warunkiem początkowym y(0)=1; długość kroku h=0.1
Rozwiązanie:
i
x
y
k=h·f(x,y)
∆
y
0
0
1
0
0
0,05
1
0,01
0,02
0,05
1,005
0,01005
0,0201
0,1
1,01005
0,020201
0,02
1
6 ·
Σ = ∆
y
0
= 0,01005
1
0,1
1,01005
0,02201
0,02201
0,15
1,01101
0,03033
0,06066
0,15
1,01517
0,03046
0,06091
0,2
1,01523
0,04061
0,04061
1
6 ·
Σ = ∆
y
0
= 0,02737
2
0,2
1,04058
itd....do końca zakresu dla x
i
4. Zadania do wykonania
a) dla podanego przez prowadzącego zajęcia przykładu, rozwiązać równanie różniczkowe metodą
Eulera.
b) dla podanego przez prowadzącego zajęcia zadania domowego:
- opisać metodę będącą modyfikacją metody Eulera;
- napisać program komputerowy rozwiązujący podane równanie różniczkowe zwyczajne przy
pomocy metody RK4.