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

Compte rendu des travaux pratique sous MATLAB

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

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 :

๐‘ฉ๐’Š =๐Ÿ’๐…

๐’‰[๐Ÿ๐’„๐’๐’”(๐’™๐’Š) โˆ’ ๐’„๐’๐’”(๐’™๐’Šโˆ’๐Ÿ) โˆ’ ๐’„๐’๐’”(๐’™๐’Š+๐Ÿ)] ๐’‚๐’—๐’†๐’„ ๐’Š = ๐Ÿ, โ€ฆ , ๐’