compte rendu des travaux pratique sous matlab
TRANSCRIPT
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
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 :
𝑇𝑛−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)
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)
5)
Err=Err(0.1, 350, 4, 500, 100, 100, 0.5)
On obtient:
Problème 2:
(𝑷) {𝒖"(𝒙) = −𝟒𝝅𝒄𝒐𝒔(𝒙) 𝒔𝒖𝒓 ]𝒂, 𝒃[
𝒖(𝒂) = 𝒖(𝒃) = 𝟎
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 𝒖𝒉 = ∑ 𝒖𝒋
𝒏𝒋=𝟏 𝝓𝒋.
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 𝑩𝒉 :
𝑩𝒊 = ∫ 𝟒𝝅𝒄𝒐𝒔(𝒙)𝝓𝒊 (𝒙)
𝒃
𝒂𝒅𝒙 = 𝟒𝝅 ∫ 𝒄𝒐𝒔(𝒙)
𝒙𝒊+𝟏
𝒙𝒊−𝟏𝝓𝒊
(𝒙) 𝒅𝒙 𝒂𝒗𝒆𝒄 𝒊 = 𝟏, … , 𝒏 .
= 𝟒𝝅 ∫ 𝒄𝒐𝒔(𝒙)𝒙𝒊+𝟏
𝒙𝒊−𝟏(
𝒙−𝒙𝒊−𝟏
𝒉)𝒅𝒙 + ∫ 𝒄𝒐𝒔(𝒙)
𝒙𝒊+𝟏
𝒙𝒊−𝟏(
𝒙𝒊+𝟏−𝒙
𝒉)𝒅𝒙
Par des intégrations par partie on obtient :
𝑩𝒊 =𝟒𝝅
𝒉[𝟐𝒄𝒐𝒔(𝒙𝒊) − 𝒄𝒐𝒔(𝒙𝒊−𝟏) − 𝒄𝒐𝒔(𝒙𝒊+𝟏)] 𝒂𝒗𝒆𝒄 𝒊 = 𝟏, … , 𝒏