7 d, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numeryczne [2009], Kosma Z - Metody i algorytmy numeryczne [2009]


16 1.3963E+0000 1.083999259E+0000 2.8723E-0003

17 1.4835E+0000 1.096533117E+0000 2.9055E-0003

18 1.5708E+0000 1.100721695E+0000 2.9166E-0003

19 1.6581E+0000 1.096533117E+0000 2.9055E-0003

20 1.7453E+0000 1.083999259E+0000 2.8723E-0003

21 1.8326E+0000 1.063215513E+0000 2.8172E-0003

22 1.9199E+0000 1.034340055E+0000 2.7407E-0003

23 2.0071E+0000 9.975926439E-0001 2.6434E-0003

24 2.0944E+0000 9.532529507E-0001 2.5259E-0003

25 2.1817E+0000 9.016584269E-0001 2.3892E-0003

26 2.2689E+0000 8.432017381E-0001 2.2343E-0003

27 2.3562E+0000 7.783277750E-0001 2.0624E-0003

28 2.4435E+0000 7.075302675E-0001 1.8748E-0003

29 2.5307E+0000 6.313480274E-0001 1.6729E-0003

30 2.6180E+0000 5.503608477E-0001 1.4583E-0003

31 2.7053E+0000 4.651850895E-0001 1.2326E-0003

32 2.7925E+0000 3.764689920E-0001 9.9755E-0004

33 2.8798E+0000 2.848877381E-0001 7.5488E-0004

34 2.9671E+0000 1.911383165E-0001 5.0647E-0004

35 3.0543E+0000 9.593421692E-0002 2.5420E-0004

36 3.1416E+0000 0.000000000E+0000 -1.0402E-0011

7.4. Równania hiperboliczne

Ograniczymy się do przedstawienia podstawowych schematów różnicowych wykorzystywanych przy rozwiązywaniu jednowymiarowego równania adwekcji oraz możliwości ich uogólnień dla zagadnień opisywanych wielowymiarowymi równaniami adwekcji. Schematy różnicowe dla równania hiperbolicznego (7.13), opisującego rozprzestrzenianie się fali w kierunku osi x ze stałą prędkością c, budować będziemy w podobny sposób jak schematy różnicowe dla równania parabolicznego (7.15) - przyjmując, że siatka jest określona krokiem przestrzennym h i krokiem czasowym

Jawna metoda Eulera. Skonstruujemy schemat różnicowy, analogiczny do sche-matu różnicowego (7.34) dla równania parabolicznego (7.15)

0x01 graphic

który przepiszemy w postaci

0x01 graphic
(7.62)

zawierającej bezwymiarową wielkość

(7.63)

nazywaną liczbą Couranta.

Rozważając wzmocnienie modu Fouriera (7.28)

wyznaczamy współczynnik wzmocnienia

(7.64)

gdzie jest oznaczeniem (7.37). Moduł otrzymanego współczynnika wzmocnienia

jest zawsze większy od jedności. Schemat różnicowy (7.62) jest zatem wewnętrznie niestabilny dla wszystkich - co świadczy o tym, że nie wszystkie zgodne i narzucające się schematy są użyteczne.

Metoda Laxa. Stabilny i użyteczny schemat pierwszego rzędu dokładności można uzyskać po zastąpieniu w algorytmie jawnej metody Eulera (7.62) średnią w przestrzeni

0x01 graphic
(7.65)

Schemat ten, znany jako schemat Laxa, jest szeroko stosowany przy rozwiązywaniu równań hiperbolicznych.

Analizując stabilność schematu Laxa (7.65) stwierdzamy, że współczynnik wzmocnienia jest dany wzorem

(7.66)

Współczynnik ten ma amplitudę

Warunek stabilności von Neumanna będzie spełniony dla wszystkich liczb falowych k, dla których

i stąd otrzymamy warunek stabilności nakładany na krok czasowy

(7.67)

Warunek (7.67) jest szczególnym przypadkiem ogólnego warunku CourantaFriedrichsa-Lewy'ego, odnoszącego się do równań hiperbolicznych [11]. Korzystanie z metody jawnej wymaga wybrania takiego kroku czasowego, który zapewnia przenoszenie się rozwiązania numerycznego z prędkością większą od prędkości fizycznej c.

W celu zilustrowania własności dysypacji i dyspersji schematu Laxa (7.65) wy-prowadzimy dla niego związek dyspersyjny (7.31). Rozważając mod Fouriera (7.16) mamy

i następnie po skróceniu wspólnych czynników dostajemy

0x01 graphic
(7.68)

W ogólności częstość jest zespolona. Zapisując ją w postaci możemy w otrzymanym związku dyspersyjnym porównać części rzeczywiste i urojone:

Stąd wyznaczamy

(7.69)

oraz

(7.70)

Z zależności (7.70) wynika, że w szczególnym przypadku gdy wtedy część urojona τ równa się zeru i związek dyspersyjny zgadza się dokładnie ze związkiem dyspersyjnym dla równania różniczkowego (7.13). W przypadku ogólnym jest jednak co wiąże się z występowaniem na siatce dysypacji i dyspersji.

Przy wykorzystaniu rozwiązania dokładnego równania (7.13)

możemy obliczyć dokładną wartość współczynnika wzmocnienia

0x01 graphic
(7.71)

i porównać ją z wartością przybliżoną (7.66). W rezultacie otrzymujemy:

dysypacja

0x01 graphic
(7.72)

dyspersja

0x01 graphic
(7.73)

gdzie i 0x01 graphic
są kątami fazowymi: przybliżonym i dokładnym.

Rys. 7.5

Widać, że zarówno dysypacja jak i dyspersja zależą od liczby Couranta oraz Dla dużych liczb falowych k (dla małych długości fal) efekty dysypacji i dyspersji mogą być znaczne i mogą one powodować powstawanie dużych błędów obliczeń. Wpływ błędów dysypacji i dyspersji na postać rozwiązania jest pokazany na rysunku 7.5.

Metoda „upwind” („pod prąd”). W metodzie tej stabilność schematu (7.62) została uzyskana w wyniku zastąpienia różnicy centralnej różnicą wsteczną

0x01 graphic
(7.74)

Jest to schemat pierwszego rzędu dokładności z błędem aproksymacji 0x01 graphic

Po wstawieniu do schematu (7.74) modu Fouriera (7.28) otrzymujemy

i następnie

Schemat jest warunkowo stabilny dla czyli dla kroków czasowych określonych, tak samo jak w metodzie Laxa, nierównością (7.67).

Niejawna metoda pierwszego rzędu. Aproksymując pochodną przestrzenną w równaniu (7.13) centralnym ilorazem różnicowym, wyznaczanym na warstwie czasowej 0x01 graphic
otrzymujemy

0x01 graphic
(7.75)

Na każdym kroku czasowym musi być więc rozwiązywany układ równań z trój-diagonalną macierzą współczynników.

Po obliczeniu współczynnika wzmocnienia

stwierdzamy, że schemat (7.75) jest bezwarunkowo stabilny, gdyż

(7.76)

Z postaci wzoru (7.76) wynika, że niejawna metoda pierwszego rzędu charakteryzuje się dużą dysypacją dla średnich wartości liczb falowych. Ponadto również dyspersja

0x01 graphic

jest duża dla dużych wartości liczb falowych.

Metoda skokowa. Trudności związane z uzyskaniem jawnych stabilnych schematów różnicowych postaci (7.62) dla równania (7.13) wynikały z zastąpienia po-chodnej względem czasu progresywnym ilorazem różnicowym. Trudności te można pokonać stosując metodę drugiego rzędu dokładności w postaci wzoru trójpoziomowego

0x01 graphic
(7.77)

analogicznego do wzoru schematu Duforta-Frankela (7.43) dla jednowymiarowych równań parabolicznych.

Dla współczynnika wzmocnienia określonego przez dwustopniowy schemat różnicowy (7.77) otrzymujemy równanie kwadratowe

0x01 graphic
(7.78)

Równanie to ma dwa pierwiastki

0x01 graphic
, (7.79)

których moduły będą równe jedności w odniesieniu do wszystkich liczb falowych spełniających warunek

czyli dla kroku czasowego określonego zgodnie z nierównością (7.67).

Metoda skokowa oprócz niedogodności związanych z koniecznością zadawania warunków początkowych na dwu poziomach czasowych i większymi wymaganiami odnoszącymi się do pamięci komputera, charakteryzuje się wykonywaniem obliczeń na dwu niesprzężonych siatkach ( nie zależy od ) - rys. 7.6, co może powodować rozprzęganie się rozwiązań odpowiadających tym siatkom.

0x01 graphic

Rys. 7.6

Metoda Laxa-Wendroffa. Schemat różnicowy Laxa-Wendroffa z błędem ap-roksymacji można wyprowadzić z rozwinięcia w szereg Taylora zmiennej względem punktu

0x01 graphic
(7.80)

przy wykorzystaniu równań falowych - pierwszego i drugiego rzędu:

w których pochodne przestrzenne i zostały zastąpione centralnymi ilorazami różnicowymi drugiego rzędu dokładności

0x01 graphic
(7.81)

Po wyznaczeniu współczynnika wzmocnienia

(7.82)

i następnie jego modułu

stwierdzamy, że jawny schemat różnicowy (7.81) jest warunkowo stabilny, podobnie jak poprzednio rozważane schematy jawne, jeśli spełniony jest warunek Couranta-Friedrichsa-Lewy'ego (7.67):

Niejawna metoda drugiego rzędu. Odejmując od rozwinięcia (7.80) rozwinięcie w szereg Taylora zmiennej względem punktu

0x01 graphic

i uwzględniając dodatkowo rozwinięcie dla drugiej pochodnej

otrzymamy wzór następujący

(7.83)

Zastępując w zależności (7.83) pochodne czasowe pochodnymi przestrzennymi i następnie pochodne przestrzenne ich centralnymi ilorazami różnicowymi uzyskamy schemat różnicowy aproksymujący równanie (7.13) z dokładnością

0x01 graphic
(7.84)

Po wyznaczeniu współczynnika wzmocnienia

(7.85)

stwierdzamy, że jego moduł jest zawsze równy jedności, niezależnie od wartości liczby falowej k. Zatem schemat (7.84) jest bezwzględnie stabilny.

*

Przedstawione jawne schematy różnicowe dla jednego wymiaru w przestrzeni dają się w sposób naturalny rozszerzyć na równania opisujące zagadnienia wielo-wymiarowe i właśnie w takich zagadnieniach metody te znajdują największe zastosowanie.

Możliwość łatwego uogólniania jednowymiarowych schematów różnicowych prześledzimy na przykładzie metody Laxa, zastosowanej do rozwiązywania dwuwymiarowego równania adwekcji

0x01 graphic
(7.86)

Schemat Laxa dla równania (7.86) przybiera postać następującą

0x01 graphic
(7.87)

gdzie:

W schemacie tym zmienną zastąpiono średnią w przestrzeni, wziętą z czterech punktów przylegających.

Stosując analizę stabilności von Neumanna dla podwójnego modu (7.48) wyznaczamy współczynnik wzmocnienia

(7.88)

gdzie I jest jednostką urojoną, a i są oznaczeniami (7.50).

Badając moduł współczynnika wzmocnienia (7.88)

0x01 graphic

0x01 graphic

stwierdzamy, że warunek stabilności von Neumanna (7.30) będzie spełniony, jeśli

0x01 graphic

Stąd wynika ograniczenie na krok czasowy

(7.89)

będące warunkiem Couranta-Friedrichsa-Lewy'ego dla zagadnień dwuwymiarowych.

Warunek Couranta-Friedrichsa-Lewy'ego nakładany na krok czasowy w przypadku N wymiarów przestrzennych przyjmuje postać

, (7.90)

gdzie jest modułem największej prędkości propagacji na siatce.

Również jednowymiarowe schematy niejawne można w podobny sposób rozszerzyć na równanie odnoszące się do zagadnień dwu i trójwymiarowych. Jednakże ze względu na konieczność rozwiązywania dużych układów równań (jak np. równania postaci (7.56)) stosowane są głównie schematy, w których wykorzystywana jest dekompozycja strumieni - co pozwala na zredukowanie dużych układów równań do mniejszych układów równań różnicowych [39, 40].

*

Kolejny z prezentowanych programów komputerowych przeznaczony jest do rozwiązywania równania

z warunkiem początkowym

0x01 graphic

i okresowymi warunkami brzegowymi. Rozwiązaniem dokładnym tego zagadnienia jest funkcja

0x01 graphic

Zagadnienie jest rozwiązywane za pomocą wszystkich sześciu omówionych stabilnych metod różnicowych.

Sposób działania programu 7.2 jest taki sam jak sposób działania programu 7.1 - z tą tylko różnicą, że procedura Tridiag1 została zastąpiona procedurą

Tridiag2(n,a,b,c,d,x),

w której rozwiązywany jest układ równań (2.84) za pomocą algorytmu określonego wzorami (2.90) ÷ (2.94).

{Program 7.2}

unit Obliczenia;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls,

Forms, Dialogs, StdCtrls, Buttons;

type

Tabl = array[0..100] of Real;

. . . . . . . . . . . . . . . .

var

Form3: TForm3;

a,al,b,bl,dt,h,p,t,tmax,x: Real;

aa,bb,cc,dd,u,un,un1: Tabl;

j,m,m1,nr: Integer;

plik: Text;

implementation

uses Ustawienia, Informacje, Grafika, Podglad;

{$R *.DFM}

function u0(x: Real): Real;

begin

u0:=Sin(2*x);

end;

function ud(x,t: Real): Real;

begin

ud:=Sin(2*(x-t));

end;

{procedure Tridiag2(n: Integer; a,b,c,d: Tabl;

var x: Tabl);}

. . . . . . . . . . . . . . . . . . . . . . .

procedure TForm3.BitBtn1Click(Sender: TObject);

begin

Form2.Show;

AssignFile(plik,Edit4.Text);

Rewrite(plik); Writeln(plik,'PROGRAM 7.2.');

Writeln(plik,'Zagadnienie początkowo-brzegowe');

Writeln(plik,'dla równania hiperbolicznego.');

a:=StrToFloat(Edit1.Text);

b:=StrToFloat(Edit2.Text);

m:=StrToInt(Edit3.Text);

dt:=StrToFloat(Edit6.Text);

tmax:=StrToFloat(Edit7.Text);

if RadioButton1.Checked then nr:=1;

if RadioButton2.Checked then nr:=2;

if RadioButton3.Checked then nr:=3;

if RadioButton4.Checked then nr:=4;

if RadioButton5.Checked then nr:=5;

if RadioButton6.Checked then nr:=6;

case nr of

1: Writeln(plik,'Metoda Laxa.');

2: Writeln(plik,'Metoda "upwind".');

3: Writeln(plik,'Metoda niejawna pierwszego rzędu.');

4: Writeln(plik,'Metoda skokowa.');

5: Writeln(plik,'Metoda Laxa-Wendroffa.');

6: Writeln(plik,'Metoda niejawna drugiego rzędu.');

end;

Writeln(plik);

Writeln(plik,'Liczba podprzedziałów: m = ',m:3);

Writeln(plik,'Początek przedziału: a = ',a:13);

Writeln(plik,'Koniec przedziału: b = ',b:13);

Writeln(plik,'Krok czasowy: dt = ',dt:13);

Writeln(plik); h:=(b-a)/m; al:=dt/h;

for j:=0 to m do begin

x:=a+j*h;

un[j]:=u0(x);

end;

t:=0; m1:=m+1;

un[m1]:=un[1];

repeat

t:=t+dt;

case nr of

1: for j:=1 to m do begin

p:=al*(un[j+1]-un[j-1])/2;

u[j]:=(un[j-1]+un[j+1])/2-p;

end;

2: for j:=1 to m do

u[j]:=un[j]-al*(un[j]-un[j-1]);

3: begin

for j:=1 to m do begin

aa[j]:=-al/2; bb[j]:=1;

cc[j]:=al/2; dd[j]:=un[j];

end;

Tridiag2(m,aa,bb,cc,dd,u);

end;

4: if Abs(t-dt)<1e-10 then

for j:=1 to m do

u[j]:=ud(a+j*h,t)

else

for j:=1 to m do begin

p:=un[j+1]-un[j-1];

u[j]:=un1[j]-al*p;

end;

5: for j:=1 to m do begin

p:=al*al*(un[j-1]-2*un[j]+un[j+1])/2;

u[j]:=un[j]-al*(un[j+1]-un[j-1])/2+p;

end;

6: begin

for j:=1 to m do begin

aa[j]:=-al/4;

bb[j]:=1;

cc[j]:=al/4;

p:=un[j+1]-un[j-1];

dd[j]:=un[j]-al*p/4;

end;

Tridiag2(m,aa,bb,cc,dd,u);

end;

end;

u[0]:=u[m]; u[m1]:=u[1];

for j:=0 to m1 do begin

un1[j]:=un[j];

un[j]:=u[j];

end;

until (t>=tmax);

Writeln(plik,'Wartości funkcji u(x,t) dla t = ',t:13,':');

Writeln(plik,' j x[j] u[j] błąd');

for j:=0 to m do begin

x:=a+j*h; bl:=ud(x,t)-u[j];

Writeln(plik,j:3,' ',x:13,' ',u[j]:18,' ',bl:13);

end;

Writeln(plik); CloseFile(plik);

Form2.Wyniki.Lines.LoadFromFile(Edit4.Text);

end;

. . . . . . . . . . . . . . . . . . . . . . .

procedure TForm3.BitBtn3Click(Sender: TObject);

begin

Close;

end;

end.

Załączone wydruki komputerowe zawierają wyniki obliczeń numerycznych otrzymane przy wykorzystaniu wszystkich schematów różnicowych dla przy-jęto oraz Wyniki te pozwalają na przeana-lizowanie własności poszczególnych schematów różnicowych, a w szczególności dysypacji, której efekty najbardziej są widoczne w przypadku metody Laxa.

PROGRAM 7.2.

Zagadnienie początkowo-brzegowe

dla równania hiperbolicznego.

Metoda Laxa.

Liczba podprzedziałów: m = 36

Początek przedziału: a = 0.0000E+0000

Koniec przedziału: b = 3.1416E+0000

Krok czasowy: dt = 5.0000E-0002

Wartości funkcji u(x,t) dla t = 1.0000E+0000:

j x[j] u[j] błąd

0 0.0000E+0000 -7.363080188E-0001 -1.7299E-0001

1 8.7266E-0002 -7.857733631E-0001 -1.8197E-0001

2 1.7453E-0001 -8.113633814E-0001 -1.8543E-0001

3 2.6180E-0001 -8.123005339E-0001 -1.8325E-0001

4 3.4907E-0001 -7.885563457E-0001 -1.7550E-0001

5 4.3633E-0001 -7.408522720E-0001 -1.6242E-0001

6 5.2360E-0001 -6.706377769E-0001 -1.4440E-0001

7 6.1087E-0001 -5.800462923E-0001 -1.2200E-0001

8 6.9813E-0001 -4.718303946E-0001 -9.5892E-0002

9 7.8540E-0001 -3.492781692E-0001 -6.6869E-0002

10 8.7266E-0001 -2.161133033E-0001 -3.5813E-0002

11 9.5993E-0001 -7.638194402E-0002 -3.6701E-0003

12 1.0472E+0000 6.567024194E-0002 2.8585E-0002

13 1.1345E+0000 2.057270708E-0001 5.9971E-0002

14 1.2217E+0000 3.395329868E-0001 8.9535E-0002

15 1.3090E+0000 4.630223647E-0001 1.1637E-0001

16 1.3963E+0000 5.724430424E-0001 1.3969E-0001

17 1.4835E+0000 6.644703280E-0001 1.5875E-0001

18 1.5708E+0000 7.363080188E-0001 1.7299E-0001

19 1.6581E+0000 7.857733631E-0001 1.8197E-0001

20 1.7453E+0000 8.113633814E-0001 1.8543E-0001

21 1.8326E+0000 8.123005339E-0001 1.8325E-0001

22 1.9199E+0000 7.885563457E-0001 1.7550E-0001

23 2.0071E+0000 7.408522720E-0001 1.6242E-0001

24 2.0944E+0000 6.706377769E-0001 1.4440E-0001

25 2.1817E+0000 5.800462923E-0001 1.2200E-0001

26 2.2689E+0000 4.718303946E-0001 9.5892E-0002

27 2.3562E+0000 3.492781692E-0001 6.6869E-0002

28 2.4435E+0000 2.161133033E-0001 3.5813E-0002

29 2.5307E+0000 7.638194403E-0002 3.6701E-0003

30 2.6180E+0000 -6.567024194E-0002 -2.8585E-0002

31 2.7053E+0000 -2.057270708E-0001 -5.9971E-0002

32 2.7925E+0000 -3.395329868E-0001 -8.9535E-0002

33 2.8798E+0000 -4.630223647E-0001 -1.1637E-0001

34 2.9671E+0000 -5.724430424E-0001 -1.3969E-0001

35 3.0543E+0000 -6.644703280E-0001 -1.5875E-0001

36 3.1416E+0000 -7.363080188E-0001 -1.7299E-0001

PROGRAM 7.2.

Zagadnienie początkowo-brzegowe

dla równania hiperbolicznego.

Metoda "upwind".

Liczba podprzedziałów: m = 36

Początek przedziału: a = 0.0000E+0000

Koniec przedziału: b = 3.1416E+0000

Krok czasowy: dt = 5.0000E-0002

Wartości funkcji u(x,t) dla t = 1.0000E+0000:

j x[j] u[j] błąd

0 0.0000E+0000 -8.436687425E-0001 -6.5629E-0002

1 8.7266E-0002 -8.980115271E-0001 -6.9735E-0002

2 1.7453E-0001 -9.250686858E-0001 -7.1722E-0002

3 2.6180E-0001 -9.240181007E-0001 -7.1530E-0002

4 3.4907E-0001 -8.948916931E-0001 -6.9165E-0002

5 4.3633E-0001 -8.385744543E-0001 -6.4698E-0002

6 5.2360E-0001 -7.567775550E-0001 -5.8265E-0002

7 6.1087E-0001 -6.519863527E-0001 -5.0062E-0002

8 6.9813E-0001 -5.273848750E-0001 -4.0338E-0002

9 7.8540E-0001 -3.867590747E-0001 -2.9388E-0002

10 8.7266E-0001 -2.343817956E-0001 -1.7545E-0002

11 9.5993E-0001 -7.488294429E-0002 -5.1691E-0003

12 1.0472E+0000 8.689118740E-0002 7.3638E-0003

13 1.1345E+0000 2.460251743E-0001 1.9673E-0002

14 1.2217E+0000 3.976838108E-0001 3.1384E-0002

15 1.3090E+0000 5.372590260E-0001 4.2142E-0002

16 1.3963E+0000 6.605098975E-0001 5.1620E-0002

17 1.4835E+0000 7.636915100E-0001 5.9529E-0002

18 1.5708E+0000 8.436687425E-0001 6.5629E-0002

19 1.6581E+0000 8.980115271E-0001 6.9735E-0002

20 1.7453E+0000 9.250686858E-0001 7.1722E-0002

21 1.8326E+0000 9.240181007E-0001 7.1530E-0002

22 1.9199E+0000 8.948916931E-0001 6.9165E-0002

23 2.0071E+0000 8.385744543E-0001 6.4698E-0002

24 2.0944E+0000 7.567775551E-0001 5.8265E-0002

25 2.1817E+0000 6.519863527E-0001 5.0062E-0002

26 2.2689E+0000 5.273848750E-0001 4.0338E-0002

27 2.3562E+0000 3.867590747E-0001 2.9388E-0002

28 2.4435E+0000 2.343817956E-0001 1.7545E-0002

29 2.5307E+0000 7.488294429E-0002 5.1691E-0003

30 2.6180E+0000 -8.689118741E-0002 -7.3638E-0003

31 2.7053E+0000 -2.460251743E-0001 -1.9673E-0002

32 2.7925E+0000 -3.976838109E-0001 -3.1384E-0002

33 2.8798E+0000 -5.372590260E-0001 -4.2142E-0002

34 2.9671E+0000 -6.605098975E-0001 -5.1620E-0002

35 3.0543E+0000 -7.636915100E-0001 -5.9529E-0002

36 3.1416E+0000 -8.436687425E-0001 -6.5629E-0002

PROGRAM 7.2.

Zagadnienie początkowo-brzegowe

dla równania hiperbolicznego.

Metoda niejawna pierwszego rzędu.

Liczba podprzedziałów: m = 36

Początek przedziału: a = 0.0000E+0000

Koniec przedziału: b = 3.1416E+0000

Krok czasowy: dt = 5.0000E-0002

Wartości funkcji u(x,t) dla t = 1.0000E+0000:

j x[j] u[j] błąd

0 0.0000E+0000 -8.301697849E-0001 -7.9128E-0002

1 8.7266E-0002 -8.806484673E-0001 -8.7098E-0002

2 1.7453E-0001 -9.043690917E-0001 -9.2422E-0002

3 2.6180E-0001 -9.006109189E-0001 -9.4937E-0002

4 3.4907E-0001 -8.694881390E-0001 -9.4568E-0002

5 4.3633E-0001 -8.119464020E-0001 -9.1326E-0002

6 5.2360E-0001 -7.297340845E-0001 -8.5308E-0002

7 6.1087E-0001 -6.253491660E-0001 -7.6699E-0002

8 6.9813E-0001 -5.019633296E-0001 -6.5759E-0002

9 7.8540E-0001 -3.633255914E-0001 -5.2821E-0002

10 8.7266E-0001 -2.136483890E-0001 -3.8278E-0002

11 9.5993E-0001 -5.747958840E-0002 -2.2572E-0002

12 1.0472E+0000 1.004357004E-0001 -6.1807E-0003

13 1.1345E+0000 2.552993013E-0001 1.0398E-0002

14 1.2217E+0000 4.024057621E-0001 2.6662E-0002

15 1.3090E+0000 5.372853275E-0001 4.2116E-0002

16 1.3963E+0000 6.558397500E-0001 5.6290E-0002

17 1.4835E+0000 7.544668136E-0001 6.8753E-0002

18 1.5708E+0000 8.301697849E-0001 7.9128E-0002

19 1.6581E+0000 8.806484673E-0001 8.7098E-0002

20 1.7453E+0000 9.043690917E-0001 9.2422E-0002

21 1.8326E+0000 9.006109189E-0001 9.4937E-0002

22 1.9199E+0000 8.694881390E-0001 9.4568E-0002

23 2.0071E+0000 8.119464020E-0001 9.1326E-0002

24 2.0944E+0000 7.297340845E-0001 8.5308E-0002

25 2.1817E+0000 6.253491660E-0001 7.6699E-0002

26 2.2689E+0000 5.019633296E-0001 6.5759E-0002

27 2.3562E+0000 3.633255914E-0001 5.2821E-0002

28 2.4435E+0000 2.136483890E-0001 3.8278E-0002

29 2.5307E+0000 5.747958840E-0002 2.2572E-0002

30 2.6180E+0000 -1.004357004E-0001 6.1807E-0003

31 2.7053E+0000 -2.552993013E-0001 -1.0398E-0002

32 2.7925E+0000 -4.024057621E-0001 -2.6662E-0002

33 2.8798E+0000 -5.372853275E-0001 -4.2116E-0002

34 2.9671E+0000 -6.558397500E-0001 -5.6290E-0002

35 3.0543E+0000 -7.544668136E-0001 -6.8753E-0002

36 3.1416E+0000 -8.301697849E-0001 -7.9128E-0002

PROGRAM 7.2.

Zagadnienie początkowo-brzegowe

dla równania hiperbolicznego.

Metoda skokowa.

Liczba podprzedziałów: m = 36

Początek przedziału: a = 0.0000E+0000

Koniec przedziału: b = 3.1416E+0000

Krok czasowy: dt = 5.0000E-0002

Wartości funkcji u(x,t) dla t = 1.0000E+0000:

j x[j] u[j] błąd

0 0.0000E+0000 -9.120916788E-0001 2.7943E-0003

1 8.7266E-0002 -9.694704331E-0001 1.7241E-0003

2 1.7453E-0001 -9.973923188E-0001 6.0164E-0004

3 2.6180E-0001 -9.950089436E-0001 -5.3915E-0004

4 3.4907E-0001 -9.623927252E-0001 -1.6635E-0003

5 4.3633E-0001 -9.005346908E-0001 -2.7374E-0003

6 5.2360E-0001 -8.113143655E-0001 -3.7281E-0003

7 6.1087E-0001 -6.974426637E-0001 -4.6055E-0003

8 6.9813E-0001 -5.623795196E-0001 -5.3430E-0003

9 7.8540E-0001 -4.102287583E-0001 -5.9181E-0003

10 8.7266E-0001 -2.456134038E-0001 -6.3134E-0003

11 9.5993E-0001 -7.353521030E-0002 -6.5169E-0003

12 1.0472E+0000 1.007773133E-0001 -6.5223E-0003

13 1.1345E+0000 2.720277693E-0001 -6.3296E-0003

14 1.2217E+0000 4.350127992E-0001 -5.9446E-0003

15 1.3090E+0000 5.847801853E-0001 -5.3789E-0003

16 1.3963E+0000 7.167793214E-0001 -4.6498E-0003

17 1.4835E+0000 8.269994804E-0001 -3.7795E-0003

18 1.5708E+0000 9.120916788E-0001 -2.7943E-0003

19 1.6581E+0000 9.694704331E-0001 -1.7241E-0003

20 1.7453E+0000 9.973923188E-0001 -6.0164E-0004

21 1.8326E+0000 9.950089436E-0001 5.3915E-0004

22 1.9199E+0000 9.623927252E-0001 1.6635E-0003

23 2.0071E+0000 9.005346908E-0001 2.7374E-0003

24 2.0944E+0000 8.113143655E-0001 3.7281E-0003

25 2.1817E+0000 6.974426637E-0001 4.6055E-0003

26 2.2689E+0000 5.623795196E-0001 5.3430E-0003

27 2.3562E+0000 4.102287583E-0001 5.9181E-0003

28 2.4435E+0000 2.456134038E-0001 6.3134E-0003

29 2.5307E+0000 7.353521030E-0002 6.5169E-0003

30 2.6180E+0000 -1.007773133E-0001 6.5223E-0003

31 2.7053E+0000 -2.720277693E-0001 6.3296E-0003

32 2.7925E+0000 -4.350127992E-0001 5.9446E-0003

33 2.8798E+0000 -5.847801853E-0001 5.3789E-0003

34 2.9671E+0000 -7.167793214E-0001 4.6498E-0003

35 3.0543E+0000 -8.269994805E-0001 3.7795E-0003

36 3.1416E+0000 -9.120916788E-0001 2.7943E-0003

PROGRAM 7.2.

Zagadnienie początkowo-brzegowe

dla równania hiperbolicznego.

Metoda Laxa-Wendroffa.

. . . . . . . . . . . . . . . . . . .

Wartości funkcji u(x,t) dla t = 1.0000E+0000:

j x[j] u[j] błąd

0 0.0000E+0000 -9.116379545E-0001 2.3405E-0003

1 8.7266E-0002 -9.689412641E-0001 1.1949E-0003

2 1.7453E-0001 -9.968037836E-0001 1.3100E-0005

3 2.6180E-0001 -9.943789245E-0001 -1.1691E-0003

4 3.4907E-0001 -9.617403651E-0001 -2.3159E-0003

5 4.3633E-0001 -8.998798113E-0001 -3.3923E-0003

6 5.2360E-0001 -8.106768648E-0001 -4.3656E-0003

7 6.1087E-0001 -6.968419119E-0001 -5.2062E-0003

8 6.9813E-0001 -5.618337702E-0001 -5.8887E-0003

9 7.8540E-0001 -4.097545937E-0001 -6.3922E-0003

10 8.7266E-0001 -2.452252312E-0001 -6.7016E-0003

11 9.5993E-0001 -7.324482419E-0002 -6.8073E-0003

12 1.0472E+0000 1.009610897E-0001 -6.7061E-0003

13 1.1345E+0000 2.720993521E-0001 -6.4012E-0003

14 1.2217E+0000 4.349700133E-0001 -5.9018E-0003

15 1.3090E+0000 5.846243308E-0001 -5.2231E-0003

16 1.3963E+0000 7.165151338E-0001 -4.3857E-0003

17 1.4835E+0000 8.266349871E-0001 -3.4150E-0003

18 1.5708E+0000 9.116379545E-0001 -2.3405E-0003

19 1.6581E+0000 9.689412641E-0001 -1.1949E-0003

20 1.7453E+0000 9.968037836E-0001 -1.3100E-0005

21 1.8326E+0000 9.943789245E-0001 1.1691E-0003

22 1.9199E+0000 9.617403651E-0001 2.3159E-0003

23 2.0071E+0000 8.998798113E-0001 3.3923E-0003

24 2.0944E+0000 8.106768648E-0001 4.3656E-0003

25 2.1817E+0000 6.968419119E-0001 5.2062E-0003

26 2.2689E+0000 5.618337702E-0001 5.8887E-0003

27 2.3562E+0000 4.097545937E-0001 6.3922E-0003

28 2.4435E+0000 2.452252312E-0001 6.7016E-0003

29 2.5307E+0000 7.324482419E-0002 6.8073E-0003

30 2.6180E+0000 -1.009610897E-0001 6.7061E-0003

31 2.7053E+0000 -2.720993521E-0001 6.4012E-0003

32 2.7925E+0000 -4.349700133E-0001 5.9018E-0003

33 2.8798E+0000 -5.846243308E-0001 5.2231E-0003

34 2.9671E+0000 -7.165151338E-0001 4.3857E-0003

35 3.0543E+0000 -8.266349871E-0001 3.4150E-0003

36 3.1416E+0000 -9.116379545E-0001 2.3405E-0003

PROGRAM 7.2.

Zagadnienie początkowo-brzegowe

dla równania hiperbolicznego.

Metoda niejawna drugiego rzędu.

. . . . . . . . . . . . . . . . . . .

Wartości funkcji u(x,t) dla t = 1.0000E+0000:

j x[j] u[j] błąd

0 0.0000E+0000 -9.141354097E-0001 4.8380E-0003

1 8.7266E-0002 -9.706461719E-0001 2.8999E-0003

2 1.7453E-0001 -9.976643413E-0001 8.7366E-0004

3 2.6180E-0001 -9.943689845E-0001 -1.1791E-0003

4 3.4907E-0001 -9.608602293E-0001 -3.1960E-0003

5 4.3633E-0001 -8.981562223E-0001 -5.1159E-0003

6 5.2360E-0001 -8.081621929E-0001 -6.8803E-0003

7 6.1087E-0001 -6.936125643E-0001 -8.4356E-0003

8 6.9813E-0001 -5.579878689E-0001 -9.7346E-0003

9 7.8540E-0001 -4.054089944E-0001 -1.0737E-0002

10 8.7266E-0001 -2.405119728E-0001 -1.1414E-0002

11 9.5993E-0001 -6.830711663E-0002 -1.1745E-0002

12 1.0472E+0000 1.059732167E-0001 -1.1718E-0002

13 1.1345E+0000 2.770336075E-0001 -1.1335E-0002

14 1.2217E+0000 4.396764724E-0001 -1.0608E-0002

15 1.3090E+0000 5.889599901E-0001 -9.5587E-0003

16 1.3963E+0000 7.203482565E-0001 -8.2188E-0003

17 1.4835E+0000 8.298491057E-0001 -6.6291E-0003

18 1.5708E+0000 9.141354097E-0001 -4.8380E-0003

19 1.6581E+0000 9.706461719E-0001 -2.8999E-0003

20 1.7453E+0000 9.976643413E-0001 -8.7366E-0004

21 1.8326E+0000 9.943689845E-0001 1.1791E-0003

22 1.9199E+0000 9.608602293E-0001 3.1960E-0003

23 2.0071E+0000 8.981562223E-0001 5.1159E-0003

24 2.0944E+0000 8.081621930E-0001 6.8803E-0003

25 2.1817E+0000 6.936125643E-0001 8.4356E-0003

26 2.2689E+0000 5.579878689E-0001 9.7346E-0003

27 2.3562E+0000 4.054089944E-0001 1.0737E-0002

28 2.4435E+0000 2.405119728E-0001 1.1414E-0002

29 2.5307E+0000 6.830711663E-0002 1.1745E-0002

30 2.6180E+0000 -1.059732167E-0001 1.1718E-0002

31 2.7053E+0000 -2.770336075E-0001 1.1335E-0002

32 2.7925E+0000 -4.396764724E-0001 1.0608E-0002

33 2.8798E+0000 -5.889599901E-0001 9.5587E-0003

34 2.9671E+0000 -7.203482565E-0001 8.2188E-0003

35 3.0543E+0000 -8.298491057E-0001 6.6291E-0003

36 3.1416E+0000 -9.141354097E-0001 4.8380E-0003

466 7. Równania różniczkowe cząstkowe

7.4. Równania hiperboliczne 467



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