űwiczenia nr 8, 9 i 10 RÓĩNICZKOWANIE

Transkrypt

űwiczenia nr 8, 9 i 10 RÓĩNICZKOWANIE
- 44 -
ûwiczenia nr 8, 9 i 10
RÓĩNICZKOWANIE
- 45 -
ûwiczenie nr 8
RóĪniczkowanie
W sposób przybliĪony ma byü rozwiązane zagadnienie początkowe:
­Y' F(t , Y )
®
¯Y(t 0 ) Y0
w przedziale (t0, Tmax) zmiennej niezaleĪnej t, którego jednoznaczne rozwiązanie Y = Y(t) jest
róĪniczkowalne dostatecznie wiele razy.
Rozwiązanie Y(t) moĪe byü funkcją skalarną lub wektorem
Y(t) = [y1(t), y2(t),..., ym(t))]T
w zaleĪnoĞci od iloĞci równaĔ w ukáadzie.
KaĪde równanie róĪniczkowe wyĪszego rzĊdu postaci:
y(m) = f(t, y, y’,..., y(m-1))
po wprowadzeniu oznaczeĔ:
y1 = y,
y2 = y’
y3 = y’’
......
ym = y(m-1)
moĪna sprowadziü do ukáadu m równaĔ rzĊdu pierwszego:
­y 1 ' y 2
°
°y 2 ' y 3
°
®...
°y ' y
m
° m 1
°¯y m ' f (t , y 1 ,..., y m )
Przedstawione w programie MET-NUM przykáady rozwiązywania równaĔ róĪniczkowych oparte są o jawne
metody Rungego - Kutty. Ogólnie metody te moĪna opisaü wzorem:
Yn 1
s
Yn h ¦ Z i K i
i 1
gdzie
­K 1
°
®
°K i
¯
F(t n , Yn ),
dla
i 1
F(t n b i h; Yn h ¦ a ij K j )
j 1
i = 2, 3, ...,s.
- 46 -
Wspóáczynniki metody moĪna przedstawiü w tablicy:
b2
b3
...
bs
a21
a31
...
as1
Z1
a32
...
as2
Z2
...
...
as,s-1
Zs-1 Zs
PomiĊdzy wspóáczynnikami metody zachodzą nastĊpujące związki:
bi
i 1
¦a
ij
j 1
s
¦Z
i
s - liczba etapów metody,
i = 2, 3, ..., s
h - krok
1
i 1
Przez Yn i Yn+1 oznaczone zostaáy rozwiązania numeryczne, natomiast Y(tn) i Y(tn+1) stanowią rozwiązania
dokáadne w punktach tn i tn+1, gdzie tn = tn+1 + h, wiĊc:
Yn | Y(t n )
Yn 1 | Y(t n 1 )
Metody Rungego-Kutty naleĪą do metod jednokrokowych, tzn. rozwiązanie przybliĪone Yn+1 w punkcie tn+1
jest wyznaczane tylko na podstawie rozwiązania Yn w punkcie tn i nie zaleĪy od wczeĞniej policzonych
przybliĪonych rozwiązaĔ Yn-1, Yn-2,... . Uáatwia to sterowanie dáugoĞcią kroku w dowolnym momencie pracy
algorytmu.
Przegląd metod
Zasady konstruowania rozwiązania numerycznego dla poszczególnych metod zostaáy poniĪej
przedstawione w sposób graficzny. Na wykresach grubą linią zaznaczone jest rozwiązanie dokáadne. W
oparciu o zagadnienie początkowe i warunek brzegowy wyznaczana jest wartoĞü K1 wspóáczynnika
kierunkowego stycznej do wykresu rozwiązania dokáadnego w punkcie początkowym (tn, Yn), a nastĊpnie
rysowana jest styczna do tego wykresu w tym punkcie. Dla metody Eulera rozwiązanie numeryczne stanowi
wartoĞü Yn+1 w punkcie (tn+1, Yn+1). Zmniejszając dáugoĞü kroku (tzn. dzieląc kolejno przedziaá (tn, tn+1) na
podprzedziaáy o równej dáugoĞci) uzyskuje siĊ ciąg stycznych zbieĪny do rozwiązania dokáadnego.
Wzór okreĞlający rozwiązanie numeryczne otrzymuje siĊ z przedstawionych powyĪej zaleĪnoĞci opisujących
metody Rungego-Kutty, opierając siĊ o tablicĊ wspóáczynników charakteryzującą daną metodĊ. àatwo
zauwaĪyü, Īe dla metody Eulera wzór ten jest równaniem prostej.
W pozostaáych metodach rozwiązanie numeryczne konstruowane jest w sposób analogiczny.
1) Metoda Eulera (1,1)
1
(tablica
wspóáczynników)
bi = 0;
Z1 = 1
aij = 0
Ÿ
K1 = F(tn, , Yn),
Ki = 0
Yn+1=Yn + hK1
(wspóáczynniki)
(rozwiązanie numeryczne)
- 47 -
Y
Y(tn+1)
báąd
Yn+1
Yn
K1
t
tn
tn +h
2) Modyfikacja metody Eulera (1,2)
1 1
1 0 1
b2 = 1;
Z1 = 0;
Ÿ
a21 = 1
Z2 = 1
K1 = F(tn, , Yn),
K2 = F(tn+h, Yn+hK1)
Yn+1=Yn + hK2
Y
Yn+1
báąd
Y(tn+1)
K2
K2
Yn
K1
t
tn
tn +h
3) Metoda Runge’go (2,2)
1/2 1/2
0 1
b2 = 1/2;
Z1 = 0;
a21 = 1/2;
Z2 = 1
Ÿ
K1 = F(tn, , Yn),
K2 = F(tn+1/2h, Yn+1/2hK1)
Yn+1=Yn + hK2
- 48 -
Y
Yn+1
báąd
Y(tn+1)
K2
Yn
K2
K1
t
tn
tn+1/2h
tn +h
4) Metoda Eulera – Cauche’go (2,2)
1 1
1/2 1/2
b2 = 1;
Z1 = 1/2;
a21 = 1;
Z2 = 1 /2
Ÿ
K1 = F(tn, , Yn),
K2 = F(tn+h, Yn+hK1)
Yn+1=Yn + h(1/2K1+1/2K2)
Y
báąd
Y(tn+1)
Yn+1
(K1+K2)/2
K2
K2
Yn
K1
t
tn
tn+1/2h
tn +h
5) Metoda Heuna (3,3)
1/3 1/3
2/3 0
1/4
2/3
0
3/4
b2 = 1/3;
b3 = 2/3;
Z1 = 1/4;
a21 = 1/3;
a31 = 0;
a32 = 2/3
Z2 = 0;
Z3 = 3/4;
Ÿ
K1 = F(tn, , Yn),
K2 = F(tn+1/3h, Yn+1/3hK1)
K3 = F(tn+2/3h, Yn+2/3hK2)
Yn+1=Yn + h(1/4K1+3/4K3)
- 49 -
Y
báąd
Yn+1
Y(tn+1)
K3
K3
K2
Yn
K1
t
tn
1/4 1/3
1/2
tn +h
2/3 3/4
6) Metoda Rungego-Kutty (4,4)
1/2 1/2
1/2 0
1
0
1/6
1/2
0
1/3
1
1/3
b2 = 1/2;
b3 = 1/2;
b4 = 1;
Z1 = 1/6;
1/6
a21 = 1/2;
a31 = 0;
b41 = 0;
Z2 = 1/3;
a32 = 1/2;
b42 = 0 ;
b43 = 1;
Z3 = 1/3;
Z4 = 1/6;
K1 = F(tn, , Yn),
K2 = F(tn+1/2h, Yn+1/2hK1)
K3 = F(tn+1/2h, Yn+1/2hK2)
K4 = F(tn+h, Yn+hK3)
Yn+1=Yn+h(1/6K1+1/3K2+1/3K3+1/6K4)
Y
Y(tn+1)
báąd
Yn+1
K4
K3
K1
Yn
K2
t
tn
1/6
1/3
1/2
2/3
5/6
tn +h
Przebieg üwiczenia MET-NUM (program RK - ELEM ):
- 50 -
1.) obejrzeü wszystkie przykáady (Rodzina rozwiązaĔ)
2.) wybraü przykáad A (Elementarz metod) i stosując kolejno wszystkie metody, przeĞledziü
konstruowanie rozwiązania numerycznego oraz zaobserwowaü jak zachowuje siĊ ciąg rozwiązaĔ
przy zmniejszaniu dáugoĞci kroku
3.) dla przykáadów K i J zastosowaü metodĊ Eulera(1,1) i zaobserwowaü zachowanie siĊ rozwiązania
przy zmianie dáugoĞci kroku (K – niestabilny, J – nadstabilny)
4.) dla podanego zagadnienia początkowego przepisaü zaleĪnoĞci okreĞlające to zagadnienie jego
warunki brzegowe i rozwiązanie dokáadne
5.) dla powyĪszego zagadnienia (Porównanie metod rzĊdu 1 – 4) zbadaü wpáyw zmiany dáugoĞci kroku
(l. kroków zmieniaü przez podwajanie 2, 4, 8 .... 512) na wartoĞü báĊdu w punkcie koĔcowym dla
czterech przedstawionych w programie metod
6.) przepisaü dla podanych wyĪej iloĞci kroków wartoĞci báĊdów w punkcie koĔcowym
7.) dla wszystkich metod narysowaü wykresy (w skali logarytmicznej): báąd = f(l. kroków) i wyciągnąü
wnioski nt. efektywnoĞci metod
Báąd w punkcie koĔcowym
Liczba
podziaáów
Metoda
Euler (1, 1)
Runge (2, 2)
Heun (3, 3)
Runge – Kutta
(4, 4)
2
4
8
16
32
64
128
256
512
MATLAB
(ode23)
x
x
x
x
x
x
x
x
x
MATLAB
(ode45)
x
x
x
x
x
x
x
x
x
x
x
DokáadnoĞü metod Rungego-Kutty jest rozumiana w sensie báĊdu aproksymacji, tzn. liczona jest róĪnica
pomiĊdzy rozwiązaniem dokáadnym a numerycznym. W tym celu we wzorach okreĞlających wspóáczynniki
K1 i Ki oraz rozwiązanie numeryczne Yn+1 zamiast wartoĞci przybliĪonej Yn przyjmowana jest wartoĞü
dokáadna Y(tn) i liczone są wartoĞci tych wspóáczynników oraz rozwiązania numerycznego dla pewnego
kroku h, a nastĊpnie wyznaczany jest báąd lokalny stanowiący róĪnicĊ pomiĊdzy rozwiązaniem dokáadnym i
numerycznym.
Báąd aproksymacji (báąd lokalny) metody Rungego-Kutty ma postaü:
rn 1 (h )
s
Y(t n h ) ( Y(t n ) h¦ Z i K i (h ))
i 1
Dla dostatecznie maáych wartoĞci h, báąd aproksymacji moĪna rozwinąü w szereg potĊgowy wzglĊdem h:
rn 1 (h ) rn 1 (0) hr
'
n 1
h 2 ''
(0) rn 1 (0) ...
2
Metoda Rungego-Kutty jest rzĊdu p , jeĪeli dla kaĪdego zagadnienia początkowego zachodzi:
- 51 -
rn 1 (0)
'
n 1
r
0,
( 0)
0,.. rn( p1) (0) 0
rn( p11) (0) z 0
czyli báąd lokalny ma postaü:
rn+1(h ) = )(tn, Y(tn))hp+1 + O(hp+2)
)(tn, Y(tn))hp+1
czĊĞü gáówna báĊdu lokalnego
Najprostsza metoda automatycznego dobierania dáugoĞci kroku h polega na wyznaczeniu przybliĪonej
wartoĞci czĊĞci gáównej báĊdu lokalnego i dobraniu takiego kroku h, aby speániona byáa zaleĪnoĞü:
||)(tn, Y(tn))hp+1|| < H
dla zadanej wartoĞci H, gdzie || || oznacza normĊ wektora.
BáĊdem globalnym albo caákowitym metody w punkcie tn nazywamy wielkoĞü:
Hn = Yn -- Y(tn)
W programie MATLAB dostĊpnych jest kilka funkcji pozwalających na rozwiązanie zagadnienia
początkowego dla ukáadów równaĔ róĪniczkowych zwyczajnych postaci:
dy
dt
F(t , y ), y(t 0 )
y 0 ; y, y 0  R n
Przykáadowo rozpatrzone zostaną dwie z nich (ode23 i ode45).
KaĪda z tych funkcji korzysta z pary metod Rungego-Kutty rzĊdu 2 i 3 (ode23) lub rzĊdu 3 i 4 (ode34).
[t, Y] = ode23(‘plik’, t0, tk, y0, tol, tr)
[t, Y] = ode45(‘plik’, t0, tk, y0, tol, tr)
plik - nazwa pliku (bez rozszerzenia) w którym zdefiniowana jest funkcja F(t, y)
t0, tk - przedziaá czasu w którym poszukiwane jest rozwiązanie
y0 - warunek początkowy (wektor kolumnowy zawierający wartoĞü rozwiązania w chwili
początkowej)
tol - parametr okreĞlający dokáadnoĞü, domyĞlna wartoĞü: 10-3 dla ode23 i 10-6 dla ode45
tr
- parametr ten, jeĪeli ma wartoĞü niezerową umoĪliwia wypisanie na ekranie kolejnych
kroków metody
Aby wyznaczyü wartoĞü rozwiązania naleĪy, po zadeklarowaniu funkcji F(t, y), napisaü w oknie programu
polecenie, o postaci jak powyĪej, zawierające nazwĊ odpowiedniej funkcji ode.
Po wprowadzeniu oznaczenia dy = F(t, y), funkcjĊ F(t, y) moĪna zadeklarowaü w skrypcie z rozszerzeniem
‘m’ w sposób nastĊpujący:
function dy = F(t, y)
dy =
W przypadku równania róĪniczkowego zwyczajnego wyĪszego rzĊdu naleĪy, wprowadzając dodatkowe
zmienne, sprowadziü to równanie do ukáadu równaĔ rzĊdu pierwszego i definiując funkcjĊ F(t, Y) zamieĞciü
wszystkie równania w macierzy.
Przebieg üwiczenia MATLAB:
- 52 -
1.) zadeklarowaü funkcjĊ F(t, y), a nastĊpnie
korzystając z polecenia ode23 wyznaczyü
wektor rozwiązania numerycznego w przedziale (t0, tk)
2.) w nowym pliku umieĞciü zaleĪnoĞü okreĞlającą rozwiązanie dokáadne i wyznaczyü jego wartoĞü w
przedziale (t0, tk)
3.) obliczyü báąd rozwiązania, tzn. róĪnicĊ pomiĊdzy rozwiązaniem dokáadnym a numerycznym,
przepisaü wartoĞü báĊdu w punkcie koĔcowym oraz policzyü liczbĊ kroków wykorzystując polecenie
size
4.) báąd rozwiązania porównaü z wartoĞciami báĊdów uzyskanymi (przy odpowiedniej iloĞci kroków) dla
metod z programu MET-NUM rzĊdu 2 i 3
5.) narysowaü w jednym ukáadzie wspóárzĊdnych wykres rozwiązania dokáadnego i numerycznego a w
drugim wykres báĊdu
6.) punkty 1-4 powtórzyü dla polecenia ode 45; wartoĞci báĊdu w punkcie koĔcowym porównaü z
odpowiednimi wartoĞciami báĊdów wyznaczonymi w programie MET-NUM dla metod rzĊdu 4
- 53 -
Przykáady
1. W przedziale < 0; 3 >, stosując metodĊ ode23, znaleĨü rozwiązanie nastĊpującego równania
dy
1
, speániającego warunek początkowy y(0) = 0. Wyznaczyü báąd w punkcie
róĪniczkowego:
dt 1 t 2
koĔcowym i narysowaü wykres rozwiązania numerycznego i dokáadnego w jednym ukáadzie
wspóárzĊdnych a wykres báĊdu w drugim. Rozwiązanie dokáadne okreĞlone jest zaleĪnoĞcią: y = arctg(t) .
%%róĪniczkowanie
%funkcjĊ y’=f(t,y) zadeklarowaü w skrypcie o nazwie np. rozn.m:
function dy=F(t,y)
dy=1./(1+t.^2)
%dy=y’
%w oknie MATLAB-a napisaü i wywoáaü polecenie:
[t,Y]=ode23('rozn',[0 3],[0]')
%Y - rozwiązanie numeryczne
%w nowym skrypcie zamieĞciü polecenia sáuĪące do narysowania wykresu
%i wyznaczenia wartoĞci báĊdu róĪniczkowania
y=atan(t)
bl=y-Y
%y - rozwiązanie dokáadne
%bl - báąd róĪniczkowania
subplot(2,1,1)
plot(t,Y,t,y)
grid on
title('rozniczkowanie')
text(1.2,0.7,'rozwiazanie numeryczne i dokladne')
xlabel('t')
ylabel('y')
subplot(2,1,2)
plot(t,bl)
grid on
text(1.2,3e-5,'wykres bledu')
xlabel('t')
ylabel('y')
rozniczkowanie
1.5
1
y
rozwiazanie numeryczne i dokladne
0.5
0
0
0.5
1
-5
8
1.5
t
2
2.5
3
2
2.5
3
x 10
y
6
4
wykres bledu
2
0
0
0.5
1
1.5
t
- 54 -
Rozwiązania uzyskane w MATLAB-ie:
czas
rozwiązanie
numeryczne
Y=
t=
0
0.0001
0.0005
0.0025
0.0125
0.0625
0.1543
0.2810
0.4472
0.6819
0.9819
1.2819
1.5819
1.8819
2.1819
2.4819
2.7819
3.0000
rozwiązanie
dokáadne
y=
0
0.0001
0.0005
0.0025
0.0125
0.0624
0.1531
0.2740
0.4205
0.5984
0.7762
0.9082
1.0070
1.0823
1.1410
1.1877
1.2257
1.2490
0
0.0001
0.0005
0.0025
0.0125
0.0624
0.1531
0.2740
0.4205
0.5985
0.7762
0.9083
1.0071
1.0824
1.1410
1.1878
1.2257
1.2490
báąd
bl =
1.0e-004 *
0
0.0000
0.0000
0.0000
0.0000
0.0002
0.0061
0.0424
0.1640
0.4944
0.7331
0.6621
0.5453
0.4527
0.3896
0.3482
0.3210
0.3157
WartoĞü báĊdu w punkcie koĔcowym wynosi 0,3157*10-4.
2. Dla t < 0; 10 > znaleĨü rozwiązanie nastĊpującego równania róĪniczkowego II-rzĊdu
d2y
dy
2
y 0 o zadanym warunku brzegowym y(0) = [1 0].
2
dt
dt
Aby rozwiązaü powyĪsze równanie naleĪy sprowadziü je do ukáadu dwóch równaĔ I-rzĊdu wprowadzając
dodatkowe zmienne y1 i y2:
y1
y
y2
dy
dt
Ÿ
­ dy 1
°° dt
®
° dy 2
°¯ dt
y2
2 y 2 y 1
%%równanie róĪniczkowe II-go rzĊdu
%funkcjĊ d2y=F(t,y) zadeklarowaü w skrypcie o nazwie np. rozn2.m:
function d2y=F(t,y)
d2y=[y(2);-y(1)-2*y(2)]
%d2y=y''
%y(1)=y y(2)=y’
%w oknie MATLAB-a napisaü i wywoáaü kolejno polecenia:
- 55 [t1,Y1]=ode23('rozn2',[0 10],[1 0]')
[t2,Y2]=ode45('rozn2',[0 10],[1 0]')
%Y1 - rozwiązanie numeryczne metodą ode23
%Y2 - rozwiązanie numeryczne metodą ode45
%w nowym skrypcie zamieĞciü polecenia sáuĪące do narysowania wykresów
subplot(2,1,1)
plot(t1,Y1)
%Y1 – pierwsze i drugie rozwiązanie metodą ode23
xlabel('t')
title('rownanie rozniczkowe II-go rzedu')
ylabel('ode23')
text(3,0.4,'rozwiazanie Y1[1]')
text(3,-0.25,'rozwiazanie Y1[2]')
subplot(2,1,2)
plot(t2,Y2(:,2))
xlabel('t')
ylabel('ode45')
text(3,-0.2,'rozwiazanie Y2[2]')
%Y2(:,2) - drugie rozwiązanie metodą ode45
rownanie rozniczkowe II-go rzedu
1
ode23
0.5
rozwiazanie Y1[1]
0
rozwiazanie Y1[2]
-0.5
0
1
2
3
4
5
t
6
7
8
9
10
6
7
8
9
10
0
ode45
-0.1
-0.2
rozwiazanie Y2[2]
-0.3
-0.4
0
1
2
3
4
5
t
- 56 -
ûwiczenie nr 9
StabilnoĞü metod Rungego-Kutty
Przyjmujemy, Īe metoda numeryczna jest absolutnie stabilna dla danej dáugoĞci kroku caákowania h,
jeĪeli zastosowanie tej metody do liniowego ukáadu stabilnego daje ciąg rozwiązaĔ przybliĪonych yn zbieĪny
do zera, gdy n o f dla h = const.
Gdy te warunki nie są speánione to po wykonaniu nawet niewielkiej iloĞci kroków rozwiązania przybliĪone
na ogóá szybko rosną dając tzw. lawinĊ báĊdów. W celu unikniĊcia gwaátownego narastania báĊdu naleĪy
zmniejszyü krok caákowania. JeĪeli odpowiednio zmniejszymy dáugoĞü kroku moĪemy otrzymaü ukáad na
granicy stabilnoĞci.
StabilnoĞü absolutna metody róĪniczkowej zaleĪy od wyboru zagadnienia początkowego i od dáugoĞci kroku
caákowania. Aby áatwiej moĪna byáo okreĞliü zakres dopuszczalnych zmian dáugoĞci kroku h kreĞlony jest na
páaszczyĨnie zmiennej zespolonej tzw. obszar stabilnoĞci absolutnej metody.
Obszarem stabilnoĞci absolutnej nazywa siĊ podzbiór : páaszczyzny zespolonej C taki, Īe ciąg ®y(n)¾
wartoĞci rozwiązania numerycznego (otrzymanego badaną metodą ze staáym krokiem h takim, Īe Oh naleĪy
do wnĊtrza tego podzbioru) dąĪy do 0 przy n rosnącym:
lim^y(n )` o 0
n of
Przedziaáem stabilnoĞci absolutnej nazywa siĊ wspólną czĊĞü obszaru : i osi Re.
Program RK-STAB kreĞli na ekranie brzeg obszaru stabilnoĞci absolutnej jawnych dwuetapowych metod
Rungego-Kutty rzĊdu 1 i 2 zdefiniowanych tabelą wspóáczynników:
a
u v
Dla metod rzĊdu co najmniej pierwszego speániona jest zaleĪnoĞü:
u+v=1
W celu zbadania stabilnoĞci absolutnej metod liniowych rozwiązywania równaĔ róĪniczkowych
rozpatrywane jest nastĊpujące równanie testowe:
y’= Oy
o warunku początkowym:
y(0) = 1
Rozwiązanie numeryczne powyĪszego równania za pomocą dwuetapowej metody Runge’go-Kutty wyraĪa siĊ
wzorem:
y(n+1) = [1 + Oh + av(Oh)2 ] y(n)
Zakáadamy, Īe: Oh jest liczbą zespoloną oraz wprowadzamy parametr P:
Oh = r + is
i
P = av
wówczas równanie brzegu obszaru stabilnoĞci absolutnej bĊdzie nastĊpujące:
- 57 -
| y(n+1) | = | y(n) |
wiĊc po uwzglĊdnieniu wczeĞniejszych zaleĪnoĞci otrzymujemy:
| P(r + is)2+(r + is) +1| = 1
Równanie brzegu obszaru stabilnoĞci absolutnej wyprowadza siĊ w zaleĪnoĞci od parametru P.
Dla P d 0,5 najpierw znajduje siĊ przedziaáy stabilnoĞci absolutnej, tzn. wyznacza siĊ wartoĞü r dla s = 0, a
nastĊpnie dla kaĪdej wartoĞci r z tych przedziaáów okreĞla siĊ s = s(r). W przypadku P > 0,5 krzywa bĊdąca
wykresem powyĪszego równania staje siĊ wklĊsáa, wiĊc nie moĪna jej w sposób jednoznaczny opisaü, dlatego
w tym przypadku korzysta siĊ z zaleĪnoĞci r = r(s).
WartoĞü parametru P jest ĞciĞle powiązana z rzĊdem metody:
ƒ P = 0 - metoda Eulera (1,1)
ƒ P = 0,5 - metoda rzĊdu 2
ƒ P = 1 - modyfikacja metody Eulera (1,2)
ƒpozostaáe wartoĞci P – modyfikacje metod Rungego-Kutty 1-go rzĊdu 2-etapowych
Przebieg üwiczenia MET-NUM (program RK - STAB):
1.) dla wybranego przykáadu obejrzeü wszystkie metody rzĊdu 1 i 2 a nastĊpnie wyznaczyü dla kaĪdej z
nich wartoĞü parametru P (RK-ELEM – Elementarz metod)
2.) przerysowaü ksztaát obszaru stabilnoĞci absolutnej (RK-STAB) dla powyĪszych wartoĞci parametru P
3.) w przedziale 0 < P < 0,5 okreĞliü jak zachowuje siĊ ksztaát obszaru stabilnoĞci absolutnej, gdy
zmienia siĊ wartoĞü P; dla jakich wartoĞci P obszar jest spójny a dla jakich otrzymuje siĊ najdáuĪszy
przedziaá stabilnoĞci absolutnej (zamieĞciü odpowiednie wykresy)
4.) w przypadku P > 0,5 obejrzeü wykresy dla P = 0,6; 1,5; 2; 5; 10; 100; 1000, zaobserwowaü jaki
wpáyw na ksztaát i wielkoĞü obszaru stabilnoĞci absolutnej oraz na dáugoĞü przedziaáu stabilnoĞci
absolutnej ma zwiĊkszanie parametru P. Jak zmieniają siĊ wartoĞci Remin, Reman, Immin, Imman
(zamieĞciü wykresy).
- 58 -
Równanie róĪniczkowe okrĊgu
Równanie okrĊgu na páaszczyĨnie ma postaü nastĊpującą:
Z - parametr
t  [0; Tmax]
x = cos Zt
y = sin Zt
Po dwukrotnym zróĪniczkowaniu drugiego równania otrzymuje siĊ równanie róĪniczkowe II rzĊdu, które jest
równaniem róĪniczkowym okrĊgu:
y’ = Z cos Zt
y’’ = -Z2sin Zt
Ÿ
y’’ + Z2y = 0
Ÿ
Po wprowadzeniu zmiennej z = Zx = Z cos Zt moĪna powyĪsze równanie zapisaü w postaci ukáadu dwóch
równaĔ rzĊdu pierwszego lub w postaci macierzowej:
­ y' z
®
2
¯ z' Z y
ª y'º
« z' »
¬ ¼
Ÿ
ª 0
«
2
¬ Z
1º
»
0¼
ªy º
«z »
¬ ¼
Ÿ
Y’ = F(t, Y)
gdzie:
i
F( t , Y )
ª 0
«
2
¬ Z
a warunek brzegowy jest nastĊpujący:
y(0) = 0
i
Y
ªy º
«z »
¬ ¼
1º
»Y
0¼
z(0) = Z
Pierwiastki O równania Y’ = F(t, Y), czyli wartoĞci wáasne macierzy ukáadu równaĔ róĪniczkowych, są
liczbami czysto urojonymi:
' = Z2 = (i Z)(-i Z)
Ÿ
O=riZ
JeĪeli wartoĞci wáasne macierzy ukáadu równaĔ róĪniczkowych leĪą w obszarze stabilnoĞci absolutnej danej
metody, to metoda ta jest stabilna dla tego ukáadu równaĔ.
PowyĪsze równanie róĪniczkowe okrĊgu bĊdzie poniĪej rozwiązywane ze staáym krokiem piĊcioma
metodami Rungego-Kutty rzĊdu pierwszego i drugiego.
1.) Metoda jawna Eulera (1,1)
W metodzie jawnej Eulera rozwiązanie numeryczne równania róĪniczkowego wyraĪa siĊ wzorem:
Yn+1 = Yn + hF(tn, Yn)
dla równania róĪniczkowego okrĊgu zachodzi:
F(t n , Yn )
ª 0
«
2
¬ Z
1º
» Yn
0¼
tak wiĊc:
Yn 1
hº
ª 1
«
» Yn
2
¬ Z h 1 ¼
AYn
- 59 -
macierz A nazywana jest macierzą przejĞcia.
Po obliczeniu wyznacznika ' macierzy A moĪna znaleĨü jej wartoĞci wáasne O:
' = 1 + Z2h2 = (1 + i Zh)(1 – i Zh)
Ÿ
O = 1 r i Zh
JeĪeli moduáy wartoĞci wáasnych macierzy przejĞcia są wiĊksze od 1, to dana metoda jest metodą
niestabilną dla rozpatrywanego równania róĪniczkowego.
O
1 Z2h 2 ! 1
Metoda jawna Eulera jest metodą niestabilną dla równania róĪniczkowego okrĊgu.
Obszarem stabilnoĞci absolutnej metody Eulera na páaszczyĨnie zmiennej zespolonej Oh jest koáo o
Ğrodku w punkcie (-1, 0) i promieniu 1. Warunkiem stabilnoĞci jest, aby wszystkie wartoĞci wáasne
macierzy ukáadu Oh leĪaáy w tym obszarze.W przypadku równania róĪniczkowego okrĊgu wartoĞci te
są czysto urojone, leĪą wiĊc na osi Im niezaleĪnie od kroku h.
Im
O 1h
Re
-1
O 2h
2.) Metoda Eulera-Cauchego (2,2)
W metodzie Eulera-Cauchego macierz przejĞcia dla równania róĪniczkowego okrĊgu ma postaü
nastĊpującą:
A
ª1 Zh 2 / 2
«
2
¬« Z h
º
»
2
1 Zh / 2¼»
h
wartoĞci wáasne wyraĪają siĊ wzorem:
O = (1 –1/2(Zh)2) r i Zh
natomiast ich moduáy:
- 60 -
1
1 Z4h 4 ! 1
4
O
są wiĊksze od 1, wiĊc metoda Eulera-Cauchego jest równieĪ metodą niestabilną dla równania
róĪniczkowego okrĊgu. Jak moĪna zauwaĪyü na podstawie przykáadów z pakietu RK-STAB obszarem
stabilnoĞci absolutnej dla tej metody jest obszar nieco wiĊkszy niĪ w przypadku metody jawnej Eulera,
ale wartoĞci wáasne leĪą równieĪ poza tym obszarem.
3.) Metoda stabilna dla równania róĪniczkowego okrĊgu (1,2)
Metoda ta jest modyfikacją metody Eulera-Cauchego, a macierz przejĞcia dla równania
róĪniczkowego okrĊgu okreĞlona jest zaleĪnoĞcią:
A
ª1 PZh 2
«
2
¬« Z h
º
»
2
1 PZh ¼»
gdzie:
h
P = av
(a i v - wspóáczynniki metody)
WartoĞci wáasne wyraĪają siĊ wzorem:
O = (1 –P(Zh)2) r i Zh
Aby omawiana metoda byáa rzĊdu co najmniej pierwszego wspóáczynniki u i v muszą speániaü
nastĊpującą zaleĪnoĞü:
u+v=1
Korzystając z warunkiem stabilnoĞci metody:
|O|d 1
otrzymujemy:
(Z h )2 d (2P – 1) / P2
Warunek ten moĪe byü speániony jedynie dla P t 0,5 a wówczas:
Zh  0;
2P 1 / P czyli tak naleĪy dobraü krok h, aby wartoĞü Zh naleĪaáa do powyĪszego przedziaáu.
4.) Metoda niejawna Eulera (1,1)
Metoda niejawna Eulera opisana jest zaleĪnoĞcią:
Yn+1 = Yn +hF(tn+1, Yn+1)
W celu wyznaczenia obszaru stabilnoĞci absolutnej dla tej metody rozwiązuje siĊ skalarne równanie
testowe o postaci:
- 61 -
y’ = Oy
gdzie
O
-
liczba zespolona
Rozwiązanie numeryczne powyĪszego równania metodą niejawną Eulera jest nastĊpujące:
y n 1
1
yn
1 Oh
Warunkiem stabilnoĞci metody jest aby:
| yn+1 | < | yn |
Warunek ten bĊdzie speániony jeĪeli |1-Oh| >1, czyli jeĪeli wartoĞü Oh bĊdzie leĪaáa na páaszczyĨnie
zmiennej zespolonej poza koáem jednostkowym o Ğrodku w punkcie (Re, Im) = (1, 0). Tak wiĊc
obszarem stabilnoĞci absolutnej metody niejawnej Eulera jest zewnĊtrze powyĪszego koáa
jednostkowego.
WartoĞci wáasne macierzy ukáadu równaĔ róĪniczkowych opisujących równanie róĪniczkowe okrĊgu
są czysto urojone, leĪą wiĊc w obszarze stabilnoĞci absolutnej metody niejawnej Eulera. Metoda ta
jest metodą stabilną dla równania róĪniczkowego okrĊgu.
5.) Wzór trapezów (2,2)
Metoda trapezów opisana jest zaleĪnoĞcią:
Yn+1 = Yn + 0,5h(F(tn, Yn) + F(tn+1, Yn+1))
natomiast rozwiązanie numeryczne skalarnego równania testowego ma postaü nastĊpującą:
y n 1
1 Oh
yn
1 Oh
WartoĞci wáasne macierzy ukáadu są czysto urojone O = r i Z, wiĊc:
| yn+1 | = | yn |
gdyĪ:
1 Oh
1 Oh
1
Obszarem stabilnoĞci absolutnej w przypadku wzoru trapezów jest lewa póápáaszczyzna zmiennej
zespolonej Re < 0 wraz z osią urojonych. WartoĞci wáasne macierzy ukáadu leĪą na osi urojonych,
czyli na brzegu obszaru stabilnoĞci absolutnej metody trapezów. Metoda ta dla równania
róĪniczkowego okrĊgu jest zawsze na granicy stabilnoĞci niezaleĪnie od dáugoĞci kroku h.
Przebieg üwiczenia MET-NUM (program RK-OKRĄG ):
1.) przy ustalonej wartoĞci Z (odpowiednio Z = 1; 2; 3...) zmieniaü wartoĞü kroku h i zaobserwowaü jak
zachowuje siĊ ciąg rozwiązaĔ równania róĪniczkowego okrĊgu rozwiązywanego metodą Eulera;
odpowiednie wykresy zamieĞciü w sprawozdaniu
2.) dla tej samej wartoĞci Z przeanalizowaü metodĊ Eulera-Cauchego
3.) w przypadku metody stabilnej dla równania róĪniczkowego okrĊgu tak dobraü wartoĞü parametru P,
aby uzyskaü moĪliwie najwiĊkszy zakres zmian kroku h przy staáej wartoĞci Z, a nastĊpnie dla tej
wartoĞci P okreĞliü graniczną wartoĞü kroku h zapewniającą stabilnoĞü metody
4.) analogicznie jak w p.1 przeanalizowaü metodĊ niejawną Eulera i wzór trapezów; wykresy zamieĞciü
w sprawozdaniu
- 62 -
ûwiczenie nr 10
Zastosowanie metod Rungego-Kutty
DokáadnoĞü rozwiązania równania róĪniczkowego uzyskanego metodami numerycznymi zaleĪy m.in.
od zastosowanej metody i od algorytmu sterowania dáugoĞcią kroku. JeĪeli znane jest rozwiązania dokáadne
moĪliwe jest wyznaczenie norm báĊdu wzglĊdnego, bezwzglĊdnego, globalnego oraz báĊdu w punkcie
koĔcowym rozwiązania numerycznego.
SprawnoĞü metody okreĞlona jest jako procentowy udziaá kroków akceptowanych do ogólnej liczby kroków
w obliczeniach ze zmiennym krokiem, natomiast koszty metody stanowi liczba odwoáaĔ do podprogramu
obliczającego wartoĞü prawej strony równania.
Sterowanie dáugoĞcią kroku przeprowadzane jest na podstawie oszacowania wartoĞci báĊdu lokalnego
(wzglĊdnego lub bezwzglĊdnego), które dokonywane jest równieĪ dla kroku staáego.
WartoĞü báĊdu lokalnego moĪna szacowaü wykorzystując:
ƒwáasny wzór szacujący metody
ƒmetodĊ wáoĪoną
ƒekstrapolacjĊ Richardsona
ƒmetodĊ towarzyszącą
Sterowania dáugoĞcią kroku dokonywane jest poprzez:
ƒpoáowienie / podwajanie kroku
ƒmnoĪenie kroku przez wspóáczynnik
Przedstawiając przybliĪenie normy czĊĞci gáównej báĊdu lokalnego w postaci:
z = C hk
C > 0 - zaleĪy od uzyskanego rozwiązania
k - zaleĪy od rzĊdu metody
dla poáowienia kroku otrzymuje siĊ nastĊpujące kryterium akceptacji kroku:
C hk d H
H
- zadana wartoĞü
JeĪeli powyĪsza nierównoĞü jest speániona to obliczenia powtarzane bĊdą z nowym krokiem H = h / 2 pod
warunkiem, Īe krok ten bĊdzie jeszcze krokiem dopuszczalnym tzn.: hMin d H .
MoĪna równieĪ podwoiü wartoĞü kroku pod warunkiem speánienia zaleĪnoĞci:
C (2 h)k < H SafetyFac
0 < SafetyFac < 1
– wspóáczynnik bezpieczeĔstwa
wówczas nowy krok H = 2 h musi byü sprowadzany jeszcze do dopuszczalnego przedziaáu kroku:
H := min(H, hMax)
Dla mnoĪenia kroku przez wspóáczynnik H = J h , wspóáczynnik J wyznaczany jest równieĪ z nierównoĞci
zawierającej wspóáczynnik bezpieczeĔstwa:
C (J h)k < H SafetyFac
Jk z < H SafetyFac
J < (H SafetyFac / z)(1/k)
- 63 -
Krok ten nie moĪe ulegaü zbyt duĪym i nagáym zmianom, dlatego wspóáczynnik J musi speániaü warunek:
FacMin d J d FacMax
czyli:
hMin d H d hMax
WartoĞci hMax, hMin, SafetyFac, FacMin, FacMax, są ustalonymi przez uĪytkownika parametrami
sáuĪącymi do korygowania kroku obliczeĔ. JeĪeli krok jest zbyt duĪy jego wartoĞü jest redukowana do
hMax, natomiast jeĪeli jest mniejszy niĪ hMin nastĊpuje przerwanie obliczeĔ.
Przebieg üwiczenia MET-NUM (program RK-ROZW ):
1.) dla danego zagadnienia początkowego zastosowaü:
i metodĊ 3-go rzĊdu klasyczną (3,3)
ƒtowarzyszącą 4-go rzĊdu klasyczną (4,4)
· krok staáy
- szacowanie báĊdu bezwzglĊdnego
- bez szacowania báĊdu
· podwajanie / poáowienie kroku
- szacowanie báĊdu bezwzglĊdnego
- bez szacowania báĊdu
· mnoĪenie kroku przez wspóáczynnik
- szacowanie báĊdu bezwzglĊdnego
- bez szacowania báĊdu
ƒekstrapolacjĊ Richardsona
· krok staáy
- szacowanie báĊdu bezwzglĊdnego
- bez szacowania báĊdu
· podwajanie / poáowienie kroku
- szacowanie báĊdu bezwzglĊdnego
- bez szacowania báĊdu
· mnoĪenie kroku przez wspóáczynnik
- szacowanie báĊdu bezwzglĊdnego
- bez szacowania báĊdu
2.) dla powyĪszego zagadnienia początkowego zastosowaü:
i metodĊ 4-go rzĊdu klasyczną (4,4)
ƒtowarzyszącą Shanks’a (5,5)
ƒekstrapolacjĊ Richardsona
wraz ze sterowaniem dáugoĞcią kroku i szacowaniem báĊdu bezwzglĊdnego jak w p.1
3.) wyniki zamieĞciü w tabeli:
Liczba kroków
Liczba
Báąd
(liczba kroków
odwoáaĔ lokalny
akceptowanych) do funkcji
t
Báąd
globalny
Norma max báĊdu
bezwzglĊdnego
dla báĊdu dla báĊdu w
globalnego
punkcie
koĔcowym
% Udziaá
kroków
akceptowanych
- 64 -
4.) zaobserwowaü
metod ma:
jaki
wpáyw
na
wartoĞci
báĊdów oraz na koszty obliczeĔ i sprawnoĞü
ƒsterowanie dáugoĞcią kroku i szacowanie báĊdu bezwzglĊdnego
ƒzwiĊkszenie rzĊdu metody
ƒzastosowanie metody towarzyszącej lub ekstrapolacji Richardsona
- 65 -
Spis literatury
1.
2.
3.
4.
5.
6.
Fortuna Z. - Metody numeryczne, WNT, Warszawa 1983
Jankowska J. i M. – Przegląd metod i algorytmów numerycznych, cz. 1, WNT, Warszawa 1981
Ralston A. – WstĊp do analizy numerycznej, PWN, Warszawa 1971
Stoer J. – WstĊp do metod numerycznych, t. 1, PWN, Warszawa 1979
Stoer J. , Bulirsch R.– WstĊp do metod numerycznych, t. 2, PWN, Warszawa 1980
Krupowicz A. – Metody numeryczne zagadnieĔ początkowych równaĔ róĪniczkowych zwyczajnych,
PWN, Warszawa 1986
7. Demidowicz B. P., Maron I. A. - Metody numeryczne, PWN, Warszawa 1965
8. Zalewski A., Cegieáa R. – MATLAB – obliczenia numeryczne i ich zastosowanie, Wydawnictwo Nakom,
PoznaĔ 1999