Metody numeryczne II - Panoramix

panoramix.ift.uni.wroc.pl

Metody numeryczne II - Panoramix

Metody numeryczne II

Równania różniczkowe czastkowe, ˛ część IV

Janusz Szwabiński

szwabin@ift.uni.wroc.pl

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.1/40


Hiperboliczne równania różniczkowe czastkowe

˛

1. Rozwiązanie analityczne

2. Zagadnienie początkowe zachowujące strumień

3. Dyskretyzacja

4. Dyfuzja i dyspersja

5. Metody drugiego rzędu w czasie

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.2/40


Dobrze postawione zagadnienie hiperboliczne

warunki brzegowe

warunek poczatkowy (dla U i U’)

C

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.3/40


Prototypowe równanie hiperboliczne

Równanie falowe

∂ 2 U

∂t 2

= V2 ∂2 U

∂x 2

gdzie V to prędkość rozchodzenia się fali

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.4/40


Rozwiazanie ˛ analityczne

Szukamy rozwiązania trójwymiarowego równania falowego dla

t > 0

w obszarze

∂ 2 U

∂x + ∂2 U

2 ∂y + ∂2 U

2 ∂z 2

= 1 V 2 ∂ 2 U

∂t 2

Ω = {0 < x < a, 0 < x < b, 0 < z < c}

z warunkiem początkowym

U(x, y, z, 0) = U 0 > 0, (x, y, z) ∈ Ω

∂U

∂t ∣ = 0

t=0

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.5/40


oraz warunkami brzegowymi

U(0, y, z, t) = U(a, y, z, t) = 0, 0 < y < b, 0 < z < c, t > 0

U(x, 0, z, t) = U(x, b, z, t) = 0, 0 < x < a, 0 < z < c, t > 0

U(x, y, 0, t) = U(x, y, c, t) = 0, 0 < x < a, 0 < y < b, t > 0

Poszukujemy rozwiązania w postaci

U kmn (x, y, z, t) = X k (x)Y m (y)Z n (z)T kmn (t)

⇒ X′′ k

+ Y m

′′

+ Z′′ n

= 1 T ′′

X k Y m Z n V 2

kmn

T kmn

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.6/40


U kmn jest rozwiązaniem naszego zagadnienia, jeśli

X ′′

k

X k

= −K 2 k,

Y ′′

m

Y m

= −M 2 m,

Z ′′

n

Z n

= −N 2 n,

T ′′

kmn

T kmn

= −V 2 λ 2 kmn

gdzie

λ 2 kmn = K 2 k + M 2 m + N 2 n

Otrzymujemy

X ′′

k + K 2 kX k = 0 ⇒ X k (x) = A k cos K k x + B k sin K k x

Y ′′

m + M 2 mY m = 0 ⇒ Y m (y) = C m cos M m y + D m sin M m y

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.7/40


Z ′′

n + N 2 nZ n = 0 ⇒ Z n (z) = E n cos N n z + F n sin N n z

T ′′

kmn + λ 2 kmnV 2 T kmn = 0


T kmn (t) = G kmn cos λ kmn Vt + H kmn sin λ kmn Vt

Z warunków brzegowych wynika

A k = 0,

C m = 0,

E n = 0,

K k = kπ a

M m = mπ

b

N n = nπ c

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.8/40


Warunek początkowy dla pochodnej prowadzi do

H kmn = 0

Wprowadzając oznaczenie L kmn = B k D m F n G kmn mamy

U(x, y, z, t) =

∞∑ ∞∑ ∞∑

k=1

przy czym

m=1

n=1

L kmn sin kπx

a

λ kmn = π


k

2

mπy

sin

b

a + m2

2 b 2

sin nπz

c

+

n2

c 2

cos λ kmn Vt

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.9/40


Z warunku początkowego dla funkcji

U 0 =

∞∑

k=1

∞∑

m=1

∞∑

n=1

L kmn sin kπx

a

mπy

sin

b

sin nπz

c

otrzymamy

L kmn = U 0

=

∫ a

0

∫ a ∫ b

0 0

∫ b ∫ c

0 0

∫ c

0

dxdydz sin

kπx

a

dxdydz sin2

kπx

a

64U 0

π 3 (2k − 1)(2m − 1)(2n − 1)

mπy

sin

b

mπy

sin2

b

sin nπz

c

sin 2 nπz

c

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.10/40


Zagadnienia poczatkowe ˛ zachowujace ˛ strumień

Rozważmy jeszcze raz uproszczone równanie falowe

Niech

∂ 2 U

∂t 2

= V2 ∂2 U

∂x 2

r ≡ V ∂U

∂x

s ≡ ∂U

∂t

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.11/40


Równanie falowe można teraz zapisać w postaci dwóch równań

liniowych pierwszego rzędu

∂r

∂t

∂s

∂t

= V ∂s

∂x

= V ∂r

∂x

Wprowadzając oznaczenie ⃗ ψ = (r, s), otrzymamy

∂ψ


∂t = −∂F(ψ) ∂x


F( ψ) ⃗ = ⎝ 0 −V

−V 0


⎠ ⃗ ψ

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.12/40


Dyskretyzacja

Równanie adwekcji

∂U

∂t

= −V

∂U

∂x

Dyskretna reprezentacja poszukiwanej funkcji

U(x, t) → U n j ≡ U(x j , t n )

x j = x 0 + j∆x, j = 0, 1, . . . , J

t n = t 0 + n∆t, n = 0, 1, . . . , N

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.13/40


t f

∆ t

t

0

0 ∆ x

1

x

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.14/40


FTCS

Pochodną po czasie zastępujemy wzorem Eulera

∂U

∂t ∣ = U n+1

j − Uj

n + O(∆t)

j,n

∆t

natomiast pochodną przestrzenną różnicą centralną

∂U

∂x ∣ = U j+1 n − Uj−1

n + O(∆x 2 )

j,n

2∆x

Otrzymujemy

U n+1

j

− U n j

∆t

= −V U n j+1 − U n j−1

2∆x

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.15/40


t, n

x, j

⇒ U n+1

j = U n j − V ∆t

2∆x

(

U

n

j+1 − U n j−1)

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.16/40


Rozważmy pojedynczą składową Fouriera postaci

U n j

= λ n e ikj∆x

Otrzymamy

U n+1

j

= λ(k)U n j , λ(k) = 1 − iV ∆t

∆x

sin k∆x

Współczynnik wzmocnienia dla wszystkich k spełnia warunek

|λ(k)| = 1 +

( V∆t

∆x

) 2

sin 2 k∆x ≥ 1

⇒ schemat jest zawsze niestabilny!

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.17/40


Metoda Laxa

Zastąpmy wartość Uj

n w schemacie FTCS przez jej wartość

średnią

Uj n → 1 (

U

n

2 j+1 + Uj−1)

n

Otrzymamy schemat Laxa

U n+1

j = 1 2

(

U

n

j+1 + U n j−1)

− V

∆t

2∆x

(

U

n

j+1 − U n j−1)

t, n

x, j

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.18/40


Analiza von Neumanna prowadzi do

λ(k) = cos k∆x − i V∆t

∆x

sin k∆x

Warunek stabilności Couranta–Friedrichsa–Lewy’ego

|λ(k)| ≤ 1 ⇒ |V|∆t

∆x ≤ 1

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.19/40


a) stabilna

b) niestabilna

t, n

x, j

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.20/40


Metoda Laxa dla układów równań


∂t


⎝ r s


⎠ = ∂

∂x


⎝ Vs

Vr



Metoda Laxa ma postać

r n+1

j = 1 2

s n+1

j = 1 2

(

r

n

j+1 + rj−1) n V∆t (

+ s

n

2∆x j+1 − sj−1)

n

(

s

n

j+1 + sj−1) n V∆t (

+ r

n

2∆x j+1 − rj−1)

n

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.21/40


Rozważmy składową Fouriera postaci

⎛ ⎞ ⎛

⎝ rn j

⎠ = λ n e ikj∆x

s n j

⎝ r0



s 0

Podstawiając do schematu Laxa i dzieląc przez λ n , otrzymamy


⎞ ⎛ ⎞ ⎛ ⎞

(cos k∆x) − λ

⎝ i V∆t sin k∆x

∆x ⎠ ⎝ r0


sin k∆x (cos k∆x) − λ = ⎝ 0 ⎠

s 0 0

i V∆t

∆x

Rozwiązanie tego równania istnieje, gdy wyznacznik macierzy

równania wynosi zero, tzn.

λ = cos k∆x ± i V∆t

∆x

sin k∆x

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.22/40


Warunek stabilności wymaga, aby

|λ| ≤ 1 ⇒ |V|∆t

∆x ≤ 1

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.23/40


Dyfuzja

Dlaczego metoda Laxa jest stabilna?

Zapiszmy schemat Laxa dla równania adwekcji w postaci

U n+1

j − Uj

n ( U

n

j+1 − U n )

j−1

= −V

+ 1 ( U

n

j+1 − 2Uj n + U n )

j−1

∆t

2∆x 2 ∆t

To nic innego, jak reprezentacja FTCS równania

∂U

∂t

= −V

∂U

∂x + ∆x2

2∆t ∇2 U, ∇ 2 = ∂2

∂x 2

⇒ dodaliśmy dyssypatywny wyraz do równania wyjściowego

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.24/40


Dyspersja

U n+1

j = 1 2

(

U

n

j+1 + U n j−1)

− V

∆t

2∆x

Rozważamy składową Fouriera postaci

(

U

n

j+1 − U n j−1)

U(x, t) = Ûei(ωt−kx)

Związek dyspersyjny równania adwekcji

ω = Vk

Związek dyspersyjny metody Laxa

e iω∆t = cos(k∆x) − V∆t

∆x i sin(k∆x)

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.25/40


Niech

ω = Ω + iΘ

Wówczas

tan(Ω∆t) = V∆t

∆x tan(k∆x)

( ) 2 V∆t

e −2Θ∆t = cos 2 (k∆x) + sin 2 (k∆x)

∆x

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.26/40


W specjalnym przypadku

V∆t

∆x = 1

mamy

Θ = 0

Ω = Vk

⇒ związki dyspersyjne równania różniczkowego i schematu

różnicowego zgodne

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.27/40


Metody drugiego rzędu w ∆t

Do tej pory omawialiśmy metody, które były

• drugiego rzędu w ∆x

• pierwszego rzędu w ∆t

⇒ aby uzyskać zadowalającą dokładność, ∆t dużo mniejsze,

niż wymaga tego warunek stabilności

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.28/40


Metoda punktu środkowego

Najprostszy schemat drugiego rzędu w czasie (ang. staggered

leapfrog)

U n+1

j

− U n−1

j

= − ∆t

∆x

(

F

n

j+1 − F n j−1)

t, n

x, j

⇒ do wyliczenia U n+1 potrzebujemy U n i U n−1

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.29/40


Równanie adwekcji

Schemat ma postać

U n+1

j

− U n−1

j

∂U

∂t

Analiza stabilności prowadzi do

= −V

∂U

∂x

= −V ∆t

∆x

(

U

n

j+1 − U n j−1)

λ 2 − 1 = −2iλ V∆t

∆x

sin k∆x

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.30/40


λ = −i V∆t

∆x sin k∆x ± √

1 −

( V∆t

∆x sin k∆x ) 2

Jeżeli

V∆t ≤ ∆x

czynnik pod pierwiastkiem jest dodatni i

dla wszystkich k

|λ| = 1

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.31/40


Dla bardziej skomplikowanych równań (nieliniowych) metoda

punktu środkowego może być niestabilna. Niestabilność tą

„leczy” się, wprowadzając mały człon dyfuzyjny

α ( Uj+1 n − 2Uj n + Uj−1) n , |α| ≪ 1

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.32/40


Dwustopniowy schemat Laxa–Wendroffa

Określamy wartości pomocnicze U n+1/2 , obliczone metodą Laxa

dla połówkowego kroku czasowego t n+1/2 i połówkowego kroku

siatki x j+1/2

U n+1/2

j+1/2 = 1 2

(

U

n

j+1 + U n j

)


∆t

2∆x

(

F

n

j+1 − F n j

Wyliczamy strumienie w pośrednich punktach przestrzeni i czasu

( )

F n+1/2

j+1/2 = F U n+1/2

j+1/2

Następnie stosujemy metodę punktu środkowego

U n+1

j = U n j − ∆t

∆x

(

F n+1/2

j+1/2

)

− F n+1/2

j−1/2

)

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.33/40


t, n

x, j

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.34/40


Dla równania adwekcji mamy

U n+1

j

= Uj

n

» 1

−α

2

`U

n

j+1 + U n j

´


α

2

`U

n

j+1 − U n j

´


1

2

`U

n

j + U n j−1´

+

α

2

`U

n

j

´–

− Uj−1

n

Analiza von Neumanna daje

α ≡ V∆t

∆x

λ = 1 − iα sin k∆x − α 2 (1 − cos k∆x)

czyli

|λ| 2 = 1 − α 2 (1 − α 2 )(1 − cos k∆x) 2 .

Schemat będzie stabilny, jeśli |λ| 2 ≤ 1, co ponownie prowadzi do

warunku Couranta–Friedrichsa–Lewy’ego

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.35/40


Przykład

Równanie adwekcji

∂U

∂t = −∂U ∂x

z periodycznymi warunkami brzegowymi oraz z warunkiem

początkowym

U 0 (x) = U(x, 0) = e −x2 /(2σ 2) cos kx

Można sprawdzić, że jeśli U(x, 0) = f(x), to rozwiązanie

równania ma postać

U(x, t) = f(x − Vt)

⇒ początkowy kształt funkcji U(x, t) zostaje zachowany w

czasie

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.36/40


Przykład: metoda FTCS

FTCS

U

1

0,5

0

-0,5

-1 -0,5 0

x

0,5 1

U

3

0

n=0

n=20

-3

-1 -0,5 0 0,5 1

x

U

U

2

1

0

-1

-2

-1 -0,5 0 0,5 1

x

8

4

0

-4

n=10

n=40

-8

-1 -0,5 0 0,5 1

x

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.37/40


Przykład: metoda Laxa

Metoda Laxa (dt=0,02)

1

0,5

n=0

1

0,5

n=10

U

0

-0,5

-1 -0,5 0

x

0,5 1

U

0

-0,5

-1 -0,5 0

x

0,5 1

1

0,5

n=20

1

0,5

n=40

U

0

-0,5

-1 -0,5 0

x

0,5 1

U

0

-0,5

-1 -0,5 0

x

0,5 1

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.38/40


Przykład: dyfuzja numeryczna

Metoda Laxa (dt=0,005)

1

0,5

n=0

0,2

n=10

U

0

-0,5

-1 -0,5 0

x

0,5 1

U

0

-0,2

-1 -0,5 0 0,5 1

x

0,06

n=20

0,04

0,02

n=40

U

0

U

0

-0,06

-1 -0,5 0 0,5 1

x

-0,02

-1 -0,5 0 0,5 1

x

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.39/40


Przykład: metoda punktu środkowego

Metoda punktu srodkowego

1

0,5

n=0

1

0,5

n=10

U

0

-0,5

-1 -0,5 0

x

0,5 1

U

0

-0,5

-1 -0,5 0

x

0,5 1

1

0,5

n=20

1

0,5

n=40

U

0

-0,5

-1 -0,5 0

x

0,5 1

U

0

-0,5

-1 -0,5 0

x

0,5 1

Metody numeryczne II (C) 2004 Janusz Szwabiński – p.40/40

More magazines by this user
Similar magazines