MObl_L09.pdf

(133 KB) Pobierz
Politechnika Świętokrzyska
Wydział Elektrotechniki, Automatyki i Informatyki
Katedra Zastosowań Informatyki
Metody obliczeniowe
– laboratorium
Instrukcja laboratoryjna nr 9:
Opracował:
dr inż. Andrzej Kułakowski
Data:
02.12.2012 r.
Rozwiązywanie równań różniczkowych zwyczajnych
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))
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)
(1)
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
=
f
(
x
i
, y
i
)=
y
(1)
=
y
(1)
(
x
i
)
i
h
(2)
Ze wzoru (2) wynika również, ze wartości yi można znaleźć z następujących wzorów
yi+1=yi+∆yi
∆y
i = 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
0
1
2
3
4
5
6
0
0,1
0,2
0,3
0,4
0,5
0,6
y
1
1
1,02
1,06080
1,12445
1,21441
1,33585
f(x,y)=2xy
0
0,2
0,408
0,63648
0,89956
1,121441
∆y
= h·f(x,y)
0
0,02
0,0408
0,06365
0,08996
0,11214
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:
1
Δ
y
i
= (
k
(i )
+2k
(i )
+
2k
(i )
+
k
(i)
)
2
3
4
6
1
oraz
k
1
=h⋅f (
x
i
, y
i
)
,
(i )
i=0,1,2..
1
1
k
(i )
=h⋅f
x
i
+
h , y
i
+
k
(i )
,
2
2
2
1
k
(i )
3
i
i
(i )
2
(
)
1
1
=h⋅f
(
x
+
h , y
+
k
)
,
2
2
k
(i )
=h⋅f
(
x
i
+
h , y
i
+
k
(i)
)
,
4
3
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
0
x
x
0
x
0
+�½h
x
0
+�½h
x
0
+h
y
y
0
y
0
+�½k
1(0)
y
0
+�½k
2(0)
y
0
+k
3(0)
k=h·f(x,y)
k
1(0)
k
2(0)
k
3(0)
k
4(0)
∆y
k
1(0)
2k
2(0)
2k
3(0)
k
4(0)
1
·
Σ = ∆
y
0
6
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
0
x
0
0,05
0,05
0,1
y
1
1
1,005
1,01005
k=h·f(x,y)
0
0,01
0,01005
0,020201
∆y
0
0,02
0,0201
0,02
1
·
Σ = ∆
y = 0,01005
0
6
1
0,1
0,15
0,15
0,2
1,01005
1,01101
1,01517
1,01523
0,02201
0,03033
0,03046
0,04061
0,02201
0,06066
0,06091
0,04061
1
·
Σ = ∆
y = 0,02737
0
6
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:
- napisać program komputerowy rozwiązujący podane równanie różniczkowe zwyczajne przy
pomocy wybranej metody.
Zgłoś jeśli naruszono regulamin