Compte rendu des travaux pratique sous MATLAB

8
Université sidi mohamed ben abdellah de fes Faculté des Sciences et Technique fes Compte rendu des travaux pratique sous MATLAB : A.U 2019-2020 Responsable : Pr. Amine Jamali Alaoui Réalisé par : ZILLOU Ismail (D134477124) Analyse numérique des EDP

Transcript of Compte rendu des travaux pratique sous MATLAB

Page 1: Compte rendu des travaux pratique sous MATLAB

Université sidi mohamed ben abdellah de fes

Faculté des Sciences et Technique fes

Compte rendu des travaux pratique sous

MATLAB :

A.U 2019-2020

Responsable : Pr. Amine Jamali Alaoui

Réalisé par :

ZILLOU Ismail (D134477124)

Analyse numérique des

EDP

Page 2: Compte rendu des travaux pratique sous MATLAB

Problème 1 :

(𝑷) {

𝛛𝐓

𝛛𝐭(𝐱, 𝐭) + 𝐚

𝛛 𝑻

𝛛𝐱 (𝐱, 𝐭) = 𝟎

𝐓(𝐱, 𝟎) = 𝐛𝐮(𝟎, 𝐭) = 𝐮(𝐥, 𝐭) = 𝟎

1) La méthode de 𝜽-schéma associée à ce problème : avec 𝜽 ∊ [𝟎, 𝟏]

Les discrétisations des domaines [𝟎, 𝑳] et [𝟎, 𝑝] de l’espace et le temps par des

pas 𝐡 =𝐋

𝐧 et 𝝉 =

𝒑

𝒎 respectivement donnée 𝑥𝑖 = 𝑖ℎ et 𝑡𝑗 = 𝑗𝜏 𝑝𝑜𝑢𝑟 𝑡𝑜𝑢𝑡

𝑖 = 1, … , 𝑛 − 1 et 𝑗 = 0, … , 𝑚 − 1

L’approximation de 𝝏𝑇

𝝏𝒙 et

𝝏𝑇

𝝏𝑡 :

𝝏𝑇

𝝏𝒙(𝑥𝑖, 𝑡𝑗) =

𝑇(𝑥𝑖,𝑡𝑗+1)−𝑇(𝑥𝑖,𝑡𝑗)

𝝏𝑇

𝝏𝑡(𝑥𝑖, 𝑡𝑗) =

𝑇(𝑥𝑖+1,𝑡𝑗)−𝑇(𝑥𝑖−1,𝑡𝑗)

𝜏

schéma associée a (P) :

Avec 𝑇(𝑥𝑖, 𝑡𝑗) note 𝑇𝑖𝑗 alors :

𝑇𝑖

𝑗+1−𝑇𝑖

𝑗

𝜏+ 𝑎(𝟏 − 𝜃)

𝑻𝒊+𝟏𝒋

−𝑻𝒊−1𝒋

ℎ+ 𝑎𝜃

𝑻𝒊+𝟏𝒋+𝟏

−𝑻𝒊−1𝒋+𝟏

ℎ = 𝟎

On multiplié par 𝜏 on trouve :

𝑇𝑖𝑗+1

− 𝑇𝑖𝑗

+ 𝝀(𝟏 − 𝜃)(𝑻𝒊+𝟏𝒋

− 𝑻𝒊−1𝒋

) + 𝝀𝜃(𝑻𝒊+𝟏𝒋+𝟏

− 𝑻𝒊−1𝒋+𝟏

) = 0

Donc :

𝑇𝑖𝑗+1

− 𝝀𝜽𝑻𝒊−1𝒋+𝟏

+ 𝝀𝜽𝑻𝒊+𝟏𝒋+𝟏

= 𝑇𝑖𝑗 + 𝝀(𝟏 − 𝜃)𝑻𝒊−1

𝒋− 𝝀(𝟏 − 𝜃)𝑻𝒊+𝟏

𝒋

Où 𝝀 =𝒂𝜏

ℎ .

D’où le schéma est :

Si 𝑖 = 1 :

𝑇1𝑗+1

− 𝝀𝜽𝑻𝟎𝒋+𝟏

+ 𝝀𝜽𝑻𝟐𝒋+𝟏

= 𝑇1𝑗 + 𝝀(𝟏 − 𝜃)𝑻𝟎

𝒋− 𝝀(𝟏 − 𝜃)𝑻𝟐

𝒋

𝑜𝑟 𝑇0𝑗

= 𝑇𝑛𝑗

= 0 𝑝𝑜𝑢𝑟 𝑗 = 0, … , 𝑚 − 1 :

𝑇1𝑗+1

+ 𝝀𝜽𝑻𝟐𝒋+𝟏

= 𝑇1𝑗

− 𝝀(𝟏 − 𝜃)𝑻𝟐𝒋

Si 𝑖 = 𝑛 − 1 :

Page 3: Compte rendu des travaux pratique sous MATLAB

𝑇𝑛−1𝑗+1

− 𝝀𝜽𝑻𝒏−𝟏𝒋+𝟏

+ 𝝀𝜽𝑻𝒏𝒋+𝟏

= 𝑇𝑛−1𝑗 + 𝝀(𝟏 − 𝜃)𝑻𝒏−𝟐

𝒋− 𝝀(𝟏 − 𝜃)𝑻𝒏

𝒋

𝑜𝑟 𝑇0𝑗

= 𝑇𝑛𝑗

= 0 𝑝𝑜𝑢𝑟 𝑗 = 0, … , 𝑚 − 1 :

𝑇𝑛−1𝑗+1

− 𝝀𝜽𝑻𝒏−𝟏𝒋+𝟏

= 𝑇𝑛−1𝑗 + 𝝀(𝟏 − 𝜃)𝑻𝒏−𝟐

𝒋

On obtient le système matriciel suivant :

𝐴𝑇𝑗+1 = 𝐵𝑇𝑗 𝑎𝑣𝑒𝑐 𝑗 = 0, … , 𝑚 − 1 Où

𝐴 = (

1 λθ

−λθ ⋱ (0)⋱

⋱(0)

⋱ λθ

−λθ 1

) 𝑒𝑡 𝐵 = (

1 −λ(1 − θ)

λ(1 − θ) ⋱ (0)⋱

⋱(0)

⋱ −λ(1 − θ)

λ(1 − θ) 1

)

2)

Programme sur MATLAB :

function T=Temp(a,b,L,p,n,m,teta) h=L/n; to=p/m; x=0:h:L; t=0:to:p; N=length(t); M=length(x); lambda=(to*a)/h; for j=1:M T(j,1)=b; end A=full(gallery('tridiag',M,-

(lambda*teta),1,lambda*teta)); B=full(gallery('tridiag',M,(lambda*(1-

teta)),1,(-lambda*(1-teta)))); for i=2:N T(:,i)=inv(A)*(B*T(:,i-1)); end for i=2:N T(:,i)=inv(A)*(B*T(:,i-1)); end T(:,1)=0; T(:,M)=0; plot(x,T)

Page 4: Compte rendu des travaux pratique sous MATLAB

3) pour afficher la distribution de la température pour un schéma de

Cranck-Nicolson :

T=Temp(0.1, 350, 4, 500, 100, 100, 0.5)

On obtient :

4)

Programme sur MATLAB :

function Er=Err(a,b,L,p,n,m,teta) h=L/n; to=p/m; x=0:h:L; t=0:to:p; N=length(t); M=length(x); T=Temp(a,b,L,p,n,m,teta) for i=1:N for j=1:M Te(i,j)=b*((j*h)-a*(i*to)); Er(i,j)=abs(Te(i,j)-T(i,j)); end end plot(x,Er)

Page 5: Compte rendu des travaux pratique sous MATLAB

5)

Err=Err(0.1, 350, 4, 500, 100, 100, 0.5)

On obtient:

Problème 2:

Page 6: Compte rendu des travaux pratique sous MATLAB

(𝑷) {𝒖"(𝒙) = −𝟒𝝅𝒄𝒐𝒔(𝒙) 𝒔𝒖𝒓 ]𝒂, 𝒃[

𝒖(𝒂) = 𝒖(𝒃) = 𝟎

On cherche la formule variationelle de problème :

Soit 𝒗 ∈ 𝑯𝟎𝟏(𝛀) 𝒖𝒏𝒆 𝒇𝒐𝒏𝒄𝒕𝒊𝒐𝒏 𝒕𝒆𝒔𝒕𝒆 𝒐𝒏 𝒂 :

∫ 𝒖"(𝒙)𝒗(𝒙)𝒅𝒙

𝛀

= ∫ – 𝟒𝝅𝒄𝒐𝒔(𝒙)𝒗(𝒙)

𝛀

𝒅𝒙

On obtient par application de formule de Green (intégration par partie) dans

l’espace 𝑯𝟎𝟏(𝛀)

[𝑢′(𝑥)𝑣(𝑥)]𝑎𝑏 − ∫ 𝑢′(𝑥)𝑣′(𝑥)𝑑𝑥 =

𝑏

𝑎

∫ −4𝜋 cos(𝑥) 𝑣(𝑥)𝑑𝑥 𝑎𝑣𝑒𝑐𝑏

𝑎

𝑣 ∈ 𝐻01(Ω)

Alors le problème faible est :

(𝑃𝑣) {

𝑡𝑟𝑜𝑢𝑣𝑒𝑟 𝑢 ∈ 𝐻01(𝛺) 𝑡𝑒𝑙 𝑞𝑢𝑒

∫ 𝛺

𝑢′(𝑥)𝑣′(𝑥) 𝑑𝑥 = 4𝜋 ∫ 𝛺

cos (𝑥)𝑣(𝑥) 𝑑𝑥 ∀𝑣 ∈ 𝐻01(Ω)

Le problème approché (𝑷𝒉) associé à (𝑷𝒗) :

Après une discrétisation de 𝛀 avec un pas 𝒃−𝒂

𝑵 , les nœuds du maillage sont

alors 𝒙𝒊 = 𝒂 + 𝒊 (𝒃−𝒂

𝑵) = 𝒂 + 𝒊𝒉 𝒊 = 𝟎, … , 𝑵 , On chosaient 𝑽𝒉 un sous

espace de 𝑯𝟎𝟏(𝛀) de dimension égale à n=N-1, et {𝝓𝟏, 𝝓𝟐, … , 𝝓𝒏} une base

de 𝑽𝒉 avec 𝝓𝒊 définie apatrié des polynômes de Lagrange de première degré

puisque on a 𝝓𝒊(𝒙𝒊) = 1 et 𝝓𝒊(𝒙𝒊−𝟏) = 𝝓𝒊(𝒙𝒊+𝟏) = 0 par :

𝝓𝒊(𝒙) = {

𝒙−𝒙𝒊−𝟏

𝒉 𝒔𝒊 𝒙 ∈ [𝒙𝒊−𝟏, 𝒙𝒊]

𝒙𝒊+𝟏−𝒙

𝒉 𝒔𝒊 𝒙 ∈ [𝒙𝒊, 𝒙𝒊+𝟏]

𝟎 𝒔𝒊 𝒏𝒐𝒏

Et 𝒔𝒖𝒑𝒑(𝝓𝒊) = [𝒙𝒊−𝟏, 𝒙𝒊+𝟏] .

Soit 𝒗𝒉, 𝒖𝒉 ∈ 𝑽𝒉 alors 𝒗𝒉 = ∑ 𝒗𝒊𝒏𝒊=𝟏 𝝓𝒊 et 𝒖𝒉 = ∑ 𝒖𝒋

𝒏𝒋=𝟏 𝝓𝒋.

Page 7: Compte rendu des travaux pratique sous MATLAB

Le problème approché de (𝑷𝒉) est :

(𝑷𝒉) {𝒕𝒓𝒐𝒖𝒗𝒆𝒓 𝒖𝒋 ∈ ℝ 𝒋 = 𝟏, … , 𝒏 𝒕𝒆𝒍 𝒒𝒖𝒆

∑ 𝒖𝒋𝒏𝒋=𝟏

∫ 𝝓𝒋′𝝓𝒊

𝜴

𝒅𝒙 = 𝟒𝝅 ∫ 𝒄𝒐𝒔(𝒙)𝝓𝒊

𝜴𝒅𝒙 𝒑𝒐𝒖𝒓 𝒊 = 𝟏, ⋯ , 𝒏

Alors (𝑷𝒉) équivalent à une forme matricielle 𝑨𝒉𝑼𝒉 = 𝑩𝒉 avec

𝑨𝒉 ≔ (∫ (𝝓𝒋′𝝓𝒊

𝜴)(𝒙) 𝒅𝒙)

𝒊,𝒋=𝟏,..,𝒏et 𝑩𝒉 ≔ (𝟒𝝅 ∫ 𝒄𝒐𝒔(𝒙)𝝓𝒊

(𝒙)

𝜴𝒅𝒙)

𝒊=𝟏,..,𝒏

Les éléments de la matrice 𝑨𝒉 :

𝑨𝒊,𝒊 = ∫ 𝝓𝒊′𝟐

(𝒙) 𝒅𝒙 𝒙𝒊+𝟏

𝒙𝒊−𝟏𝒊 = 𝟏, … , 𝒏

𝑨𝒊,𝒊+𝟏 = ∫ 𝝓𝒊′

(𝒙)𝝓𝒊+𝟏′

(𝒙) 𝒅𝒙𝒙𝒊+𝟏

𝒙𝒊 𝒊 = 𝟏, … , 𝒏 − 𝟏

𝑨𝒊,𝒊−𝟏 = ∫ 𝝓𝒊′

(𝒙)𝝓𝒊−𝟏′

(𝒙) 𝒅𝒙𝒙𝒊

𝒙𝒊−𝟏 𝒊 = 𝟐, … , 𝒏

Avec 𝜙𝒊′(𝒙) = {

𝟏

𝒉 𝒔𝒊 𝒙 ∊ [𝒙𝒊−𝟏, 𝒙𝒊]

−𝟏

𝒉 𝒔𝒊 𝒙 ∊ [𝒙𝒊, 𝒙𝒊+𝟏]

𝟎 𝒔𝒊 𝒏𝒐𝒏

Alors :

𝑨𝒊,𝒊 =𝟐

𝒉 𝒊 = 𝟏, … , 𝒏

𝑨𝒊,𝒊+𝟏 =−𝟏

𝒉 𝒊 = 𝟏, … , 𝒏 − 𝟏

𝑨𝒊,𝒊−𝟏 = −𝟏

𝒉 𝒊 = 𝟐, … , 𝒏

La matrice 𝐴ℎ est :

𝐴ℎ =1

ℎ(

2 −1−1 ⋱

(0)⋱

⋱(0)

⋱ −1−1 2

)

Les éléments de 𝑩𝒉 :

𝑩𝒊 = ∫ 𝟒𝝅𝒄𝒐𝒔(𝒙)𝝓𝒊 (𝒙)

𝒃

𝒂𝒅𝒙 = 𝟒𝝅 ∫ 𝒄𝒐𝒔(𝒙)

𝒙𝒊+𝟏

𝒙𝒊−𝟏𝝓𝒊

(𝒙) 𝒅𝒙 𝒂𝒗𝒆𝒄 𝒊 = 𝟏, … , 𝒏 .

Page 8: Compte rendu des travaux pratique sous MATLAB

= 𝟒𝝅 ∫ 𝒄𝒐𝒔(𝒙)𝒙𝒊+𝟏

𝒙𝒊−𝟏(

𝒙−𝒙𝒊−𝟏

𝒉)𝒅𝒙 + ∫ 𝒄𝒐𝒔(𝒙)

𝒙𝒊+𝟏

𝒙𝒊−𝟏(

𝒙𝒊+𝟏−𝒙

𝒉)𝒅𝒙

Par des intégrations par partie on obtient :

𝑩𝒊 =𝟒𝝅

𝒉[𝟐𝒄𝒐𝒔(𝒙𝒊) − 𝒄𝒐𝒔(𝒙𝒊−𝟏) − 𝒄𝒐𝒔(𝒙𝒊+𝟏)] 𝒂𝒗𝒆𝒄 𝒊 = 𝟏, … , 𝒏