6 b, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numeryczne [2009], Kosma Z - Metody i algorytmy numeryczne [2009]


10 1.000000E+00 1.732042E+00 9.205900E-06

11 1.100000E+00 1.788831E+00 2.376880E-05

12 1.200000E+00 1.843893E+00 1.590741E-05

13 1.300000E+00 1.897336E+00 3.042294E-05

14 1.400000E+00 1.949334E+00 2.522146E-05

15 1.500000E+00 1.999960E+00 4.033430E-05

16 1.600000E+00 2.049352E+00 3.832083E-05

17 1.700000E+00 2.097563E+00 5.491633E-05

18 1.800000E+00 2.144704E+00 5.691913E-05

19 1.900000E+00 2.190814E+00 7.623076E-05

20 2.000000E+00 2.235984E+00 8.351309E-05

6.1.3. Metody Rungego-Kutty

Równanie (6.1) można scałkować między punktami i

0x01 graphic
(6.25)

i wykorzystać różnego rodzaju aproksymacje całki w prawej części tej zależności.

0x01 graphic

Rys. 6.1

Najprostszą aproksymacją całki w równaniu (6.25) jest przybliżenie funkcji podcałkowej 0x01 graphic
dla wszystkich x z przedziału 0x01 graphic
wartością funkcji 0x01 graphic
dla co jest równoważne przybliżeniu pola wyznaczonego przez wykres funkcji 0x01 graphic
prostokątem - rys. 6.1. W ten sposób otrzymujemy algorytm metody Eulera

(6.26)

gdzie

(6.27)

0x01 graphic

Rys. 6.2

Rozważmy teraz dwie proste koncepcje ulepszenia metody Eulera. Koncepcja pierwsza (rys. 6.2) opiera się na przybliżeniu pola pod krzywą 0x01 graphic
prostokątem o wysokości wyznaczonej w połowie przedziału 0x01 graphic
(kwadratura Gaussa z jednym węzłem)

(6.28)

Metoda (6.28) nazywana jest zmodyfikowaną metodą Eulera.

0x01 graphic

Rys. 6.3

Koncepcja druga wynika z zastępowania trapezów krzywoliniowych trapezami prostoliniowymi (rys. 6.3)

0x01 graphic
(6.29)

Tak ulepszona metoda Eulera nosi nazwę metody Heuna.

Uogólnieniem trzech omówionych metod jednokrokowych jest klasa metod Rungego-Kutty definiowanych wzorem

0x01 graphic
(6.30)

gdzie:

0x01 graphic
(6.31)

Liczbę całkowitą R nazywamy stopniem metody Rungego-Kutty.

W przypadku wzorów (6.26), (6.28) i (6.29) mamy:

- metoda Eulera

(6.32)

- zmodyfikowana metoda Eulera

R = 2, = 0, = 1, , (6.33)

- metoda Heuna

R = 2, , = 1. (6.34)

Naszym obecnym zadaniem jest określenie wielkości i z rozwinięć oraz funkcji w szeregi Taylora względem kroku h w otoczeniu punktu Niezbędne układy równań uzyskamy porównując współczynniki występujące przy jednakowych potęgach

Rozwinięcie jest następujące

. (6.35)

Kolejne pochodne ... obliczamy wielokrotnie różniczkując zależność (6.1):

i po ich wykorzystaniu otrzymujemy

(6.36)

W podobny sposób rozwijamy w szeregi potęgowe funkcje (r = 1, 2, ..., R )

0x01 graphic
. (6.37)

Różniczkując funkcje:

0x01 graphic

uzyskujemy:

i następnie mamy:

0x01 graphic

0x01 graphic

Powtórne różniczkowanie funkcji i daje następujące rezultaty [29, 30]:

0x01 graphic

0x01 graphic

Po podstawieniu wszystkich przedstawionych rozwinięć do wzoru (6.30) otrzymujemy

0x01 graphic
(6.38)

Stąd wynikają układy równań dla parametrów metod Rungego-Kutty stopnia pierwszego, drugiego i trzeciego:

0x01 graphic

0x01 graphic

(6.39)

0x01 graphic

(6.40)

W układzie równań (6.39) występują cztery niewiadome współczynniki; jeden z nich np. można potraktować jako parametr. Dwoma rozwiązaniami szczególny-mi, odpowiadającymi wartościom i = 1, są rozwiązania (6.33) i (6.34).

Układ sześciu równań (6.40) zawiera osiem niewiadomych, określa zatem dwuparametrową rodzinę współczynników. Obierając jako parametry współczynniki oraz można uzyskać dwie znane metody trzeciego stopnia [29, 30]:

- metoda Heuna

0x01 graphic
(6.41)

gdzie:

0x01 graphic

0x01 graphic

- metoda Kutty

0x01 graphic
(6.42)

gdzie:

0x01 graphic

Największe znaczenie praktyczne mają metody stopnia czwartego, dla których wyprowadzenie wzorów (6.31) jest dosyć żmudne i czasochłonne [1, 29]. Najbardziej popularnymi metodami stopnia czwartego są:

- metoda Rungego i Kutty

0x01 graphic
(6.43)

gdzie:

0x01 graphic

- metoda „trzech ósmych”

0x01 graphic
(6.44)

gdzie:

0x01 graphic

0x01 graphic

0x01 graphic

Wszystkie metody Rungego-Kutty dają się zapisać w postaci

0x01 graphic
(6.45)

w której znaną funkcję

0x01 graphic
(6.46)

nazywamy funkcją przyrostu.

Metoda (6.45) jest rzędu p, jeżeli p jest największą liczbą całkowitą, przy której

0x01 graphic
(6.47)

Na podstawie (6.30), (6.35) i (6.38) wnioskujemy, że osiągalny rząd metody Run-gego-Kutty jest równy jej stopniowi w rozważanych przez nas czterech przypadkach: R = 1, 2, 3, 4.

Porównując (6.1) z (6.45) stwierdzamy, że metoda jest zgodna, jeśli spełnia warunek

0x01 graphic
(6.48)

Dla każdej zgodnej metody Rungego-Kutty musi zatem być

0x01 graphic
(6.49)

Z (6.35) i (6.47) wynika, że warunek zgodności zapewnia jednocześnie zbieżność rozwiązania numerycznego do rozwiązania dokładnego Okazuje się ponadto, że dowolna zgodna metoda Rungego-Kutty jest co najmniej rzędu pierwszego.

Stabilność metod Rungego-Kutty w przypadku rozwiązań malejących można oprzeć na badaniu stabilności zagadnienia modelowego

0x01 graphic
(6.50)

gdzie jest liczbą rzeczywistą. Zbadamy mianowicie, jakie warunki musi spełniać długość kroku h, aby błąd występujący na kroku i nie wzrastał. Interesuje nas wzrost amplitudy błędu na kroku 0x01 graphic

(6.51)

gdzie g jest współczynnikiem wzmocnienia. Stabilność numeryczną osiągniemy przy spełnieniu warunku

(6.52)

Przykładowo dla metody stopnia pierwszego mamy

0x01 graphic

i następnie korzystając z wyjściowego równania (6.26) dostajemy równanie na przenoszenie małego błędu między kolejnymi krokami siatki

0x01 graphic

Stąd jest

(6.53)

gdzie

W podobny sposób przy wykorzystaniu związków (6.39) i (6.40) otrzymujemy:

0x01 graphic

(6.54)

0x01 graphic

(6.55)

Ważne w praktycznym stosowaniu metod Rungego-Kutty są przedziały stabilności absolutnej dla wynikające z warunku (6.52) [29, 30]

(6.56)

gdzie:

Omawianie metod Rungego-Kutty zakończymy uwagami o charakterze podsumowującym.

Metody Rungego-Kutty są metodami jednokrokowymi odznaczającymi się następującymi zaletami:

- są „samostartujące” tzn. nie wymagają żadnych dodatkowych wartości początkowych w celu wykonania pierwszego kroku obliczeń,

- formuły określające te metody są bardzo prostej postaci,

- dokonanie zmiany długości kroku całkowania nie wymaga żadnych dodatkowych zabiegów.

Wadami metod Rungego-Kutty są:

- duży koszt obliczeń prawych stron równania różniczkowego,

- trudności w oszacowaniu błędu obliczeń,

- mały obszar stabilności absolutnej sprawiający, że w przypadku równań źle uwarunkowanych metody te są całkowicie bezskuteczne.

Przedstawiamy obecnie program, którego zadaniem jest całkowanie zagadnienia (6.22) - (6.23) metodą Rungego-Kutty. Z klawiatury wczytywane są niezbędne dane do obliczeń objaśnione odpowiednimi tekstami ukazującymi się na ekranie monitora oraz nadawana jest wartość zmiennej rodz, typu całkowitego. Nadania wartości zmiennej rodz z zakresu 1 ÷ 7 oznacza wybór jednej z następujących metod Rungego-Kutty:

rodz = 1 - metoda Eulera (6.26),

rodz = 2 - zmodyfikowana metoda Eulera (6.28),

rodz = 3 - metoda Heuna drugiego rzędu (6.29),

rodz = 4 - metoda Heuna trzeciego rzędu (6.41),

rodz = 5 - metoda Kutty (6.42),

rodz = 6 - metoda Rungego-Kutty (6.43),

rodz = 7 - metoda „trzech ósmych” (6.44)

i jednocześnie automatyczne przypisanie wartości dla wszystkich współczynników metody. W przypadku nadania zmiennej rodz wartości większej od 7 wszystkie współczynniki określające wybraną metodę Rungego-Kutty są również wczytywane z klawiatury.

{Program 6.2}

uses

Crt;

var

i,j,n,R,rodz,s: Integer;

a,b,h,x,xx,y,ya,yn,yp,yy: Real;

ark: array[2..6] of Real;

crk,k: array[1..6] of Real;

brk: array[2..6,1..5] of Real;

plik: Text;

function f(x,y: Real): Real;

begin

f:=y-2*x/y;

end;

function yd(x: Real): Real;

begin

yd:=Sqrt(2*x+1);

end;

begin

Assign(plik,'Pr_6_2.wyn');

Rewrite(plik);

Writeln(plik,'PROGRAM 6.2');

Writeln(plik,'Zagadnienie poczatkowe dla rownania');

Writeln(plik,'rozniczkowego zwyczajnego.');

Writeln(plik,'Metoda Rungego i Kutty.');

Writeln(plik); ClrScr;

Writeln('PROGRAM 6.2. Dane do obliczen:');

Write(' - poczatek przedzialu: a = '); Readln(a);

Write(' - koniec przedzialu: b = '); Readln(b);

Write(' - liczba podprzedzialow: n = '); Readln(n);

Write(' - warunek poczatkowy: ya = '); Readln(ya);

Write(' - rodzaj metody: rodz = '); Readln(rodz);

Writeln(plik,'Poczatek przedzialu: a = ',a:13);

Writeln(plik,'Koniec przedzialu: b = ',b:13);

Writeln(plik,'Liczba podprzedzialow: n = ',n:3);

Writeln(plik,'Warunek poczatkowy: ya = ',ya:13);

Writeln(plik);

if rodz=1 then begin

R:=1; crk[1]:=1;

end;

if rodz=2 then begin

R:=2; crk[1]:=0; crk[2]:=1;

ark[2]:=1/2; brk[2,1]:=1/2;

end;

if rodz=3 then begin

R:=2; crk[1]:=1/2; crk[2]:=1/2;

ark[2]:=1; brk[2,1]:=1;

end;

if rodz=4 then begin

R:=3; crk[1]:=1/4; crk[2]:=0;

crk[3]:=3/4; ark[2]:=1/3; ark[3]:=2/3;

brk[2,1]:=1/3; brk[3,1]:=0; brk[3,2]:=2/3;

end;

if rodz=5 then begin

R:=3; crk[1]:=1/6; crk[2]:=2/3;

crk[3]:=1/6; ark[2]:=1/2; ark[3]:=1;

brk[2,1]:=1/2; brk[3,1]:=-1; brk[3,2]:=2;

end;

if rodz=6 then begin

R:=4; crk[1]:=1/6; crk[2]:=1/3;

crk[3]:=1/3; crk[4]:=1/6; ark[2]:=1/2;

ark[3]:=1/2; ark[4]:=1; brk[2,1]:=1/2;

brk[3,1]:=0; brk[3,2]:=1/2; brk[4,1]:=0;

brk[4,2]:=0; brk[4,3]:=1;

end;

if rodz=7 then begin

R:=4; crk[1]:=1/8; crk[2]:=3/8;

crk[3]:=3/8; crk[4]:=1/8; ark[2]:=1/3;

ark[3]:=2/3; ark[4]:=1; brk[2,1]:=1/3;

brk[3,1]:=-1/3; brk[3,2]:=1; brk[4,1]:=1;

brk[4,2]:=-1; brk[4,3]:=1;

end;

Write('Stopien metody: R = ');

if rodz=8 then Readln(R);

Writeln(plik,'Stopien metody: R = ',R:2);

Writeln('Wspolczynniki metody:');

Writeln(plik,'Wspolczynniki metody:');

for i:=2 to R do begin

Write(' - ark[',i:1,'] = ');

if rodz=8 then Readln(ark[i]);

Writeln(plik,' ark[',i:1,'] = ',ark[i]:13);

end;

for j:=2 to R do

for s:=1 to j-1 do begin

Write(' - brk[',j:1,',',s:1,'] = ');

if rodz=8 then Readln(brk[j,s]);

Writeln(plik,' brk[',j:1,',',s:1,'] = ',brk[j,s]:13);

end;

for i:=1 to R do begin

Write(' - crk[',i:1,'] = ');

if rodz=8 then Readln(crk[i]);

Writeln(plik,' crk[',i:1,'] = ',crk[i]:13);

end;

Writeln(plik);

Writeln(plik,'Obliczone wartosci funkcji:');

Writeln(plik,' i x[i] y[i] blad');

Writeln(plik,0:3,' ',a:13,' ',ya:13,' ',ya-ya:13);

h:=(b-a)/n; yp:=ya;

for i:=1 to n do begin

x:=a+(i-1)*h;

k[1]:=f(x,yp);

for j:=2 to R do begin

xx:=x+ark[j]*h; yy:=0;

for s:=1 to j-1 do

yy:=yy+brk[j,s]*k[s];

yy:=yp+h*yy;

k[j]:=f(xx,yy);

end;

yy:=0; xx:=x+h;

for j:=1 to R do

yy:=yy+crk[j]*k[j];

yn:=yp+h*yy;

y:=yd(xx);

Writeln(plik,i:3,' ',xx:13,' ',yn:13,' ',y-yn:13);

yp:=yn;

end;

Writeln(plik);

Close(plik);

end.

Uzyskane wyniki obliczeń dla zagadnienia (6.22) ÷ (6.24) przy wykorzystaniu zmodyfikowanej metody Eulera (6.33), metody Kutty (6.42) oraz metody Rungego-Kutty (6.43) dla h = 0.1 są następujące:

PROGRAM 6.2

Zagadnienie poczatkowe dla rownania

rozniczkowego zwyczajnego.

Metoda Rungego i Kutty.

Poczatek przedzialu: a = 0.000000E+00

Koniec przedzialu: b = 2.000000E+00

Liczba podprzedzialow: n = 20

Warunek poczatkowy: ya = 1.000000E+00

Stopien metody: R = 2

Wspolczynniki metody:

ark[2] = 5.000000E-01

brk[2,1] = 5.000000E-01

crk[1] = 0.000000E+00

crk[2] = 1.000000E+00

Obliczone wartosci funkcji:

i x[i] y[i] blad

0 0.000000E+00 1.000000E+00 0.000000E+00

1 1.000000E-01 1.095476E+00 -3.107546E-05

2 2.000000E-01 1.183298E+00 -8.246378E-05

3 3.000000E-01 1.265057E+00 -1.458713E-04

4 4.000000E-01 1.341860E+00 -2.192115E-04

5 5.000000E-01 1.414516E+00 -3.029108E-04

6 6.000000E-01 1.483638E+00 -3.986412E-04

7 7.000000E-01 1.549702E+00 -5.088738E-04

8 8.000000E-01 1.613088E+00 -6.367504E-04

9 9.000000E-01 1.674106E+00 -7.860953E-04

10 1.000000E+00 1.733012E+00 -9.615006E-04

11 1.100000E+00 1.790023E+00 -1.168462E-03

12 1.200000E+00 1.845322E+00 -1.413555E-03

13 1.300000E+00 1.899071E+00 -1.704657E-03

14 1.400000E+00 1.951410E+00 -2.051215E-03

15 1.500000E+00 2.002465E+00 -2.464571E-03

16 1.600000E+00 2.052349E+00 -2.958352E-03

17 1.700000E+00 2.101167E+00 -3.548945E-03

18 1.800000E+00 2.149017E+00 -4.256062E-03

19 1.900000E+00 2.195994E+00 -5.103428E-03

20 2.000000E+00 2.242188E+00 -6.119603E-03

PROGRAM 6.2

Zagadnienie poczatkowe dla rownania

rozniczkowego zwyczajnego.

Metoda Rungego i Kutty.

Poczatek przedzialu: a = 0.000000E+00

Koniec przedzialu: b = 2.000000E+00

Liczba podprzedzialow: n = 20

Warunek poczatkowy: ya = 1.000000E+00

Stopien metody: R = 3

Wspolczynniki metody:

ark[2] = 5.000000E-01

ark[3] = 1.000000E+00

brk[2,1] = 5.000000E-01

brk[3,1] = -1.000000E+00

brk[3,2] = 2.000000E+00

crk[1] = 1.666667E-01

crk[2] = 6.666667E-01

crk[3] = 1.666667E-01

Obliczone wartosci funkcji:

i x[i] y[i] blad

0 0.000000E+00 1.000000E+00 0.000000E+00

1 1.000000E-01 1.095445E+00 5.493202E-07

2 2.000000E-01 1.183217E+00 -1.045984E-06

3 3.000000E-01 1.264915E+00 -3.727733E-06

4 4.000000E-01 1.341648E+00 -7.118995E-06

5 5.000000E-01 1.414225E+00 -1.111322E-05

6 6.000000E-01 1.483255E+00 -1.572825E-05

7 7.000000E-01 1.549214E+00 -2.105032E-05

8 8.000000E-01 1.612479E+00 -2.721259E-05

9 9.000000E-01 1.673354E+00 -3.438848E-05

10 1.000000E+00 1.732094E+00 -4.279220E-05

11 1.100000E+00 1.788907E+00 -5.268342E-05

12 1.200000E+00 1.843973E+00 -6.437482E-05

13 1.300000E+00 1.897445E+00 -7.824217E-05

14 1.400000E+00 1.949454E+00 -9.473708E-05

15 1.500000E+00 2.000114E+00 -1.144026E-04

16 1.600000E+00 2.049528E+00 -1.378920E-04

17 1.700000E+00 2.097784E+00 -1.659920E-04

18 1.800000E+00 2.144961E+00 -1.996505E-04

19 1.900000E+00 2.191130E+00 -2.400101E-04

20 2.000000E+00 2.236356E+00 -2.884489E-04

PROGRAM 6.2

Zagadnienie poczatkowe dla rownania

rozniczkowego zwyczajnego.

Metoda Rungego i Kutty.

Poczatek przedzialu: a = 0.000000E+00

Koniec przedzialu: b = 2.000000E+00

Liczba podprzedzialow: n = 20

Warunek poczatkowy: ya = 1.000000E+00

Stopien metody: R = 4

Wspolczynniki metody:

ark[2] = 5.000000E-01

ark[3] = 5.000000E-01

ark[4] = 1.000000E+00

brk[2,1] = 5.000000E-01

brk[3,1] = 0.000000E+00

brk[3,2] = 5.000000E-01

brk[4,1] = 0.000000E+00

brk[4,2] = 0.000000E+00

brk[4,3] = 1.000000E+00

crk[1] = 1.666667E-01

crk[2] = 3.333333E-01

crk[3] = 3.333333E-01

crk[4] = 1.666667E-01

Obliczone wartosci funkcji:

i x[i] y[i] blad

0 0.000000E+00 1.000000E+00 0.000000E+00

1 1.000000E-01 1.095446E+00 -4.166814E-07

2 2.000000E-01 1.183217E+00 -7.888866E-07

3 3.000000E-01 1.264912E+00 -1.164273E-06

4 4.000000E-01 1.341642E+00 -1.567252E-06

5 5.000000E-01 1.414216E+00 -2.015520E-06

6 6.000000E-01 1.483242E+00 -2.525356E-06

7 7.000000E-01 1.549196E+00 -3.113822E-06

8 8.000000E-01 1.612455E+00 -3.800002E-06

9 9.000000E-01 1.673325E+00 -4.605952E-06

10 1.000000E+00 1.732056E+00 -5.557602E-06

11 1.100000E+00 1.788861E+00 -6.685732E-06

12 1.200000E+00 1.843917E+00 -8.027086E-06

13 1.300000E+00 1.897376E+00 -9.625679E-06

14 1.400000E+00 1.949370E+00 -1.153435E-05

15 1.500000E+00 2.000014E+00 -1.381663E-05

16 1.600000E+00 2.049407E+00 -1.654898E-05

17 1.700000E+00 2.097638E+00 -1.982352E-05

18 1.800000E+00 2.144785E+00 -2.375129E-05

19 1.900000E+00 2.190919E+00 -2.846617E-05

20 2.000000E+00 2.236102E+00 -3.412970E-05

*

Podstawowa wada klasycznych metod Rungego-Kutty, wynikająca z konieczności wielokrotnego obliczania prawych stron równania różniczkowego, została wyeliminowana w zmodyfikowanych metodach Rungego-Kutty [31], opracowanych dla równań różniczkowych postaci:

0x01 graphic
(6.57)

takich jakie występują najczęściej w numerycznej mechanice płynów. Algorytm zmodyfikowanych metod Rungego-Kutty jest następujący:

(6.58)

Jedną z najbardziej popularnych zmodyfikowanych metod Rungego-Kutty jest metoda określana współczynnikami:

(6.59)

odznaczająca się dobrą stabilnością numeryczną.

{Program 6.3}

uses Crt;

var

i,j,n: Integer;

a,b,h,x,xx,y,ya,yn,yp,yst: Real;

alf: array[1..5] of Real;

plik: Text;

function f(x,y: Real): Real;

begin

f:=y;

end;

function yd(x: Real): Real;

begin

yd:=Exp(x);

end;

begin

Assign(plik,'Pr_6_3.wyn');

Rewrite(plik);

Writeln(plik,'PROGRAM 6.3');

Writeln(plik,'Zagadnienie poczatkowe dla rownania');

Writeln(plik,'rozniczkowego zwyczajnego.');

Writeln(plik,'Zmodyfikowana metoda Rungego i Kutty.');

Writeln(plik); ClrScr;

Writeln('PROGRAM 6.3. Dane do obliczen:');

Write(' - poczatek przedzialu: a = '); Readln(a);

Write(' - koniec przedzialu: b = '); Readln(b);

Write(' - liczba podprzedzialow: n = '); Readln(n);

Write(' - warunek poczatkowy: ya = '); Readln(ya);

Writeln(plik,'Poczatek przedzialu: a = ',a:13);

Writeln(plik,'Koniec przedzialu: b = ',b:13);

Writeln(plik,'Liczba podprzedzialow: n = ',n:3);

Writeln(plik,'Warunek poczatkowy: ya = ',ya:13);

Writeln(plik);

alf[1]:=1/4; alf[2]:=1/6;

alf[3]:=3/8; alf[4]:=1/2;

alf[5]:=1;

for i:=1 to 5 do

Writeln(plik,' alfa[',i:1,'] = ',alf[i]:13);

Writeln(plik);

Writeln(plik,'Obliczone wartosci funkcji:');

Writeln(plik,' i x[i] y[i] blad');

Writeln(plik,0:3,' ',a:13,' ',ya:13,' ',ya-ya:13);

h:=(b-a)/n; yp:=ya;

for i:=1 to n do begin

x:=a+(i-1)*h;

yst:=yp;

for j:=1 to 5 do begin

yn:=yp+h*alf[j]*f(x,yst);

yst:=yn;

end;

xx:=x+h; y:=yd(xx);

Writeln(plik,i:3,' ',xx:13,' ',yn:13,' ',y-yn:13);

yp:=yn;

end;

Writeln(plik);

Close(plik);

end.

Program 6.3 jest przeznaczony do rozwiązywania zagadnienia (6.57) przy wykorzystaniu zmodyfikowanej metody Rungego-Kutty (6.58) - (6.59). W charakterze przykładu rozwiązano zagadnienie:

0x01 graphic

w przedziale 0x01 graphic
przyjmując 0x01 graphic
rozwiązanie dokładne 0x01 graphic
Otrzymane wyniki porównano z wynikami uzyskanymi za pomocą programu 6.2. Dokładność zmodyfikowanej metody Rungego-Kutty (6.58) - (6.59) jest tego samego rzędu co dokładność klasycznych metod Rungego-Kutty trzeciego i czwartego rzędu, dla których trzeba jednak wielokrotnie obliczać prawe strony funkcji

PROGRAM 6.3

Zagadnienie poczatkowe dla rownania

rozniczkowego zwyczajnego.

Zmodyfikowana metoda Rungego i Kutty.

Poczatek przedzialu: a = 0.000000E+00

Koniec przedzialu: b = 5.000000E+00

Liczba podprzedzialow: n = 10

Warunek poczatkowy: ya = 1.000000E+00

alfa[1] = 2.500000E-01

alfa[2] = 1.666667E-01

alfa[3] = 3.750000E-01

alfa[4] = 5.000000E-01

alfa[5] = 1.000000E+00

Obliczone wartosci funkcji:

i x[i] y[i] blad

0 0.000000E+00 1.000000E+00 0.000000E+00

1 5.000000E-01 1.650635E+00 -1.913495E-03

2 1.000000E+00 2.724595E+00 -6.313301E-03

3 1.500000E+00 4.497311E+00 -1.562237E-02

4 2.000000E+00 7.423419E+00 -3.436252E-02

5 2.500000E+00 1.225335E+01 -7.085889E-02

6 3.000000E+00 2.022581E+01 -1.402733E-01

7 3.500000E+00 3.338543E+01 -2.699735E-01

8 4.000000E+00 5.510714E+01 -5.089940E-01

9 4.500000E+00 9.096177E+01 -9.446364E-01

10 5.000000E+00 1.501447E+02 -1.731497E+00

PROGRAM 6.2

Zagadnienie poczatkowe dla rownania

rozniczkowego zwyczajnego.

Metoda Rungego i Kutty.

Poczatek przedzialu: a = 0.000000E+00

Koniec przedzialu: b = 5.000000E+00

Liczba podprzedzialow: n = 10

Warunek poczatkowy: ya = 1.000000E+00

Stopien metody: R = 3

Wspolczynniki metody:

ark[2] = 5.000000E-01

ark[3] = 1.000000E+00

brk[2,1] = 5.000000E-01

brk[3,1] = -1.000000E+00

brk[3,2] = 2.000000E+00

crk[1] = 1.666667E-01

crk[2] = 6.666667E-01

crk[3] = 1.666667E-01

Obliczone wartosci funkcji:

i x[i] y[i] blad

0 0.000000E+00 1.000000E+00 0.000000E+00

1 5.000000E-01 1.645833E+00 2.887937E-03

2 1.000000E+00 2.708767E+00 9.514467E-03

3 1.500000E+00 4.458180E+00 2.350946E-02

4 2.000000E+00 7.337421E+00 5.163548E-02

5 2.500000E+00 1.207617E+01 1.063225E-01

6 3.000000E+00 1.987537E+01 2.101714E-01

7 3.500000E+00 3.271154E+01 4.039129E-01

8 4.000000E+00 5.383774E+01 7.604087E-01

9 4.500000E+00 8.860795E+01 1.409182E+00

10 5.000000E+00 1.458339E+02 2.579243E+00

PROGRAM 6.2

Zagadnienie poczatkowe dla rownania

rozniczkowego zwyczajnego.

Metoda Rungego i Kutty.

Poczatek przedzialu: a = 0.000000E+00

Koniec przedzialu: b = 5.000000E+00

Liczba podprzedzialow: n = 10

Warunek poczatkowy: ya = 1.000000E+00

Stopien metody: R = 4

Wspolczynniki metody:

ark[2] = 5.000000E-01

ark[3] = 5.000000E-01

ark[4] = 1.000000E+00

brk[2,1] = 5.000000E-01

brk[3,1] = 0.000000E+00

brk[3,2] = 5.000000E-01

brk[4,1] = 0.000000E+00

brk[4,2] = 0.000000E+00

brk[4,3] = 1.000000E+00

crk[1] = 1.666667E-01

crk[2] = 3.333333E-01

crk[3] = 3.333333E-01

crk[4] = 1.666667E-01

Obliczone wartosci funkcji:

i x[i] y[i] blad

0 0.000000E+00 1.000000E+00 0.000000E+00

1 5.000000E-01 1.648438E+00 2.837707E-04

2 1.000000E+00 2.717346E+00 9.356370E-04

3 1.500000E+00 4.479375E+00 2.313708E-03

348 6. Równania różniczkowe zwyczajne i całkowe

6.1. Zagadnienia początkowe dla równań różniczkowych zwyczajnych 365



Wyszukiwarka

Podobne podstrony:
7 h, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
Spis tresci, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy
4 a, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
1 c, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
4 m, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
Okladka, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy nume
1 h, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
Przedmowa, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy nu
Contents, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy num
4 i, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
6 c, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
5 f, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
2 c, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
2 f, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
1 d, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
7 c 2, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numery
5 h, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
7 b, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
1 e, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz

więcej podobnych podstron