dr hab. Piotr Fronczak
Metody numeryczne
Wykład nr 10
Równania różniczkowe cząstkowe
Równania różniczkowe cząstkowe (RRC)
• liczba zmiennych 2
, ,
, ,
0 ,
, , , , , , ,
, ,
2 2
2
y x u u
x u u
y u u
x u u
u u u u u u y x F
y x u u
xy xx
y x
yy xy xx y x
• rząd równania: rząd najwyższej pochodnej
0 0
0
3 3
yyy x
y xx
y x
u u
u u
u b u
• charakterystyka: liniowe, quasi-liniowe, nieliniowe
x y xx xy yy
y x
y x
yy xy
xx y x
y x
y x
y x
u u u u u u y x
u u u y x
y x
C B A
F u
E u
D u
C u
B u
A
u u
x u
u u
bu u
u u u y x
u y x
y x
c b a
, , , , , , , :
, , , , :
, :
: : , : , :
0 :
: :
0
0 0
, , , ,
, , , , ,
2
2
Nieliniowe liniowe Quasi
Liniowe ...
...
...
u b
u c
0a x y
Nieliniowe
liniowe Quasi
Liniowe ...
...
...
00 0
, , , ,
, , , , ,
2
2
y x
y x
y x
y x
u u
x u u u
bu u
u u u y x
u y x
y x
c b a
• Skupmy się na RRC co najwyżej drugiego rzędu – najpopularniejsze w fizyce
• Ogólna postać RRC drugiego rzędu
B2-4AC Kategoria Przykład
< 0 eliptyczne Równanie Laplace’a
= 0 paraboliczne Równanie przewodnictwa ciepła
>0 hiperboliczne Równanie falowe
2 2
2
2 0
T x
T
y
k T x
T t
2 2
2
2 2
2 2
1 y
x c
y
t
) , , , , ( )
, ( )
, ( )
,
( 2
2 2
2 2
y y x
u x u u y G
y u x y C
x y u x x B
y u x
A
) , , , ,
( u u u x y G
Cu Bu
Au
xx
xy
yy
x yMotywacja dla takiej klasyfikacji
eliptyczne C
y u ne x
parabolicz C
x u zne
hiperbolic C
y u
x
2 2 2
2 2
2 2
2 2
2
;
; Najprostsze rozwiązania:
Również dla bardziej skomplikowanych równań lokalne własności rozwiązanie zależą od znaku wyrażenia B2-4AC.
x y
hiperbola u C x parabola u C
x y
elipsau C 2 2 2 2 2
; 4
; 2
4
Zagadka: Skategoryzuj równanie Schrodingera.
0
yxx
iCu
u
• Zakładamy hx = hy = h [siatka kwadratowa]
• u(xi,yj) = ui,j
• u(xi+h, yj+h) = ui+1,j+1,
i j
x u
i ju
i ju
i j
y h x
u 1
2 1,2
, 1,,
''
x
i-1x
ix
i+1y
jy
j-1y
j+1u
i,j hxhy
Eliptyczne RRC - dwuwymiarowe zagadnienie brzegowe
2
0
2 2
2
y u x
Równanie Laplace’a
u
1
2
, 12
, , 1
,
''
i j
i j
i jj y
i
u u u
y h x u
4 0
1
2 1 2
, '' ,
''
1 , ,
1 ,
1 , ,
2 1
1 , ,
1 , ,
1 ,
, 2 1
j i j
i j
i j
i j
i
j i j
i j
i j
i j
i j
i
j y x i
j i
u u
u u
h u
u u
u u
u h u
y x u y
x
u
Sumując wyrazy wyznaczamy ui,j: ,
1, , 1 1, , 1
4 1
i j i j i j i jj
i
u u u u
u
1 2 3 4
u = 0
u = 0 u = 0
u = 1
Przykład: siatka 2x2
) 1
0 (
) 0 1 (
) 0
0 (
) 0 0
(
3 2
41 1 4
4 4 1
1 1 3
1 4 4
1 1 2
3 4 2
1 1 1
m m
m
m m
m
m m
m
m m
m
u u
u
u u
u
u u
u
u u
u
Przyjmujemy początkowe przybliżenie u11 u12 u31 u14 0
Korzystamy z metody iteracyjnej Jacobiego (lub Gaussa-Seidla – szybsza zbieżność)
Korzystając z metod dokładnych (np. dekompozycja LU) musimy ułożyć macierz o rozmiarze liniowym n x n.
Wniosek: Musimy wprowadzić indeksowanie równań odpowiadających punktom dwuwymiarowej siatki n x n:
) ,
2
(
2 2
2
y x y f
u x
u
Przykład: równanie Poissona
u
i ju
i ju
i ju
i ju
i j f
i jh 1
2
1,
, 1 4
,
1,
, 1
,...,
2, 2 ,
1 n
P P
j
i , ) (
(na przykład wierszami)
i n j
P ( 1 )
u
Pu
P nu
Pu
Pu
P n f
Ph 1
2
1
4
1
0
potencjał
gęstość ładunku
Przykład:
Powierzchnia potencjału przy losowo rozmieszczonej gęstości ładunku
u
Pu
P nu
Pu
Pu
P n f
Ph 1
2
1
4
1
Paraboliczne i hiperboliczne RRC
Bezwymiarowe równanie przewodnictwa ciepła
t
xx
u
u
t t x t u
x u
( , )
) ,
2
(
z warunkiem początkowym (dla t = 0)
L x
x g x
u ( , 0 ) ( ) 0
gdzie L = 1 – szerokość dziedziny rozwiązań.
0 )
( )
, (
0 )
( )
, 0 (
t t
b t
L u
t t
a t
u
gdzie a(t) i b(t) są funkcjami jedynie czasu, a g(x) zależy jedynie od położenia x.
Warunki brzegowe:
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9 10
Dyskretyzacja przestrzeni rozwiązań
czas (indeks j)
przestrzeń
(indeks i) x
t
t
x
1 0
0 n i
x i x
j t
j t
i
Położenie w węźle i w chwili j: j
Zamieniając pochodne na różnice otrzymujemy
t
t x u t
x u t
t x u t
t x
u
tu
i j i j
( , ) ( , ) ( ,
1) ( , )
z błędem O(t),
2
1
1
, ) 2 ( , ) ( , )
(
x
t x u t
x u t
x
u
xxu
i j i j i j
z błędem O(x2).
2
1 1
1
2 x
u u
u u
t u u u
j i j
i j
xx i
j i j
t i
Dalej upraszczając
Zatem zdyskretyzowane równanie ma postać
2
1 1
1
2
x
u u
u t
u
u
ij ij ij ij ij
Definiując r = t / x2, otrzymujemy schemat jawny Eulera:
j i j
i j
i j
i
ru r u ru
u
1
1 ( 1 2 )
1- punkt uwzględniany przy obliczaniu różnicy czasowej
- punkt uwzględniany przy obliczaniu różnicy przestrzennej
// mamy n+1 węzłów przestrzennych siatki // warunek brzegowy
u[0] = u[n] = 0.0;
// warunek początkowy for (int i=1; i<n; i++) {
x = i*dx;
u[i] = func(x);
};
// pętla czasowa
for (int t=1; t<=tsteps; t++) for (int i=1; i<n; i++)
unew[i] = r*u[i-1] + (1-2*r)*u[i] + r*u[i+1];
u unew;
Algorytm schematu jawnego
Problem: warunek stabilności schematu
2 1
2
x
t
Czyli jeśli podzielimy domenę [0,1] na sto podprzedziałów (x = 0.01), to t ≤ 5·10-5.
j i j
i j
i j
i
ru r u ru
u
1
1 ( 1 2 )
1Analiza stabilności
Rozważmy schemat jawny dla równania ciepła:
1
2
12
1 ( 1 )
1 2
2
n j n
j n
j n
j n
j
u u u
t x u u
x u t
u
Zatem nasz schemat ma postać:
2
12
1 ( 2 )
1 n
j n
j n
j n
j n
j
u u u
x u t
u
Niech
D
będzie dokładnym rozwiązaniem równania (1).Niech
N
będzie numerycznym rozwiązaniem równania (1).Zatem błąd schematu
D
N
Napiszmy równanie stabilności metody numerycznej, które opisze ewolucję błędu w trakcie obliczania kolejnych kroków czasowych.
stabilność nierośnie
ość niestabiln
rośnie
Równanie stabilności będziemy badać za pomocą analizy Fouriera (metoda von Neumanna).
Rozwiązanie numeryczne możemy zapisać jako
N = D + ε
(3)Podstawiając (3) do (1), otrzymujemy
2 1 11 1
1
1
2 2
x
D D
D t
D
D
nj nj nj nj jn nj jn nj jn nj
2
1 1
2
1 1
1
1
2 2
x x
D D
D t
t D
D
nj nj
nj
nj nj nj nj
nj
nj
njPonieważ z równania (1)
2
1 1
1
2
x
D D
D t
D
D
nj nj nj nj nj ( 4 )
2
2
1 1
1
t x
n j n
j n
j n
j n
j
Zatem
ε (x,t)
x
Rozważmy rozkład błędu w pewnym kroku czasowym.
Błąd
ε(x,t)
można zapisać w postaci szeregu Fouriera:
) :
( , sin
cos
) 5 ( )
( ,
falowa liczba
m m
m x
ik
m
x ik m
k x
k i
x k e
e t b t
x
m
m
Czyli równanie na błąd jest takie same jak równanie na funkcję
u
. x , t b
m( t ) e
ikmx( 6 )
Ponieważ równanie różnicowe na błąd
jest liniowe, zachowanie każdego wyrazu szeregu jest podobne do zachowania całego szeregu. Zatem wystarczy rozważyć wzrost błędu typowego wyrazuCzasową zależność błędu uwzględnimy, przyjmując, że amplituda błędu
b
m jest funkcją czasu. Ponieważ błąd rośnie lub maleje zwykle wykładniczo z czasem, możemy zapisać x , t e
ate
ikmx( 7 )
gdzie
k
m jest rzeczywiste, alea
może być zespolone.
t t
ik x at ik x
at ik
x x 2
at ik x at ik
x x ( 8 )
a
e
me e
mr e e
me e
me e
me
x 2 r tgdzie
Podstawiając (7) do (4), otrzymujemy
Dzieląc (8) obustronnie przez
e
ate
ikmx
t t
ik x at ik x
at ik
x x 2
at ik x at ik
x x ( 8 )
a
e
me e
mr e e
me e
me e
me
2 ( 9 )
1
ik x ik xt
a
r e
me
me
cos 2
e
i e
iKorzystając z zależności
) 1 (cos
2
1
r
e
a totrzymujemy
gdzie
x k
m
2 cos 1
sin
2 2
Korzystając z zależności
sin 2 4
1
2
r e
at
otrzymujemy
n j n
G
j
1
Definiujemy współczynnik wzmocnienia błędu
Oczekujemy, by błąd nie narastał z kroku na krok
1
|
| G
Zatem
, 1
1
n j n j
2 1 sin 4
1
2
r x , t e
ate
ikmx
t a n
j n
j
e
12 1 sin 4
1
2
r2 1 sin 4 1
1
2
r
2 0 1
) 2 ( ) 1
(
r
0 2 0
sin 4 2 1
sin 4 1 ),
1
(
r 2
r 2
r
2 1 2
1 sin 2
sin 2 4 1 1 ),
2
(
r 2
r 2
r
2 1
2
x
t
Warunek zbieżności schematu jawnego (1)n j n
G
j
1
krok czasowy
wykładnik potęgi Przypomnijmy sobie, że współczynnik wzmocnienia błędu
n j n
j
G
1
0 1 1
j n n
j
G
Czyli:
Zwróćmy uwagę, że nasz schemat jawny (4)
nj
n j n
j n
j n
j n
j n
j n
j n
j r
t 1 x 2 1 1 1
1
2 2
n N n n
n N n n
n N n n
G r
r r r r
r r
r
r r
2 1
1 1 2
1 1 2
1
2 1 2
1 2
1 2
1
możemy przedstawić w postaci równania macierzowego
Równanie własne z wartościami własnymi
G
Kolejne przybliżenia x(0), x(1) , x(2) utworzą ciąg wektorów. Jeżeli istnieje granica tego ciągu, wtedy jest ona rozwiązaniem układu równań liniowych.
Ciąg wektorów musi być zatem ciągiem zbieżnym.
Tw. Ciąg określony wzorem (
*
) przy dowolnym wektorze x(0) jest zbieżny wtedy i tylko wtedy, gdy ()<1.() – promień spektralny macierzy = max |i|, i – wartości własne macierzy . Jako rozwiązanie początkowe, obiera się dowolny wektor (np. wektor
zerowy) i oblicza się kolejne iteracje:
Metoda Jacobiego
Przypomnienie z wykładu nr 3
Zatem mamy układ równań iterowanych
n j n
j
G
1
Twierdzenie powyższe mówi nam, że aby nasz schemat nie był rozbieżny, to wszystkie wartości własne
G
muszą leżeć na płaszczyźnie zespolonej (boG
mogą być zespolone) wewnątrz okręgu o promieniu1
.W naszym przypadku wartości
G
były rzeczywiste, więc weźmy ciekawszy przypadek: 0
x u t
u
) , ( t x x f
u t
u
Uwaga: stabilność każdego problemu niehomogenicznego
badamy upraszczając równanie do postaci homogenicznej.
Zastosujmy schemat:
1
0
1
x u u
t u
u
jp jp pj pjróżnica zwykła różnica wsteczna
jpp j p
j p
j
r
1
1
Zastępując
u
0 1 1
j n n
j
G
Pamiętając, że
oraz, że
0j e
ikmxotrzymujemy
p ik x p ik x x
p ik xx
p
e
ikmr G e
mG e
mG e
mG
1
( )
Dzieląc obustronnie przez
G
pe
ikmx e
ik x r re
ik xr re
ir
G 1
m 1 1
m 1
Wniosek: schemat jest niestabilny dla każdego
r.
jp pj p j p
j r
1 1
0 1 1
j n n
j G
x ik
j
e
m
0Życiowy przykład…
n=1000;
dh=1.0/n;
dt=1.0*dh;
for(x=0;x<=n;x++) { X=(double)x/n;
u[x][0]=0.2*exp(-200*(X-0.5)*(X-0.5));
u[x][1]=0.2*exp(-200*(X-0.5-dt)*(X-0.5-dt));
};
Warunki początkowe
for(x=0;x<=n;x++) { L=x-1;
P=x+1;
if(x==0) L=n;
if(x==n) P=0;
u[x][2]=(u[P][1]-2*u[x][1]+u[L][1])*dt*dt/dh/dh+2*u[x][1]-u[x][0];
};
for(x=0;x<=n;x++) { u[x][0]=u[x][1];
u[x][1]=u[x][2];
};
Warunki brzegowe (periodyczne) Jeden krok czasowy:
𝜕2𝑢
𝜕𝑡2 = 𝜕2𝑢
𝜕𝑥2 2
1 1
2
1
1
2 2
x
u u
u t
u u
u
it it it it it it
0.2 0.4 0.6 0.8 1.0 0.05
0.10 0.15 0.20
Można obliczyć warunek stabilności dla podanego schematu, ale nie jest prosto…
1 2 sin ( ) 1 0
2
2 2 22
r G
G
Czyli mamy równanie kwadratowe.
Schemat niejawny Eulera
- punkt uwzględniany przy obliczaniu różnicy czasowej
- punkt uwzględniany przy obliczaniu różnicy przestrzennej
Schemat jawny Schemat niejawny
Wróćmy do równania ciepła
2
1 1
1
2
x
u u
u t
u
u
ij ij ij ij ij
Było:
2
1 1 1
1 1
1
2
x
u u
u t
u
u
ij ij ij ij ij
Teraz:
j i j
i j
i j
i
r u ru u
ru
11( 1 2 )
1 11
1 1
3 2
1 0 1
1 1 1 3
1 2
1 1
2 1 2
1 2
1 2
1
j n j
n
j j
j j
j n j j j
ru u
u u
ru u
u u u u
r r
r r
r r
r r
r
r r
2
1 1 1
1 1
1
2
x
u u
u t
u
u
ij ij ij ij ij
Zatem mamy układ równań z macierzą trójdiagonalną.
który musimy rozwiązać w każdym kroku czasowym.
Stabilność schematu niejawnego
Postępując analogicznie do poprzednich przypadków przyjmujemy po paru przekształceniach
) (
sin 4
1
1
2 2 km x
G r
co daje ograniczenie na
G
:4 1 1
1
G
r
co jest spełnione dla dowolnego
r
(oczywiście większego od zera).Zatem schemat niejawny jest zawsze stabilny.
Schemat Cranka-Nicholsona
2
1 1 1
1 1 2
1 1
1
2
) 1
2 (
x
u u
u x
u u
u t
u
u
ij ij ij ij ij ij ij ij
Możemy wyobrazić sobie bardziej ogólny schemat:
gdzie 0 ≤ ≤ 1.
Przyjmijmy = ½.
Pierwsza pochodna czasowa jako różnica centralna w tl+1/2
t u u
t
u
il il
1Druga pochodna przestrzenna jako różnica centralna ważona
2
1 1 1
1 1
2 1
1 2
2
) (
2 )
( 2 2
1
x
u u
u x
u u
u x
u
il il il il il ill i l
i l
i l
i l
i l
i
r u ru ru r u ru
ru
11 2 ( 1 )
1
11
1 2 ( 1 )
1
Po paru przekształceniach
A zatem znowu mamy układ równań z macierzą trójdiagonalną.
Porównanie schematów:
Można pokazać, że układ jest zawsze stabilny.
) 2 / ( sin 2 1
) 2 / ( sin 2 1
2 2
G 2
3
2 2
1 0.5 0.5 1
Przewaga nad schematem niejawnym – błąd O(t2) zamiast O(t).
𝑥 𝑡 = 𝑥0 + 𝜀(𝑡)
𝜕2𝑥
𝜕𝑡2 = 𝐹 𝑥 = −𝜕𝑉
𝜕𝑥
𝑉 𝑥 = 𝑉 𝑥0 + 𝜕𝑉
𝜕𝑥 𝑥0𝜀 + 1 2
𝜕2𝑉
𝜕𝑥2 𝑥0𝜀2
𝜕2𝜀
𝜕𝑡2 = −𝐶𝜀 𝜀~𝑒𝐶′𝑡
x0 x V