Stabilność von Neumanna
W analizie numerycznej , stabilność von Neumann analizy jest sposób weryfikacji liczbową stabilności programów za pomocą metody różnic skończonych dla częściowych różniczkowych równań . Analiza ta opiera się na rozkładzie szeregowego błędu numerycznego Fouriera i została opracowana w Los Alamos National Laboratory po krótkim opisie w artykule Cranka i Nicolsona. Metoda została później omówiona bardziej rygorystycznie w artykule, którego współautorem jest von Neumann .
Stabilność numeryczna
Stabilność diagramu cyfrowego jest ściśle związana z błędem cyfrowym. Mówi się, że schemat różnic skończonych jest stabilny, jeśli błędy popełnione w kroku czasowym nie zwiększają błędów w iteracjach. Jeśli błędy zmniejszają się i ostatecznie zanikają, mówi się, że schemat cyfrowy jest stabilny. Jeśli, wręcz przeciwnie, błąd rośnie z każdą iteracją, o diagramie mówi się, że jest niestabilny. Stabilność wzoru można określić za pomocą analizy von Neumanna. W przypadku problemów zależnych od czasu stabilność zapewnia, że metoda numeryczna daje ograniczone rozwiązanie, gdy rozwiązanie dokładnego równania różniczkowego jest ograniczone. Stabilność diagramu może być trudna, zwłaszcza gdy rozważane równanie jest nieliniowe .
W niektórych przypadkach stabilność von Neumanna jest wystarczająca i konieczna dla stabilności w sensie Lax-Richtmyera (stosowanym w twierdzeniu Laxa ): PDE i schemat różnic skończonych są liniowe; EDP ma stałe współczynniki z okresowymi warunkami brzegowymi i zależy od dwóch niezależnych zmiennych; a schemat wykorzystuje nie więcej niż dwa poziomy czasowe. Stabilność von Neumanna jest potrzebna w znacznie szerszej gamie przypadków. Względna prostota tej metody oznacza, że jest ona często stosowana zamiast bardziej szczegółowej analizy stabilności, aby dać dobre wyobrażenie o ograniczeniach wielkości stopni.
Ilustracja metody
Metoda von Neumanna opiera się na rozkładzie błędu na szereg Fouriera . Aby zilustrować tę procedurę, rozważ jednowymiarowe
równanie ciepła
∂u∂t=α∂2u∂x2{\ Displaystyle {\ Frac {\ częściowe u} {\ częściowe t}} = \ alfa {\ Frac {\ częściowe ^ {2} u} {\ częściowe x ^ {2}}}}zdefiniowane na , które w tym przypadku można dyskretyzować w następujący sposób
L{\ displaystyle L}
(1)ujotnie+1=ujotnie+r(ujot+1nie-2ujotnie+ujot-1nie){\ Displaystyle \ quad (1) \ qquad u_ {j} ^ {n + 1} = u_ {j} ^ {n} + r \ lewo (u_ {j + 1} ^ {n} -2u_ {j} ^ {n} + u_ {j-1} ^ {n} \ right)}lub
r=αΔtΔx2{\ Displaystyle r = {\ Frac {\ alpha \, \ Delta t} {\ Delta x ^ {2}}}}a rozwiązanie dyskretnego równania aproksymuje analityczne rozwiązanie PDE w punktach siatki.
ujotnie{\ Displaystyle u_ {j} ^ {n}}u(x,t){\ Displaystyle u (x, t)}
Zdefiniuj błąd zaokrąglenia według
ϵjotnie{\ Displaystyle \ epsilon _ {j} ^ {n}}
ϵjotnie=NIEjotnie-ujotnie{\ Displaystyle \ epsilon _ {j} ^ {n} = N_ {j} ^ {n} -u_ {j} ^ {n}}gdzie jest rozwiązaniem dyskretyzowanego równania (1), które byłoby zrealizowane przy braku błędów zaokrągleń, a jest rozwiązaniem numerycznym otrzymanym przy skończonej dokładności arytmetycznej . Ponieważ dokładne rozwiązanie musi weryfikować dyskretyzowane rozwiązanie, błąd musi również weryfikować dyskretyzowane równanie. Więc
ujotnie{\ Displaystyle u_ {j} ^ {n}}NIEjotnie{\ Displaystyle N_ {j} ^ {n}}ujotnie{\ Displaystyle u_ {j} ^ {n}}ϵjotnie{\ Displaystyle \ epsilon _ {j} ^ {n}}
(2)ϵjotnie+1=ϵjotnie+r(ϵjot+1nie-2ϵjotnie+ϵjot-1nie){\ Displaystyle \ quad (2) \ qquad \ epsilon _ {j} ^ {n + 1} = \ epsilon _ {j} ^ {n} + r \ lewo (\ epsilon _ {j + 1} ^ {n} -2 \ epsilon _ {j} ^ {n} + \ epsilon _ {j-1} ^ {n} \ right)}jest relacją powtarzania błędu. Równania (1) i (2) pokazują, że błąd i rozwiązanie numeryczne zachowują się tak samo jak funkcja czasu. Dla liniowych równań różniczkowych z okresowymi warunkami brzegowymi, przestrzenna zmienność błędu może być rozłożona na skończony szereg Fouriera w przedziale , przez
L{\ displaystyle L}
(3)ϵ(x)=∑m=1MWmmijakmx{\ Displaystyle \ quad (3) \ qquad \ epsilon (x) = \ suma _ {m = 1} ^ {M} A_ {m} e ^ {ik_ {m} x}}gdzie numer fali z i . Uwzględniono zależność błędu od czasu przy założeniu, że wielkość błędu jest funkcją czasu. Wiedząc, że błąd ma tendencję do zwiększania się lub zmniejszania wykładniczo w czasie, rozsądne jest założenie, że amplituda zmienia się wykładniczo w czasie; Skąd
km=πmL{\ displaystyle k_ {m} = {\ frac {\ pi m} {l}}}m=1,2,...,M{\ Displaystyle m = 1,2, \ ldots, M}M=L/Δx{\ Displaystyle M = L / \ Delta x}Wm{\ displaystyle A_ {m.}}
(4)ϵ(x,t)=∑m=1Mmiwtmijakmx{\ Displaystyle \ quad (4) \ qquad \ epsilon (x, t) = \ suma _ {m = 1} ^ {M} e ^ {at} e ^ {ik_ {m} x}}gdzie jest stała.
w{\ displaystyle a}
Ponieważ równanie różnic błędu jest liniowe, wystarczy wziąć pod uwagę wzrost błędu dla wybranego składnika:
(5)ϵm(x,t)=miwtmijakmx{\ Displaystyle \ quad (5) \ qquad \ epsilon _ {m.} (x, t) = e ^ {at} e ^ {ik_ {m} x}}Charakterystykę stabilności można badać za pomocą tej formy błędu, bez utraty ogólności. Aby znaleźć wariację błędu w funkcji czasu, podstawiamy równanie (5) w równaniu (2), po zauważeniu, że
- ϵjotnie=miwtmijakmxϵjotnie+1=miw(t+Δt)mijakmxϵjot+1nie=miwtmijakm(x+Δx)ϵjot-1nie=miwtmijakm(x-Δx),{\ Displaystyle {\ rozpocząć {wyrównane} \ epsilon _ {j} ^ {n} & = e ^ {at} e ^ {ik_ {m} x} \\\ epsilon _ {j} ^ {n + 1} & = e ^ {a (t + \ Delta t)} e ^ {ik_ {m} x} \\\ epsilon _ {j + 1} ^ {n} & = e ^ {at} e ^ {ik_ {m} (x + \ Delta x)} \\\ epsilon _ {j-1} ^ {n} & = e ^ {at} e ^ {ik_ {m} (x- \ Delta x)}, \ end {aligned} }}
dotrzeć do (po uproszczeniu)
(6)miwΔt=1+αΔtΔx2(mijakmΔx+mi-jakmΔx-2).{\ Displaystyle \ quad (6) \ qquad e ^ {a \ delta t} = 1 + {\ frac {\ alfa \ delta t} {\ delta x ^ {2}}} \ lewo (e ^ {ik_ {m } \ Delta x} + e ^ {- ik_ {m} \ Delta x} -2 \ right).}Używając następujących tożsamości
sałata(kmΔx)=mijakmΔx+mi-jakmΔx2igrzech2kmΔx2=1-sałata(kmΔx)2{\ Displaystyle \ qquad \ cos (k_ {m.} \ Delta x) = {\ Frac {e ^ {ik_ {m} \ Delta x} + e ^ {- ik_ {m} \ Delta x}} {2}} \ qquad {\ text {et}} \ qquad \ sin ^ {2} {\ frac {k_ {m} \ Delta x} {2}} = {\ frac {1- \ cos (k_ {m} \ Delta x )} {2}}}możemy przepisać (6) jako
(7)miwΔt=1-4αΔtΔx2grzech2(kmΔx/2){\ Displaystyle \ quad (7) \ qquad e ^ {a \ delta t} = 1 - {\ frac {4 \ alfa \ delta t} {\ delta x ^ {2}}} \ sin ^ {2} (k_ {m} \ Delta x / 2)}Zdefiniuj współczynnik amplitudy
sol≡ϵjotnie+1ϵjotnie{\ Displaystyle G \ equiv {\ Frac {\ epsilon _ {j} ^ {n + 1}} {\ epsilon _ {j} ^ {n}}}}Warunkiem koniecznym i wystarczającym, aby błąd pozostał ograniczony, jest
jednak
|sol|≤1.{\ Displaystyle \ zielony G \ zielony \ równoważnik 1.}
(8)sol=miw(t+Δt)mijakmxmiwtmijakmx=miwΔt{\ Displaystyle \ quad (8) \ qquad G = {\ Frac {e ^ {a (t + \ Delta t)} e ^ {ik_ {m} x}} {e ^ {at} e ^ {ik_ {m } x}}} = e ^ {a \ Delta t}}Zatem z równań (7) i (8) wnioskujemy, że warunek stabilności jest dany przez
(9)|1-4αΔtΔx2grzech2(kmΔx/2)|≤1{\ Displaystyle \ quad (9) \ qquad \ lewo \ vert 1 - {\ Frac {4 \ alpha \ Delta t} {\ Delta x ^ {2}}} \ sin ^ {2} (k_ {m} \ Delta x / 2) \ right \ vert \ leq 1}Aby powyższy warunek był spełniony dla wszystkiego , mamy
grzech2(kmΔx/2){\ Displaystyle \ sin ^ {2} (k_ {m} \ Delta x / 2)}
(10)αΔtΔx2≤12{\ Displaystyle \ quad (10) \ qquad {\ Frac {\ alpha \ Delta t} {\ Delta x ^ {2}}} \ równoważnik {\ Frac {1} {2}}}Równanie (10) podaje warunek stabilności dla schematu FTCS zastosowanego do jednowymiarowego równania ciepła. Mówi, że dla danego, wartość musi być na tyle mała, aby zweryfikować równanie (10).
Δx{\ displaystyle \ Delta x}Δt{\ displaystyle \ Delta t}
Bibliografia
(en) Ten artykuł jest częściowo lub w całości zaczerpnięty z artykułu w
angielskiej Wikipedii zatytułowanego
„ Analiza stabilności von Neumanna ” ( zobacz listę autorów ) .
-
(w) Eugene Isaacson and Herbert Bishop Keller (w) , Analiza metod numerycznych , Dover ,1994, 576 str. ( ISBN 978-0-486-13798-8 , czytaj online ) , str. 523-530
-
(w) J. Crank i P. Nicolson , " Praktyczna metoda numerycznej oceny rozwiązań częściowych równań różniczkowych typu przewodzenia ciepła " , Proc. Natl. Camb. Phil. Soc. , vol. 43,1947, s. 50-67 ( DOI 10.1007 / BF02127704 )
-
(w) JG Charney , R. Fjørtoft i J. von Neumann , " Numerical Integration of the barotropic Vorticity Equation " , Tellus , tom. 2,1950, s. 237-254 ( DOI 10.1111 / j.2153-3490.1950.tb00336.x )
-
(w) GD Smith , Numeryczne rozwiązanie równań różniczkowych cząstkowych: metody różnic skończonych ,
1985, 3 e ed. , s. 67-68
-
(w) Anderson, JD, Jr. (w) , Computational Fluid Dynamics: The Basics with Applications , McGraw-Hill ,1994
<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">