Stabilitate Von Neumann
În analiza numerică , analiza stabilității von Neumann este o metodă de verificare a stabilității numerice a schemelor utilizând metoda diferenței finite pentru ecuațiile diferențiale parțiale . Această analiză se bazează pe descompunerea erorii numerice seriale Fourier și a fost dezvoltată la Laboratorul Național Los Alamos după ce a fost descrisă pe scurt într-un articol de Crank și Nicolson. Metoda a fost tratată ulterior mai riguros într-un articol coautor de von Neumann .
Stabilitate numerică
Stabilitatea unei diagrame digitale este strâns legată de eroarea digitală. O schemă de diferențe finite se spune că este stabilă dacă erorile făcute într-o etapă de timp nu măresc erorile peste iterații. Dacă erorile scad și în cele din urmă se estompează, se spune că schema digitală este stabilă. Dacă, dimpotrivă, eroarea crește cu fiecare iterație, se spune că diagrama este instabilă. Stabilitatea unui model poate fi determinată utilizând analiza von Neumann. Pentru problemele dependente de timp, stabilitatea asigură că o metodă numerică produce o soluție mărginită atunci când soluția ecuației diferențiale exacte este mărginită. Stabilitatea unei diagrame poate fi dificilă, mai ales atunci când ecuația considerată este neliniară .
În unele cazuri, stabilitatea von Neumann este suficientă și necesară pentru stabilitate în sensul Lax - Richtmyer (așa cum este utilizat în teorema lui Lax ): PDE și schema diferenței finite sunt liniare; EDP are coeficienți constanți cu condiții limită periodice și depinde de două variabile independente; iar schema nu utilizează mai mult de două niveluri de timp. Stabilitatea Von Neumann este necesară într-o varietate mult mai largă de cazuri. Simplitatea relativă a acestei metode înseamnă că este adesea utilizată în locul unei analize mai detaliate a stabilității pentru a oferi o idee bună despre restricțiile privind dimensiunile treptelor.
Ilustrarea metodei
Metoda von Neumann se bazează pe descompunerea erorii în seria Fourier . Pentru a ilustra această procedură, să considerăm un -dimensional
ecuația căldurii
∂tu∂t=α∂2tu∂X2{\ displaystyle {\ frac {\ partial u} {\ partial t}} = \ alpha {\ frac {\ partial ^ {2} u} {\ partial x ^ {2}}}}definit pe , care în acest caz poate fi discretizat după cum urmează
L{\ displaystyle L}
(1)tujnu+1=tujnu+r(tuj+1nu-2tujnu+tuj-1nu){\ displaystyle \ quad (1) \ qquad u_ {j} ^ {n + 1} = u_ {j} ^ {n} + r \ left (u_ {j + 1} ^ {n} -2u_ {j} ^ {n} + u_ {j-1} ^ {n} \ right)}sau
r=αΔtΔX2{\ displaystyle r = {\ frac {\ alpha \, \ Delta t} {\ Delta x ^ {2}}}}iar soluția ecuației discrete aproximează soluția analitică a PDE pe punctele grilei.
tujnu{\ displaystyle u_ {j} ^ {n}}tu(X,t){\ displaystyle u (x, t)}
Definiți eroarea de rotunjire prin
ϵjnu{\ displaystyle \ epsilon _ {j} ^ {n}}
ϵjnu=NUjnu-tujnu{\ displaystyle \ epsilon _ {j} ^ {n} = N_ {j} ^ {n} -u_ {j} ^ {n}}unde este soluția ecuației discretizate (1) care ar fi implementată în absența erorilor de rotunjire și este soluția numerică obținută prin precizie aritmetică finită . Deoarece soluția exactă trebuie să verifice soluția discretizată, eroarea trebuie să verifice și ecuația discretizată. Asa de
tujnu{\ displaystyle u_ {j} ^ {n}}NUjnu{\ displaystyle N_ {j} ^ {n}}tujnu{\ displaystyle u_ {j} ^ {n}}ϵjnu{\ displaystyle \ epsilon _ {j} ^ {n}}
(2)ϵjnu+1=ϵjnu+r(ϵj+1nu-2ϵjnu+ϵj-1nu){\ displaystyle \ quad (2) \ qquad \ epsilon _ {j} ^ {n + 1} = \ epsilon _ {j} ^ {n} + r \ left (\ epsilon _ {j + 1} ^ {n} -2 \ epsilon _ {j} ^ {n} + \ epsilon _ {j-1} ^ {n} \ right)}este o relație de recurență pentru eroare. Ecuațiile (1) și (2) arată că eroarea și soluția numerică au același comportament ca o funcție a timpului. Pentru ecuațiile diferențiale liniare cu condiții limită periodice, variația spațială a erorii poate fi descompusă într-o serie Fourier finită pe interval , prin
L{\ displaystyle L}
(3)ϵ(X)=∑m=1MLAmeeukmX{\ displaystyle \ quad (3) \ qquad \ epsilon (x) = \ sum _ {m = 1} ^ {M} A_ {m} e ^ {ik_ {m} x}}unde numărul de undă cu și . Dependența de timp a erorii este inclusă presupunând că magnitudinea erorii este o funcție a timpului. Știind că eroarea tinde să crească sau să scadă exponențial cu timpul, este rezonabil să presupunem că amplitudinea variază exponențial cu timpul; de unde
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}LAm{\ displaystyle A_ {m}}
(4)ϵ(X,t)=∑m=1MelateeukmX{\ displaystyle \ quad (4) \ qquad \ epsilon (x, t) = \ sum _ {m = 1} ^ {M} e ^ {at} e ^ {ik_ {m} x}}unde este o constantă.
la{\ displaystyle a}
Deoarece ecuația diferențelor erorii este liniară, este suficient să se ia în considerare creșterea erorii pentru un termen ales:
(5)ϵm(X,t)=elateeukmX{\ displaystyle \ quad (5) \ qquad \ epsilon _ {m} (x, t) = e ^ {at} e ^ {ik_ {m} x}}Caracteristicile de stabilitate pot fi studiate folosind această formă a erorii, fără pierderea generalității. Pentru a găsi variația erorii în funcție de timp, înlocuim ecuația (5) în ecuația (2), după ce am notat că
- ϵjnu=elateeukmXϵjnu+1=ela(t+Δt)eeukmXϵj+1nu=elateeukm(X+ΔX)ϵj-1nu=elateeukm(X-ΔX),{\ displaystyle {\ begin {align} \ 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 {align} }}
a ajunge la (după simplificare)
(6)elaΔt=1+αΔtΔX2(eeukmΔX+e-eukmΔX-2).{\ displaystyle \ quad (6) \ qquad e ^ {a \ Delta t} = 1 + {\ frac {\ alpha \ Delta t} {\ Delta x ^ {2}}} \ left (e ^ {ik_ {m } \ Delta x} + e ^ {- ik_ {m} \ Delta x} -2 \ right).}Folosind următoarele identități
cos(kmΔX)=eeukmΔX+e-eukmΔX2șipăcat2kmΔX2=1-cos(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}}}putem rescrie (6) ca
(7)elaΔt=1-4αΔtΔX2păcat2(kmΔX/2){\ displaystyle \ quad (7) \ qquad e ^ {a \ Delta t} = 1 - {\ frac {4 \ alpha \ Delta t} {\ Delta x ^ {2}}} \ sin ^ {2} (k_ {m} \ Delta x / 2)}Definiți factorul de amplitudine
G≡ϵjnu+1ϵjnu{\ displaystyle G \ equiv {\ frac {\ epsilon _ {j} ^ {n + 1}} {\ epsilon _ {j} ^ {n}}}}Condiția necesară și suficientă pentru ca eroarea să rămână delimitată este
Cu toate acestea,
|G|≤1.{\ displaystyle \ green G \ green \ leq 1.}
(8)G=ela(t+Δt)eeukmXelateeukmX=elaΔ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}}Astfel, din ecuațiile (7) și (8) rezultăm că condiția de stabilitate este dată de
(9)|1-4αΔtΔX2păcat2(kmΔX/2)|≤1{\ displaystyle \ quad (9) \ qquad \ left \ vert 1 - {\ frac {4 \ alpha \ Delta t} {\ Delta x ^ {2}}} \ sin ^ {2} (k_ {m} \ Delta x / 2) \ right \ vert \ leq 1}Pentru ca starea de mai sus să fie adevărată pentru toate , avem
păcat2(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}}} \ leq {\ frac {1} {2}}}Ecuația (10) oferă condiția de stabilitate pentru schema FTCS aplicată ecuației căldurii unidimensionale. Ea spune că pentru o anumită dată, valoarea lui trebuie să fie suficient de mică pentru a verifica ecuația (10).
ΔX{\ displaystyle \ Delta x}Δt{\ displaystyle \ Delta t}
Referințe
(ro) Acest articol este preluat parțial sau în totalitate din articolul din Wikipedia
engleză intitulat
„ Analiza stabilității Von Neumann ” (a se vedea lista autorilor ) .
-
(în) Eugene Isaacson și Herbert Bishop Keller (în) , Analiza metodelor numerice , Dover ,1994, 576 p. ( ISBN 978-0-486-13798-8 , citit online ) , p. 523-530
-
(în) J. Crank și P. Nicolson , " O metodă practică pentru evaluarea numerică a soluțiilor de ecuații diferențiale parțiale ale tipului de conducere a căldurii " , Proc. Camb. Phil. Soc. , vol. 43,1947, p. 50-67 ( DOI 10.1007 / BF02127704 )
-
(în) JG Charney , R. Fjørtoft și J. von Neumann , " Integrare numerică a ecuației barotropice a vorticității " , Tellus , vol. 2,1950, p. 237-254 ( DOI 10.1111 / j.2153-3490.1950.tb00336.x )
-
(în) GD Smith , Soluție numerică a ecuațiilor diferențiale parțiale: metode de diferență finită ,
1985, 3 e ed. , p. 67-68
-
(în) Anderson, JD, Jr. (în) , 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;">