ű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