+ All Categories
Home > Documents > Cours Matlab.pptx

Cours Matlab.pptx

Date post: 09-Feb-2016
Category:
Upload: chatry87
View: 110 times
Download: 0 times
Share this document with a friend
Popular Tags:
77
07/09/09 Simulation numérique en MATLAB Pr So Ousséni 1 INITIATION A LA SIMULATION NUMERIQUE EN MATLAB DEA DE MATHEMATIQUES APPLIQUEES ET CALCUL SCIENTIFIQUE Promo 2007-2008 Ouagadougou 12/11/07 SO Ousséni, Docteur en Mathématiques Appliquées, Spécialiste en simulations numériques et biomathématique, Maître de Conférence à l’Université de Ouagadougou.
Transcript
Page 1: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

107/09/09

INITIATION A LA SIMULATION NUMERIQUE EN MATLAB

DEA DE MATHEMATIQUES APPLIQUEES ET CALCUL SCIENTIFIQUE

Promo 2007-2008Ouagadougou 12/11/07

SO Ousséni,Docteur en Mathématiques Appliquées,Spécialiste en simulations numériques et biomathématique,Maître de Conférence à l’Université de Ouagadougou.

Page 2: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

207/09/09

PLAN DU COURS

Introduction1.Gestion des fichiers2.Gestion du workspace3.Vecteurs4.Matrices5.Programmer en MATLAB6.Le graphisme7.Simulation numérique: cas des EDO8.Simulation numérique: cas des EDP

Page 3: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

307/09/09

INTRODUCTION (1/5)

Type d’outil Language de programmation; Environnement de développement.

Société The MathWorks(société américaine)

Domaines: Calcul numérique Education, Recherche, Industrie, Développement de projets.

Page 4: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

407/09/09

Historique MATLAB=Matrix Laboratory;

Conçu par le mathématicien Cleve Moler (Univerisité du Nouveau Mexique) à la fin des années 70 à partir des bibliothèques Fortran, LINPACK et EISPACK;

Jack Little (ingénieur) comprend rapidement les capacités et entreprend avec Steve Bangert, de le recoder en C.

En 1984 Jack Little, Cleve Moller et Steve Bangert créèrent la société The MathWorks afin de commercialiser la version 1.0 de MATLAB .

INTRODUCTION (2/5)

Page 5: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

507/09/09

Capacités

Interactif;

Langage de haut niveau;

Exécution de tâches plus rapide que C, C++ et fortran.

INTRODUCTION (3/5)

Page 6: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

607/09/09

Outils et modules associés Communications Toolbox Control System Toolbox Excel Link MATLAB Compiler Neural Network Toolbox Optimization Toolbox Real-Time Workshop® Robust Control Toolbox SimMechanics Simulink Statistics Toolbox System Identification Toolbox Virtual Reality Toolbox

INTRODUCTION (4/5)

Page 7: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

707/09/09

Alternatives

Fermat; GNU Octave; IDL(langage); JMathLib; LMS Imagine.Lab AMESim; Scilab; Sysquake.

INTRODUCTION (5/5)

Page 8: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

807/09/09

1. GESTION DE FICHIERS

Créer un dossier sur le CDémarrer/poste de travail/C/Fichier/Nouveau/Dossier/ ‘donner un nom’

(votre nom par exemple)

Ou bien

Démarrer/poste de travail/C/Clic droit/Nouveau/Dossier/’donner un nom’

o Créer un sous dossier à l’intérieur du dossier créé

Page 9: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

907/09/09

2. GESTION DU WORKSPACE (1/8)

Démarrer MATLAB Double cliquer sur l’icone de démarrage

Raccourci vers matlab.lnk

Page 10: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

1007/09/09

Variables scalaires

>>a=2 (entrer)

Donne la valeur 2 à la variable a et affiche le résultat

a=2

2. GESTION DU WORKSPACE (2/8)

Page 11: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

1107/09/09

>>b=3; (entrer)Donne la valeur 3 à la variable b et garde le résultat en

mémoire

2. GESTION DU WORKSPACE (3/8)

Page 12: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

1207/09/09

2. GESTION DU WORKSPACE (4/8)

>>b (entrer)

Permet d’afficher la valeur de la variable b.

Page 13: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

1307/09/09

2. GESTION DU WORKSPACE (5/8)

>>b=a (entrer)

Change la valeur de la variable b en lui assignant la valeur de la variable a.

Page 14: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

1407/09/09

Opérations élémentaires>>1+9 (entrer)ans=10>>6/2 (entrer)ans=3>>2\6 (entrer)ans=3>>1/3ans=0.3333>>format long

ans= 0.33333333333333>>format short>>2^5ans=32

2. GESTION DU WORKSPACE (6/8)

Page 15: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

1507/09/09

Variables spéciales >>pi (enter)ans=3.1416

>> realminans = 2.2251e-308

>> realmaxans =1.7977e+308

>> epsans =2.2204e-016

2. GESTION DU WORKSPACE (7/8)

Page 16: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

1607/09/09

o Fonctions mathématiques>>sin(pi/2)ans=1

cos, tan, sinh, cosh, tanh, exp, log, sqrt, …

2. GESTION DU WORKSPACE (8/8)

Page 17: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

1707/09/09

3. LES VECTEURS (1/5)

Création d’un vecteur Par énumération>>v=[1 2 5 4]v = 1 2 5 4Ou bien>>v=[1,2,5,4]w=[1;2;5;4]w = 1 2 5 4Ou bien>>w=v’

Page 18: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

1807/09/09

Par description>>x=[0:pi/11:pi]X= Columns 1 through 7

0 0.2856 0.5712 0.8568 1.1424 1.4280 1.7136

Columns 8 through 12

1.9992 2.2848 2.5704 2.8560 3.1416

>>y=linspace(0,pi,12)y = Columns 1 through 7 0 0.2856 0.5712 0.8568 1.1424 1.4280 1.7136 Columns 8 through 12 1.9992 2.2848 2.5704 2.8560 3.1416

>>z=linspace(0,pi)Donne 100 éléments par défaut

3. LES VECTEURS (2/5)

Page 19: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

1907/09/09

o Indexage et adressage>>v(3)ans = 5>>v(2:1:4)ans=2 5 4Ou >>v(2:4)>>v([4 3 2 3])ans = 4 5 2 5>>v([2 3])=[0 10]v = 1 0 10 4

3. LES VECTEURS (3/5)

Page 20: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

2007/09/09

o Opérations scalaires>>a=2*va = 2 4 10 8>>b=a-5b =-3 -1 5 3>>c=a.^2c = 4 16 100 64>>d=a*a’d=184 Combinaison de vecteurs>>K=[a b]K =2 4 10 8 -3 -1 5 3>>L=[k([3 7 4]) k(5:-1:1)]L =10 5 8 -3 8 10 4 2

3. LES VECTEURS (4/5)

Page 21: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

2107/09/09

o Utilisation des symboles [ ] énumération d’éléments : description d’éléments ( ) ensemble d’arguments , séparateur d’arguments ; séparateur de lignes non affichage du résultat de l’exécution d’une

instruction . force l’opération à s’appliquer sur chaque éléments

3. LES VECTEURS (5/5)

Page 22: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

2207/09/09

4. LES MATRICES (1/8) CréationUne matrice est un ensemble de lignes comportant toutes le même

nombre de colonnes.Créer les matricesM1 = M2= 1 2 3 1 2 3 4 5 6 11 13 15 7 8 9

>>M1=[1 2 3;4 5 6;7 8 9] ou M1=[1:3;4:6;7:9]

>>M2=[1 2 3;11 13 15] ou M2=[1:1:3;11:2:15]

Page 23: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

2307/09/09

Opérations scalaires>>M3=10*M1M3 = 10 20 30 40 50 60 70 80 90>>M4=M1/2M4 = 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000

4. LES MATRICES (2/8)

Page 24: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

2407/09/09

>>M5=M1^2M5 = 30 36 42 66 81 96 102 126 150>>M6=M1.^2M6 = 1 4 9 16 25 36 49 64 81

4. LES MATRICES (3/8)

Page 25: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

2507/09/09

Opérations entre matrices>>N1=M2*M1N1 = 30 36 42 168 207 246

(2,3)(3,3)=(2,3)

N2=M1*M2(3,3)(2,3) impossible

4. LES MATRICES (4/8)

Page 26: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

2607/09/09

>>P=[4 8 6;7 9 4; 7 2 1]>>N3=M2/PN3 = 0.8525 -0.5902 0.2459 3.6967 -2.2131 1.6721>>N4=M2*inv(P)N4 = 0.8525 -0.5902 0.2459 3.6967 -2.2131 1.6721

4. LES MATRICES (5/8)

Page 27: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

2707/09/09

Matrices particulières Matrice identité>>eye(4)ans = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 Matrice nulle>>zeros(2,3)ans = 0 0 0 0 0 0

4. LES MATRICES (6/8)

Page 28: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

2807/09/09

1 partout

>>ones(2,3)ans = 1 1 1 1 1 1 Matrice diagonale>>diag([4 5 3])ans = 4 0 0 0 5 0 0 0 3

4. LES MATRICES (7/8)

Page 29: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

2907/09/09

Indexage>>M1M1 = 1 2 3 4 5 6 7 8 9>>M1(3,2)ans =8>>M1(:,2)ans = 2 5 8>>M1(1,:)ans = 1 2 3

4. LES MATRICES (8/8)

Page 30: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

3007/09/09

EXERCICE D’APPLICATION 1

On considère la matrice M1 précédente Renommer cette matrice A. Mettre à 0 l’élément de la 2e ligne 3e colonne. Mettre à 4 tous les éléments de la 1e ligne. Mettre à 5 tous les éléments de la 2e colonne. Appeler cette matrice B. Créer la matrice C en accolant à droite de A la matrice B. Créer la matrice D en extrayant les 2 premières lignes et

les 2 dernières colonnes de A. Créer la matrice diagonale E dont la diagonale principale

est égale à la diagonale principale de A.NB: Faire toutes ces opérations sans boucle.

Page 31: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

3107/09/09

CORRECTION

>>A=M1;

>>B=A, B(2,3)=0, B(1,:)=4, B(:,2)=5

>>C=[A B]

>>D=[A(1:2,:) A(:,2:3)’]

>>E=diag(diag(A))

Page 32: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

3207/09/09

5. PROGRAMMER EN MATLAB

Opérations logiques >, < , >= , <= , == , ~= , & o Contrôle d’exécution for expression end>>for n=1:5 for m=1:5 A(n,m)=n^2+m^2; end end

Page 33: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

3307/09/09

>>A =

2 5 10 17 26

5 8 13 20 29

10 13 18 25 34

17 20 25 32 41

26 29 34 41 50

5. PROGRAMMER EN MATLAB

Page 34: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

3407/09/09

while expression commande end if expression commande 1 (si expression vrai) else commande 2 (si expression n’est pas vrai) end

5. PROGRAMMER EN MATLAB

Page 35: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

3507/09/09

M-files ou scripts Définition:

Un script (ou M-file) est un fichier extension .m contenant des instructions MATLAB

Créer un M-file>>edit ou Barre d’outils /New M-file

5. PROGRAMMER EN MATLAB

Page 36: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

3607/09/09

% message.m affiche un message

beau_temps=1;

if beau_temps ~= 0

disp ('Hello, il fait beau')

end

Pour enrégistrer

save/ (chemin d’accès) nom: message

5. PROGRAMMER EN MATLAB

Page 37: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

3707/09/09

Exécuter un M-file>>cd C:/ nom dossier/ nom sous dossier

>>message

Hello, il faut beau

5. PROGRAMMER EN MATLAB

Page 38: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

3807/09/09

Fonctionsfunction y=temps(x)

% temps affiche un message suivant le temps qu’il fait

% et retourne l’opposé de la valeur de x

if length(x)>1 error (‘x doit être scalaire’); end

if x~=0

disp (‘espérons que demain sera meilleur!’)

end

y=-x;

5. PROGRAMMER EN MATLAB

Page 39: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

3907/09/09

EXERCICE D’APPLICATION 2

Écrire une fonction qui retourne l’indexe du plus grand élément d’un vecteur A donné comme argument d’entrée.

Page 40: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

4007/09/09

CORRECTION

function imax=indexmax(A)%donne l’index du max de AMax=A(1); imax=1;for i=1:length(A) if A(i)>Max Max=A(i); imax=i; endend

Page 41: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

4107/09/09

6. LE GRAPHISME

En 2D: plot

>>x=linspace(0,2*pi,30); y=sin(x);

>>plot(x,y)

>>plot(x,cos(x))

>>hold on

>>plot(x,sin(x))

>>hold off

>>clf

>>plot(x,sin(x),x,cos(x))

>>legend(‘courbe de sinus’,’courbe de cosinus’)

>>title(‘Courbes de fonctions circulaires’)

>>xlabel('abscisse'), ylabel('ordonnée')

>>plot(x,sin(x),'r+',x,cos(x),'b<:')

>>help plot

Page 42: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

4207/09/09

En 3D Plot3 (courbes paramétrés)

>>t=linspace(0,10*pi); plot3(sin(t),cos(t),t) Mesh (Courbe de fonctions de 2 variables)

>>x=0:.1:10; y=-10:.1:10; [X,Y]=meshgrid(x,y); Z=cos(X+Y);…

Mesh(X,Y,Z)

6. LE GRAPHISME

Page 43: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

4307/09/09

>>x=[1 2 3], y=[4 5 6], [X,Y]=meshgrid(x,y)

X =

1 2 3

1 2 3

1 2 3

Y =

4 4 4

5 5 5

6 6 6

(X,Y)={(1,4),(2,4),(3,4),(1,5),…,(3,6)}

6. LE GRAPHISME

Page 44: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

4407/09/09

EXERCICE D’APPLICATION 3Des mesures expérimentales ont donné les résultats suivants:

Le but de cet exercice est d’interpoler ces points c’est à dire tracer une courbe qui passe le plus près possible de l’ensemble des points d’abscisse le temps et d’ordonnée la mesure correspondante. Utiliser d’abord les fonctions polyfit et polyval (voir help polyfit,help polyval) et ensuite la fonction spline (voir help

spline).

0,511,5321,921,210,50mesures

10,90,80,70,60,50,40,30,20,10Temps

Page 45: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

4507/09/09

CORRECTION

function interpolation(d)%interpole les données avec un polynome de degré dt=0:.1:1; tt=0:.05:1;m=[0 .5 1 1.2 2 1.9 2 3 1.5 1 .5];c=polyfit(t,m,d);y=polyval(c,tt);z=spline(t,m,tt);plot(t,m,’o’,tt,y,tt,z)legend('Points à interpoler','Courbe avec polyfit', 'Courbe

avec spline')

Page 46: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

4607/09/09

7. RESOLUTION DES EDO

EDO du 1er ordrey’(t)=f(y,t) y(0)=y0 Exemple: RésoudreMV’=-cV*V+Mg V(0)=0Avec M=70 kg, g=9,81 N/kg, c=0,27kg/m Écriture standard V’=f(V,t) V(0)=0f(V,t)=-c/M*V*V+g

Page 47: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

4707/09/09

Méthode de Euler itérative

V0=0; Vn+1=Vn+hf(Vn,tn) , n=1,…,N

Programme

7. RESOLUTION DES EDO

Page 48: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

4807/09/09

function euler(T)c=0.27; M=70; g=9.81; t=0; n=0; V=0; h=.1;while t<T n=n+1; V=V+h*(-c/M*V^2+g); t=t+h; tt(n+1)=t;

VV(n+1)=V;endplot(tt,VV)xlabel('temps')ylabel('vitesse')title('Simulation de la chute d''un corps dans le vide')

7. RESOLUTION DES EDO

Page 49: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

4907/09/09

Méthode de Runge Kutta (ODE 45)

Pardef

global M g c T y0

c=0.27; M=70; g=9.81; y0=0;T=1;

F

function y=F(t,y)

global M g c T y0

y=-c/M*y.^2+g;

Solution

function [t,y]=solution(T1)

% solution d'une EDO du 1er degré

global M g c T y0

T=T1;

[t,y]=ode45('F',[0 T],y0);

Plot(t,y)

7. RESOLUTION DES EDO

Page 50: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

5007/09/09

Refroidissement d’une plaque métallique épaisse par convection naturelle et par transfert radiatif de chaleur

dT/dt=A/(ro*C*V)*[eps*sig*(297^4-T^4)+hro*(297-T)], 0<t<180[, T(0)=473

ro=300 kg/m3 V=0,001 m3A=.25 m2C=900 J/(kg°K)hro=30 J/(m2°K)eps=0.8;sig=5.67*1e-8 W/(m2°K4)

EXERCICE D’APPLICATION 5

Page 51: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

5107/09/09

CORRECTIONpardefglobal A ro V C eps sig hro TSPAN Y0 h

%paramètres du problème de refroidissement de la plaque métalique% dT/dt=A/(ro*C*V)*[eps*sig*(297^4-T^4)+hro*(297-T) 0<t<180[,

T(0)=473

ro=300; %kg/m3 V=.001; %m3A=.25; %m2C=900; %J/(kg°K)hro=30; %J/(m2°K)eps=.8;sig=5.67*1e-8; %W/(m2°K4)TSPAN=[0 180]; Y0=473;

Page 52: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

5207/09/09

F

function Y=F(t,T)

%second membre de l'ODE problème de refroidissement de la plaque métalique

% dT/dt=A/(ro*C*V)*[eps*sig*(297^4-T^4)+hro*(297-T)], 0<t<180, T(0)=473

global A ro V C eps sig hro TSPAN Y0 h

Y=A/(ro*C*V)*(eps*sig*(297^4-T^4)+hro*(297-T));

CORRECTION

Page 53: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

5307/09/09

Solvefunction [tt,TT]=solveglobal A ro V C eps sig hro TSPAN Y0 h

%résolution du problème de refroidissement de la plaque métalique% dT/dt=A/(ro*C*V)*[eps*sig*(297^4-T^4)+hro*(297-T) 0<t<180[,

T(0)=473

t=0 ;n=0 ;T=473 ; tt(1)=t ;TT(1)=T ;while t<180n=n+1 ; T=T+h*F(t,T); t=t+h; tt(n+1)=t; TT(n+1)=T;end

CORRECTION

Page 54: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

5407/09/09

Courbefunction courbe(hh)global A ro V C eps sig hro TSPAN Y0 h%courbes des solution du problème de refroidissement de la plaque

métalique% dT/dt=A/(ro*C*V)*[eps*sig*(297^4-T^4)+hro*(297-T) %0<t<180,

T(0)=473% par ODE45 et Euler itératifpardefh=hh;[t,Y] = ODE45('F',TSPAN,Y0);[tt,T]=solve;plot(t,Y,tt,T)legend('solution par ODE45','solution par Euler itératif')

CORRECTION

Page 55: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

5507/09/09

7. RESOLUTION DES EDO

Résolution matricielle

Discrétisation

Ecriture Matricielle

AU=F

NixffxuuihxN

hh fuu iiiiiiii ,....,0);() ;(;;2

;1

1)(;) ;ex p (s inco s)(' uxxxxu

Page 56: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

5607/09/09

o Matrice

function A=matrice(N)

% calcule la matrice du système pour une EDO d'ordre 1 en utilisant un

% schéma décentré amont

A=toeplitz([1 -1 zeros(1,N-2)],[1 zeros(1,N-1)]);

Résolution

function [U,x]=resolution(N)

% résoud une EDO d'ordre 1 en utilisant un schéma centré amont

h=2*pi/N; x=-pi+(0:N)*h; % discrétisation

F=h*cos(x).*exp(sin(x)); F=F(2:N+1); F(1)=F(1)+1;

U=matrice(N)\F'; U=[1;U];

7. RESOLUTION DES EDO

Page 57: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

5707/09/09

o Courbe

function courbe(N)

% trace les courbes

[U,x]=resolution(N);

t=-pi:.1:pi;

plot(x,U,t,exp(sin(t)));

legend('solution numérique','solution exacte')

7. RESOLUTION DES EDO

Page 58: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

5807/09/09

7. RESOLUTION DES EDO

o EDO du second ordre

On pose

Donc

0'0

'''' )0(;)0();()()()()()( uuuutStutbtutatu

)()( ' tutv

0'0

' )0(;)0();()()()()()( uuuvtStutbtvtatv

Page 59: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

5907/09/09

7. RESOLUTION DES EDO

On pose

On a

v

uy

),(' ytfsb ua v

vy

Page 60: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

6007/09/09

7. RESOLUTION DES EDO

• Exemple

M=10; B=50; k=200

50;0)0(;1)0(;0 ''''' tuukuuB uuM

Page 61: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

6107/09/09

ProgrammePardefglobal M B k a c TSPAN Y0 h%paramètres du problème % M*u''+B*u'*|u'|+k*u=0M=10; B=50; k=200; a=B/M; c=k/M; TSPAN=[0 5]; Y0=[0;1];

F

function Y=F(t,y)%second membre de l'ODE M*u''+B*u'*|u'|+k*u=0global M B k a c TSPAN Y0 hY=[y(2);-a*abs(y(2))*y(2)-c*y(1)];

7. RESOLUTION DES EDO

Page 62: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

6207/09/09

Solvefunction [tt,YY]=solveglobal M B k a c TSPAN Y0 h%résolution du problème M*u''+B*u'*|u'|+k*u=0t=0 ;n=0 ;Y=Y0 ; tt(1)=t ;YY(:,1)=Y ; while t<5n=n+1 ; Y=Y+h*F(t,Y); t=t+h; tt(n+1)=t; YY(:,n+1)=Y;endCourbefunction courbe(hh)global M B k a c TSPAN Y0 h%courbes du problème M*u''+B*u'*|u'|+k*u=0 % par Euler itératif et ODE45pardefh=hh; [t,Y] = ODE45('F',TSPAN,Y0); [tt,YY]=solve; plot(t,Y(:,1),tt,YY(1,:))legend('Solution par ODE45','Solution par Euler itératif')title('Solutions du problème Mu''+Bu''|u''|''+ku=0')

7. RESOLUTION DES EDO

Page 63: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

6307/09/09

8. RESOLUTION DES EDP

Équation parabolique

0 t;0),(),0(

],0[ ;s in0,;0 ;0 ; t),(),(

tutu

xxxutxxutxu xxt

Page 64: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

6407/09/09

8. RESOLUTION DES EDP

Solution exacte

Solution numérique sur [0,T]

• Discrétisation partielle en espace

(1 ) )ex p ()s in (),( txtxu

T ][0 , t,....,0

) ,,( U, , i

N Xi

txuid xxN X

d x ii

Page 65: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

6507/09/09

) 's in...s in (s in0

21

1

1

121

12

) U... U(U U)(

1

d t

d U

1,...,1 )(

2

d t

d U(1 )

121

'1-N X212

211i

N X

iii

xxx)U (A

A Ud x

N Xid x

UUU

8. RESOLUTION DES EDP

Page 66: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

6607/09/09

8. RESOLUTION DES EDP

Ce problème est résolu par ODE45 ou par discrétisation

• Discrétisation en temps

1,....,0

)0( U,)(

UU

)0( U,)(

1U-U

T ][0 , t,....,0

) ,( U, ,

02

1

02

1

n

N Tn

UA Ud x

d t

UA Ud xd t

N Tn

tUn d ttN T

Td t

nnn

nnn

nn

Page 67: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

6707/09/09

8. RESOLUTION DES EDP

Ce schéma converge ssi

2

2

)( 22

2

N TT

N Xd x

d t

Page 68: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

6807/09/09

Programmes pardef% Paramètres par défaut de l'EDO d'ordre 2 u_t=u_xx

global T NT NX dt dx

T=1; NX=10; NT=20; dt=T/NT; dx=pi/NX;

matricefunction M=matrice

%matrice de l'EDO d'ordre 2 u_t=u_xx en utilisant un schéma centré en espace

global T NT NX dt dx

V=[-2 1 zeros(1,NX-3)];

M=toeplitz(V);

8. RESOLUTION DES EDP

Page 69: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

6907/09/09

solutionfunction [U,t,x]=solution

% résoud l'EDO d'ordre 2 u_t=u_xx en utilisant un schéma

%centré en espace

global T NT NX dt dx

t=0:dt:T; x=0:dx:pi;

U0=sin(x'); U0=U0(2:end-1); U=U0; %condition initiale

M=matrice;

for i=1:NT

U0=U0+dt/(dx)^2*M*U0; U=[U U0]; %stockage de la solution

end

U=[zeros(1,NT+1);U;zeros(1,NT+1)]; % ajout des conditions aux limites

8. RESOLUTION DES EDP

Page 70: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

7007/09/09

courbe% trace les courbes l'EDO d'ordre 2 u_t=u_xx

%en utilisant une discrétisation totales

global T NT NX dt dx

[U,t,x]=solution;

[tt,xx]=meshgrid(t,x);

subplot(2,1,1), mesh(tt,xx,U), xlabel temps, ylabel espace, zlabel quantite

te=0:.1:T; xe=0:.1:pi; [tte,xxe]=meshgrid(te,xe);

subplot(2,1,2), mesh(tte,xxe,sin(xxe).*exp(-tte)), xlabel temps, ylabel espace, zlabel quantite

legend(['En haut, solution numérique pour T=',num2str(T),'NT=',num2str(NT),'et NX=',num2str(NX),...

'. En bas,solution exacte.'])

8. RESOLUTION DES EDP

Page 71: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

7107/09/09

Simulationfunction simulation(T0,NX0,NT0)

global T NT NX dt dx

pardef

T=T0; NX=NX0;NT=NT0; dt=T/NT; dx=pi/NX;

courbe

8. RESOLUTION DES EDP

Page 72: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

7207/09/09

8. RESOLUTION DES EDP

Équation elliptique et hyperbolique

'121

2

2

2

2

),...,,(

,...,0, ) ,,( ) ,,(

,1y ,1 ,2

,2

)1( b o rd sau x 0

1,1- ;18s in1 0

jNjjj

jiijjiij

ji

uuuu

Njiyxffyxuu

id y-id x-xN

d yN

d x

u

yx)) x (y -((x ,y )uy

(x ,y )ux

Page 73: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

7307/09/09

8. RESOLUTION DES EDP

1,...,1,

)2()(

1),()1( 1122

2

Nji

uuudx

yxux jiijjiji

21

1

1

121

12

)(

1

1

2

1

2

1

2

1

2

2

jN

j

j

jN

j

j

u

u

u

d x

u

u

u

x

Page 74: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

7407/09/09

8. RESOLUTION DES EDP

1,...,1 ,)(

122

2

NjD ud x

ux

jj

1

2

1

2

1

2

1

2

2

)(

1

NN u

u

u

D

D

D

d x

u

u

u

x

Page 75: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

7507/09/09

function M=matrice(N) %matrice du problème hyperbolique

uxx+uyy=10sin(8x(y-1)) D=toeplitz([-2 1 zeros(1,N-3)]); I=eye(N-1); M=kron(I,D)+kron(D,I);

function z=F(x,y) %fonction second membre du problème hyperbolique

uxx+uyy=10sin(8x(y-1)) z=10*sin(8*x.*(y-1));

8. RESOLUTION DES EDP

Page 76: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

7607/09/09

function [UU,xx,yy]=solution(N) %fonction second membre du problème hyperbolique

uxx+uyy=10sin(8x(y-1)) x=-1+(0:N)*2/N; y=x;

[xx,yy]=meshgrid(x(2:N),y(2:N)); %discrétisation f=F(xx,yy); f=f(:); [xx,yy]=meshgrid(x,y); U=matrice(N)\f; U=reshape(U,N-1,N-1); %transforme

en matrice UU=zeros(N+1,N+1); UU(2:N,2:N)=U; %condition aux

bords

8. RESOLUTION DES EDP

Page 77: Cours Matlab.pptx

Simulation numérique en MATLAB Pr So Ousséni

7707/09/09

function courbe(N) % trace les courbes du problème hyperbolique

uxx+uyy=10sin(8x(y-1)) global T NT NX dt dx [U,x,y]=solution(N); mesh(x,y,U), xlabel x, ylabel y, zlabel z title('Solution du problème hyperbolique

uxx+uyy=10sin(8x(y-1))')

8. RESOLUTION DES EDP


Recommended