Problema Riemann
În matematică , o problemă Riemann , numită Bernhard Riemann , desemnează o problemă inițială de date compusă dintr-un sistem de ecuații de evoluție hiperbolică și o informație inițială constantă în bucăți având o singură discontinuitate. Problemele lui Riemann oferă soluții explicite la ecuații neliniare complexe, cum ar fi ecuațiile lui Euler , și sunt astfel foarte utile pentru înțelegerea comportamentului general al soluțiilor la astfel de ecuații.
În analiza numerică , problemele Riemann apar în mod natural în aplicarea metodei volumului finit și pentru legile de conservare, și în special în schema Godunov , datorită naturii discrete a rețelei de aproximare. Prin urmare, este utilizat pe scară largă în calculele numerice pentru dinamica fluidelor și magnetohidrodinamica .
Definiție
Considerăm un sistem de legi de conservare (aici pentru a simplifica în dimensiunea unu):
∂∂ttu(t,X)+∂∂Xf(tu(t,X))=0,(t,X)∈R+×R,{\ displaystyle {\ frac {\ partial} {\ partial t}} \ mathbf {u} (t, x) + {\ frac {\ partial} {\ partial x}} \ mathbf {f} (\ mathbf {u } (t, x)) = 0, \ qquad (t, x) \ in \ mathbb {R} _ {+} \ times \ mathbb {R},}unde este necunoscutul și este dat. Adăugăm la acest sistem o condiție inițială:
tu:R+×R→Rm{\ displaystyle \ mathbf {u} \ colon \ mathbb {\ mathbb {R}} _ {+} \ times \ mathbb {R} \ to \ mathbb {R} ^ {m}}f:Rm→Rm{\ displaystyle \ mathbf {f} \ colon \ mathbb {R} ^ {m} \ to \ mathbb {R} ^ {m}}
tu(t=0,X)=g(X),X∈R,{\ displaystyle \ mathbf {u} (t = 0, x) = \ mathbf {g} (x), \ qquad x \ in \ mathbb {R},}unde este dat.
g:R→Rm{\ displaystyle \ mathbf {g} \ colon \ mathbb {R} \ to \ mathbb {R} ^ {m}}
Dacă funcția g este constantă în bucăți, adică există , precum și astfel încât
X0∈R{\ displaystyle x_ {0} \ in \ mathbb {R}}(gG,gD)∈Rm×Rm{\ displaystyle (\ mathbf {g} _ {G}, \ mathbf {g} _ {D}) \ in \ mathbb {R} ^ {m} \ times \ mathbb {R} ^ {m}}
g(X)={gG,X<X0,gD,X>X0,X∈R,{\ displaystyle \ mathbf {g} (x) = {\ begin {cases} \ mathbf {g} _ {G}, & x <x_ {0}, \\\ mathbf {g} _ {D}, & x > x_ {0}, \ end {cases}} \ qquad x \ in \ mathbb {R},}atunci spunem că sistemul de ecuații de mai sus cu g pentru condiția inițială este o problemă Riemann.
Caz de dinamică liniară
Cazul dinamicii liniare este deosebit în sensul că problema poate fi rezolvată direct folosind metoda caracteristică .
De exemplu, pentru o lege de conservare liniară
∂∂ttu(t,X)+vs.∂∂Xtu(t,X)=0,(t,X)∈R+×R,{\ displaystyle {\ frac {\ partial} {\ partial t}} u (t, x) + c {\ frac {\ partial} {\ partial x}} u (t, x) = 0, \ qquad (t , x) \ in \ mathbb {R} _ {+} \ times \ mathbb {R},}unde este necunoscutul scalar și un parametru, atunci soluția este o propagare a stării inițiale la viteza c , fără deformare:
tu:R+×R→R{\ displaystyle u \ colon \ mathbb {\ mathbb {R}} _ {+} \ times \ mathbb {R} \ to \ mathbb {R}}vs.∈R{\ displaystyle c \ in \ mathbb {R}}g(X)=tu(t=0,X){\ displaystyle g (x) = u (t = 0, x)}
tu(t,X)=g(X-vs.t).{\ displaystyle u (t, x) = g (x-ct).}Situația este similară pentru un sistem de legi de conservare liniară hiperbolică
∂∂ttu(t,X)+LA∂∂Xtu(t,X)=0,(t,X)∈R+×R,{\ displaystyle {\ frac {\ partial} {\ partial t}} \ mathbf {u} (t, x) + A {\ frac {\ partial} {\ partial x}} \ mathbf {u} (t, x ) = 0, \ qquad (t, x) \ in \ mathbb {R} _ {+} \ times \ mathbb {R},}unde este necunoscutul și A o matrice diagonalizabilă cu valori proprii reale. Dăm un exemplu simplu care a inspirat dinamica gazelor (în) :
tu:R+×R→Rm{\ displaystyle \ mathbf {\ mathbf {u}} \ colon \ mathbb {\ mathbb {R}} _ {+} \ times \ mathbb {R} \ to \ mathbb {R} ^ {m}}
∂ρ∂t+ρ0∂tu∂X=0,∂tu∂t+la2ρ0∂ρ∂X=0,{\ displaystyle {\ frac {\ partial \ rho} {\ partial t}} + \ rho _ {0} {\ frac {\ partial u} {\ partial x}} = 0, {\ frac {\ partial u} {\ partial t}} + {\ frac {a ^ {2}} {\ rho _ {0}}} {\ frac {\ partial \ rho} {\ partial x}} = 0,}cu o condiție inițială formată din două stări:
[ρtu]=[ρGtuG] dacă X≤0,și[ρtu]=[ρD-tuD] dacă X>0.{\ displaystyle {\ begin {bmatrix} \ rho \\ u \ end {bmatrix}} = {\ begin {bmatrix} \ rho _ {G} \\ u_ {G} \ end {bmatrix}} {\ text {si }} x \ leq 0, \ qquad {\ text {et}} \ qquad {\ begin {bmatrix} \ rho \\ u \ end {bmatrix}} = {\ begin {bmatrix} \ rho _ {D} \\ -u_ {D} \ end {bmatrix}} {\ text {si}} x> 0.}
Sistemul anterior poate fi rescris într-o formă conservatoare cu:
∂ttu+LA∂Xtu=0{\ displaystyle \ partial _ {t} \ mathbf {u} + A \ partial _ {x} \ mathbf {u} = 0}
tu=[ρtu],LA=[0ρ0la2ρ00].{\ displaystyle \ mathbf {u} = {\ begin {bmatrix} \ rho \\ u \ end {bmatrix}}, \ quad A = {\ begin {bmatrix} 0 & \ rho _ {0} \\ {\ frac {a ^ {2}} {\ rho _ {0}}} și 0 \ end {bmatrix}}.}Cele Valorile sistemului sunt sale caracteristici :
. Cele Vectorii proprii sunt
λ1=-la,λ2=la{\ displaystyle \ lambda _ {1} = - a, \ lambda _ {2} = a}
e(1)=[ρ0-la],e(2)=[ρ0la].{\ displaystyle \ mathbf {e} ^ {(1)} = {\ begin {bmatrix} \ rho _ {0} \\ - a \ end {bmatrix}}, \ quad \ mathbf {e} ^ {(2) } = {\ begin {bmatrix} \ rho _ {0} \\ a \ end {bmatrix}}.}Starea stângă se descompune pe baza vectorilor proprii prin
tuG{\ displaystyle \ mathbf {u} _ {G}}
tuG=[ρGtuG]=α1[ρ0-la]+α2[ρ0la],{\ displaystyle \ mathbf {u} _ {G} = {\ begin {bmatrix} \ rho _ {G} \\ u_ {G} \ end {bmatrix}} = \ alpha _ {1} {\ begin {bmatrix} \ rho _ {0} \\ - a \ end {bmatrix}} + \ alpha _ {2} {\ begin {bmatrix} \ rho _ {0} \\ a \ end {bmatrix}},}unde coeficienții și sunt calculați prin identificare:
α1{\ displaystyle \ alpha _ {1}}α2{\ displaystyle \ alpha _ {2}}
α1=laρG-ρ0tuG2laρ0 , α2=laρG+ρ0tuG2laρ0{\ displaystyle \ alpha _ {1} = {\ frac {a \ rho _ {G} - \ rho _ {0} u_ {G}} {2a \ rho _ {0}}} \, \ \ alpha _ { 2} = {\ frac {a \ rho _ {G} + \ rho _ {0} u_ {G}} {2a \ rho _ {0}}}}Starea dreaptă se descompune în mod similar
tuD{\ displaystyle \ mathbf {u} _ {D}}
tuD=[ρDtuD]=β1[ρ0-la]+β2[ρ0la],{\ displaystyle \ mathbf {u} _ {D} = {\ begin {bmatrix} \ rho _ {D} \\ u_ {D} \ end {bmatrix}} = \ beta _ {1} {\ begin {bmatrix} \ rho _ {0} \\ - a \ end {bmatrix}} + \ beta _ {2} {\ begin {bmatrix} \ rho _ {0} \\ a \ end {bmatrix}},}cu coeficienții
β1=laρD-ρ0tuD2laρ0 , β2=laρD+ρ0tuD2laρ0{\ displaystyle \ beta _ {1} = {\ frac {a \ rho _ {D} - \ rho _ {0} u_ {D}} {2a \ rho _ {0}}} \, \ \ beta _ { 2} = {\ frac {a \ rho _ {D} + \ rho _ {0} u_ {D}} {2a \ rho _ {0}}}}Sistemul poate fi astfel rescris ca două ecuații scalare decuplate așa cum au fost tratate anterior, prima cu viteza de propagare c = - a și condiția inițială , iar a doua cu viteza de propagare c = a și condiția inițială .
α1 dacă X≤0, β1 dacă X>0{\ displaystyle \ alpha _ {1} {\ text {si}} x \ leq 0, \ \ beta _ {1} {\ text {si}} x> 0}α2 dacă X≤0, β2 dacă X>0{\ displaystyle \ alpha _ {2} {\ text {si}} x \ leq 0, \ \ beta _ {2} {\ text {si}} x> 0}
Deci obținem soluția finală
tu(t,X)=[ρ(t,X)tu(t,X)]={tuG,0<t≤-laXtu∗,0≤la|X|<ttuD,0<t≤laX{\ displaystyle \ mathbf {u} (t, x) = {\ begin {bmatrix} \ rho (t, x) \\ u (t, x) \ end {bmatrix}} = {\ begin {cases} \ mathbf {u} _ {G}, & 0 <t \ leq -ax \\\ mathbf {u} ^ {*}, & 0 \ leq a | x | <t \\\ mathbf {u} _ {D}, & 0 <t \ leq ax \ end {cases}}}unde soluția din domeniul dintre caracteristici este definită de
tu∗=[ρ∗tu∗]=β1[ρ0-la]+α2[ρ0la].{\ displaystyle \ mathbf {u} ^ {*} = {\ begin {bmatrix} \ rho ^ {*} \\ u ^ {*} \ end {bmatrix}} = \ beta _ {1} {\ begin {bmatrix } \ rho _ {0} \\ - a \ end {bmatrix}} + \ alpha _ {2} {\ begin {bmatrix} \ rho _ {0} \\ a \ end {bmatrix}}.}Acest exemplu face posibilă înțelegerea proprietăților de bază ale problemei Riemann și, în special, a descompunerii soluției în diferite domenii de spațiu-timp determinate de caracteristici.
Exemplu de dinamică neliniară
Considerăm aici că avem de-a face cu o ecuație scalară și nu cu un sistem (aici m = 1 ), care face posibilă asigurarea unei teorii a existenței și unicității soluțiilor slabe neregulate (în special acceptarea discontinuităților): soluții entropice . Prin urmare, luăm în considerare
∂∂ttu(t,X)+∂∂Xf(tu)(t,X)=0,(t,X)∈R+×R,{\ displaystyle {\ frac {\ partial} {\ partial t}} u (t, x) + {\ frac {\ partial} {\ partial x}} f (u) (t, x) = 0, \ qquad (t, x) \ in \ mathbb {R} _ {+} \ times \ mathbb {R},}unde este necunoscutul și este dat. Să presupunem, pentru simplitate, că f este de clasă și uniform convexă , ceea ce garantează monotonia derivatei lui f . De exemplu, corespunde ecuației Burgers fără vâscozitate.
tu:R+×R→R{\ displaystyle u \ colon \ mathbb {R} _ {+} \ times \ mathbb {R} \ to \ mathbb {R}}f:R→R{\ displaystyle f \ colon \ mathbb {R} \ to \ mathbb {R}}
VS2{\ displaystyle {\ mathcal {C}} ^ {2}}f(tu)=tu2/2{\ displaystyle f (u) = u ^ {2} / 2}
Pentru a avea o problemă Riemann, luăm în considerare condiția inițială (aici )
X0=0{\ displaystyle x_ {0} = 0}
tu(t=0,X)={tuG,X<0,tuD,X>0,X∈R,{\ displaystyle u (t = 0, x) = {\ begin {cases} u_ {G}, & x <0, \\ u_ {D}, & x> 0, \ end {cases}} \ qquad x \ în \ mathbb {R},}cu date.
(tuG,tuD)∈R×R{\ displaystyle (u_ {G}, u_ {D}) \ in \ mathbb {R} \ times \ mathbb {R}}
Contrar cazului liniar, metoda caracteristicilor face posibilă definirea într-un singur mod a soluției doar pe o parte din spațiu-timp și rămâne să se determine soluția în cazurile în care caracteristicile sunt legate de cele două valori A condiției inițiale se intersectează sau, dimpotrivă, nu umple tot spațiul-timp.
R+×R{\ displaystyle \ mathbb {R} _ {+} \ times \ mathbb {R}}
- Da , acest lucru corespunde cazului în care caracteristicile se intersectează. Soluția entropică unică este atunci de tip șoc , dată detuD<tuG{\ displaystyle u_ {D} <u_ {G}}
tu(t,X)={tuG,X/t<σ,tuD,X/t>σ,(X,t)∈R+∗×R,{\ displaystyle u (t, x) = {\ begin {cases} u_ {G}, & x / t <\ sigma, \\ u_ {D}, & x / t> \ sigma, \ end {cases}} \ qquad (x, t) \ in \ mathbb {R} _ {+} ^ {*} \ times \ mathbb {R},}
unde
σ este viteza de propagare a șocului dată de relațiile
Rankine-Hugoniot :
σ=f(tuG)-f(tuD)tuG-tuD.{\ displaystyle \ sigma = {\ frac {f (u_ {G}) - f (u_ {D})} {u_ {G} -u_ {D}}}.}
- Da , acest lucru corespunde cazului în care caracteristicile nu umple tot spațiul-timp. Singura soluție entropică este de tipul undei de expansiune , dată detuD>tuG{\ displaystyle u_ {D}> u_ {G}}
tu(t,X)={tuG,X/t<f′(tuG),g(X/t),f′(tuG)<X/t<f′(tuD),tuD,X/t>f′(tuD),(X,t)∈R+∗×R,{\ displaystyle u (t, x) = {\ begin {cases} u_ {G}, & x / t <f ^ {\ prime} (u_ {G}), \\ g (x / t), & f ^ {\ prime} (u_ {G}) <x / t <f ^ {\ prime} (u_ {D}), \\ u_ {D}, și x / t> f ^ {\ prime} (u_ { D}), \ end {cases}} \ qquad (x, t) \ in \ mathbb {R} _ {+} ^ {*} \ times \ mathbb {R},}
unde , reciprocul derivatei lui
f .
g=(f′)-1{\ displaystyle g = (f ^ {\ prime}) ^ {- 1}}
În ambele cazuri, soluția este auto - similară , adică este determinată exclusiv de raport .
X/t∈R{\ displaystyle x / t \ in \ mathbb {R}}
Referințe
- (en) Eleuterio F. Toro , Solutori Riemann și metode numerice pentru dinamica fluidelor , Berlin, Springer Verlag,1999
- (ro) Randall J. LeVeque , Metode cu volum finit pentru probleme hiperbolice , Cambridge, Cambridge University Press ,2004
- (ro) Lawrence C. Evans , Ecuații diferențiale parțiale , Societatea Americană de Matematică,1998
- Jean-François Coulombel, „ Ecuații hiperbolice neliniare ” , pe serverul de curs online CEL
Vezi și tu
<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">