Compte rendu des travaux pratique sous MATLAB
Transcript of 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
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 :
𝑩𝒊 =𝟒𝝅
𝒉[𝟐𝒄𝒐𝒔(𝒙𝒊) − 𝒄𝒐𝒔(𝒙𝒊−𝟏) − 𝒄𝒐𝒔(𝒙𝒊+𝟏)] 𝒂𝒗𝒆𝒄 𝒊 = 𝟏, … , 𝒏