Académique Documents
Professionnel Documents
Culture Documents
La PDE Toolbox de Matlab est un module de Matlab qui offre `a la fois tout un panel de
commandes principalement d´Edi ‘es `a la résolution, `a l’aide de la m´méthode des ´éléments
finis, des ´équations aux d´rivées partielles linéaires en deux dimensions et dans une
moindre mesure celles non linéaires, mais elle fournit de plus un environnement graphique
pratique et des outils typiquement géométriques intervenant dans la résolution des
´équations aux d´rivées partielles par la m´méthode des ´éléments finis (maillage,
raffinement, d´composition de domaine...). Ces fonctionnalités utilisent un codage de la
géométrie qu’il nous a fallu d´encrypter avant d’´écrire nos premiers algorithmes.
.2 Exemple de résolution `a l’aide de la PDE Toolbox sous Matlab
Soit D le disque unité. On s’intéresse au problème d’E.D.P suivant, on cherche u telle que :
a(x, y) = 2 + sin(xy)
f(x, y) = −4(2 + sin(xy) + xycos(xy))
Ce problème admet une unique solution. On peut dans ce cas la calculer, il s’agit de :
u(x, y) = x
2+y
2+1
On va donc pouvoir comparer la solution exacte et la solution approchée renvoyé par
Matlab.
– On d´efinit une fonction grav qui donne les coordonn´ees des centres de gravit´e des
triangles. function g=grav(p,t)
g=[(p(1,t(1,:))+p(1,t(2,:))+p(1,t(3,:)))/3; (p(2,t(1,:))
+p(2,t(2,:))+p(2,t(3,:)))/3]; – Voici la fonction Matlab qui
donne f aux centres de gravit´e des triangles du maillage
function f=castestf(p,t) s=grav(p,t); x=s(1,:); y=s(2,:); f =
-4*(2+sin(x.*y)+x.*y.*cos(x.*y)); x et y sont ici des vecteurs
lignes contenant respectivement toutes les coordonn´ees sur (Ox)
et (Oy) des centres de gravit´
clc; clear;
k=0.13;c=0.11; p=7.8;dx=0.25;
r=1/4 dt=dx*dx*c*p*r/k;
Tmax=100*dt;%%(Nous avons fait Tmax un multiple de dt pour qu’en
le divisant par dt, nt soit toujours un entier, car sinon le
programme ne compilera pas)% cla=0; clb=0; a=0;b=2; nx=(b-a)/dx;
nt=Tmax/dt; x=0:dx:b; t=0:dt:Tmax; %
3_-Manupilation :
A) Tracer le graphe de fonction :
2
Y=x -3x+10
Tracer les fonctions sur une même graph :
2
Y1=sin(x) ;Y2=cos(x) ;Y3=x ;Y4=tan(x) :
function [y]=a0(x)
% coefficient
y=ones(size(x));
clc;clear
h=0.5;
a=0;
b=20;
c=0; d=10;
nx=(b-a)/h;
ny=(d-c)/h;
n=(nx-1)*(ny-1);
%%% (remplissage des éléments de la matrice A)
A=zeros(n);
for i=1:(n-1)
A(i,i)=-4;
A(i+1,i)=1;
A(i,i+1)=1;
if (mod(i,(nx-1))==0)
A(i+1,i)=0;
A(i,i+1)=0;
end
end
for i=1:n-nx+1
A(nx-1+i,i)=1;
A(i,nx-1+i)=1;
end
A(n,n)=-4;
%%% (remplissage des éléments de la matrice B)
for i=1:n
B(i)=0;
if (mod(i,nx-1)==0)
B(i)=-100;
end
end
%%%% (résolution du système Av=B et transformation du vecteur ~v en
la matrice U).
V=A\B';
k=1;
for j=1:ny-1
for i=1:nx-1
u(j,i)=V(k);
k=k+1;
end
end
%%% (Décalage des éléments pour insérer les conditions aux limites)
for j=ny:-1:2
for i=nx:-1:2
u(j,i)=u((j-1),i-1);
end
end
for i=1:nx
for j=1:ny
u(1,i)=0;
u(j,1)=0;
u(ny+1,i)=0;
u(j,nx+1)=100;
end
end
u(1,nx+1)=0;
%%% les vecteurs x et y
x=0:h:b; y=0:h:d;
%%% (affichage la courbe en tenant compte des vecteurs x,y et de la
matrice U)
mesh(x,y,u)
100
80
60
n
40
20
0
10
8 20
6 15
4 10
2 5
0 0
ny nx
Conclusion
• La formule du trapèze a un degré de précision de 1 (l’erreur sera nulle pour les
il est clair qu’il est intéressant de subdiviser l’intégrale et d’appliquer la formule du trapèze
fonction f .
qui ne change pas de signe sur x0,x2 . On aborde le problème d’une autre manière (voir
p314 pour les détails) et on obtient
Travail a Réaliser :
La programme en Matlab résolvant cette équation
Implementation numérique ´
Code:
clear all; clc;
function I = fonction_trapeze(a,b,n,f)
h=(b-a)/n;
I=0;
for k=0:n-1
x=a+(k*h);
f1=f(x);
x=a+((k+1)*h);
f2=f(x);
I=I+f1+f2;
end
I=I*h/2;
Code :
function [ I ] = IntSimpson(X,F)
a=0 ;
N=length(X) ;
for k=1 : (N-2) ;
a=a+ ((F(k)+4*F(k+1)+F(k+2))*( X (k+2)-X(k)))/6 ;
end ;
I=a/2
Expliquer ce programmer:
Stratégie générale ´
Nous allons maintenant donner les grandes lignes pour resoudre l’EDP ´ 2.1 par une
integration ´ numerique le long des caract ´ eristiques. On consid ´ ere deux points ` P et Q
(voir figure1), l’equation ´ aux deriv ´ ees partielles ´ 2.1 etant hyperbolique, il y a deux caract
´ eristiques en chaque point. La ´ courbe caracteristique ´ a droite de ` P, de pente m+,
intersecte celle de gauche de Q, de pente m− au point R. La solution du probleme ` 2.1 peut-
etre trouv ˆ ee en r ´ esolvant ´ amdp + cdq + edt = 0 le long de ces