Académique Documents
Professionnel Documents
Culture Documents
SOMMAIRE
SOMMAIRE..................................................................................................................................2
INTRODUCTION.........................................................................................................................4
1. MÉTHODE DE LAGRANGE...............................................................................................19
1. LA MÉTHODE DE DICHOTOMIE :.........................................................................................23
2. LA MÉTHODE DE NEWTON :...............................................................................................24
VIII.MÉTHODE RK4:................................................................................................................28
INTRODUCTION
Une équation différentielle est une équation différentielle dont la ou les fonctions inconnues
ne dépendent que d'une seule variable ; elle se présente sous la forme d'une relation entre ces
fonctions inconnues et leurs dérivées successives. (Une seule dimension).
Une équation différentielle ordinaire, également notée EDO, d’ordre n est une relation entre la
variable réelle t, une fonction inconnue t 7→ x(t) et ses dérivées x’, x’’,., x (n)
au point t définie
par F(t, x, x’’, ..., x(n))= 0,où F n’est pas indépendante de sa dernière variable x (n) . On prendra t
dans un intervalle I de R (I peut être R tout entier).
La solution x en général sera à valeurs dans R N, N ∈ N ∗ où N sera le plus souvent égal à 1, 2 ou
3.
On dit que cette équation est scalaire si F est à valeurs dans R
Programme Matlab :
%EDO_1D
clear
clc
%a=0;
%b=1;
a=0
b=3
%alpha=-1;
%beta=0;
alpha=-2;
beta=25;
%préprocesseur
n=100;
h=(b-a)/n;
x=a:h:b;
%schéma numérique
for i=1:n-1
S(i)=-2*A(x(i+1))/h^2-B(x(i+1))/h+C(x(i+1));
T(i)=A(x(i+1))/h^2;
R(i)=A(x(i+1))/h^2+B(x(i+1))/h;
end
Ah(1,1)=S(1);
Ah(1,2)=R(1);
Fh(1)=f(x(2))-(T(1)*alpha);
for i=2:n-2
Ah(i,i)=S(i);
Ah(i,i-1)=T(i);
Ah(i,i+1)=R(i);
Fh(i)=f(x(i+1));
end
Ah(n-1,n-1)=S(n-1);
Ah(n-1,n-2)=T(n-1);
Fh(n-1)=f(x(n))-(R(n-1)*beta);
Yh=Ah\Fh';
%post processeur
Ynum(1)=alpha;
Ynum(length(x))=beta;
for i=2:length(x)-1
Ynum(i)=Yh(i-1);
end
plot(x,Ynum,'r')
%Yexact
x1=a:h/10:b;
for i=1:length(x1)
%yexact(i)=x1(i)^2-1;
yexact(i)=3*x1(i)^2-2;
end
%Tracé
plot(x,Ynum,'r',x1,yexact,'b')
title(' RESOLUTION D’UNE EQUATION DIFFERENTIELLE')
ylabel('y')
xlabel('x')
Fonction
function y=A(x)
y=x^3-4;
%y=1;
End
function y=B(x)
y=exp(x)-1;
%y=-3;
End
function y=C(x)
y=cos(x);
%y=2;
end
Le caractère particulier d’une ´équation aux dérivées partielles (EDP) est de mettre en jeu
des fonctions de plusieurs variables
Une EDP est alors une relation entre les variables et les dérivées partielles de U
L’un des enjeux les plus importants du calcul scientifique est la résolution
d’équations aux dérivées partielles. En effet, de très nombreux problèmes issus des sciences
physiques (physique quantique, électromagnétisme, conductivité thermique) de la mécanique
(mécanique des fluides, mécanique du solide, élasticité) de la chimie (mécanismes de réaction-
diffusion) ou encore de la biologie (dynamique des populations) et de la finance sont d´écrits à
l’aide des E.D.P. Une E.D.P fournit une relation entre les dérivées partielles d’une fonction de
plusieurs variables (qui peut ou non dépendre du temps).
L’équation de la chaleur que l’on rencontre en conductivité thermique. Cette équation d’écrit
l’évolution de la température T par rapport à une source de chaleur notée f :
∂T
−∆T =f
∂t
L’équation des ondes que l’on rencontre en élasticité et en électromagnétisme, qui relie le déplacement
d’une membrane (ou d’une onde) u sous l’effet d’une force f :
2
∂u
−∆ u=f
∂2 t
L’équation des télégraphes que l’on rencontre en électromagnétisme. Cette d’équation d’écrit
l’évolution du potentiel V en fonction du temps et de sa position au sein d’un matériau (ici dans le cas
monodimensionnel) :
2 2
∂V ∂V ∂ V
2
−α − =0
∂ t ∂ t ∂2 x
Dans bien des cas, on rencontre des E.D.P non linéaires, c’est-`a-dire que la relation entre les dérivées
partielles est non linéaire. Par exemple elle fait intervenir le carré d’une dérivée ou bien on multiplie par
une fonction qui dépend elle-même de la solution. Voici quelques-unes d’entre elles :
L’équation iconale que l’on rencontre en optique qui décrit l’évolution d’un champ monochromatique
S:
||∇ S||=1
L’équation de Burgers non visqueuse que l’on rencontre en mécanique des fluides qui décrit l’évolution
du déplacement u au sein d’un fluide (cas monodimensionnel) :
∂u ∂u
+u =0
∂t ∂x
Programme Matlab :
%ED_2D
clc
clear
%INPUT
a=0;
b=20;
c=0;
d=10;
nx=100;
ny=nx/2;
h=(b-a)/nx;
%pré-processeur
x=a:h:b;
y=c:h:d;h
m=nx-1;
%remplissage de A et F
%1er cas
i=1;
j=1;
N=i+(j-1)*m;
A(N,N)=-4;
A(N,N+1)=1;
A(N,N+m)=1;
F(N)=(h^2)*f(x(i+1),y(j+1))-g1(x(i+1))-f1(y(j+1));
%2eme cas
i=1;
j=ny-1 ;
N=i+(j-1)*m;
A(N,N)=-4;A(N,N+1)=1;A(N,N-m)=1;
F(N)=(h^2)*f(x(i+1),y(j+1))-f1(y(j+1))-g2(x(i+1));
%3eme cas
i=nx-1;
j=1 ;
N=i+(j-1)*m;
A(N,N)=-4;
A(N,N+m)=1;
A(N,N-1)=1;
F(N)=(h^2)*f(x(i+1),y(j+1))-g1(x(i+1))-f2(y(j+1));
%4eme cas
i=nx-1;
j=ny-1;
N=i+(j-1)*m;
A(N,N)=-4;
A(N,N-m)=1;
A(N,N-1)=1;
F(N)=(h^2)*f(x(i+1),y(j+1))-g2(x(i+1))-f2(y(j+1));
%5eme cas
for i=2:nx-2
for j=2:ny-2
N=i+(j-1)*(nx-1);
A(N,N)=-4;
A(N,N+1)=1;
A(N,N-1)=1;
A(N,N+m)=1;
A(N,N-m)=1;
F(N)=(h^2)*f(x(i+1),y(j+1));
end
end
%6eme cas
i=1;
for j=2:ny-2 ;
N=i+(j-1)*m;
A(N,N)=-4;
A(N,N+1)=1;
A(N,N+m)=1;
A(N,N-m)=1;
F(N)=(h^2)*f(x(i+1),y(j+1))-f1(y(j+1));
end
%7eme cas
j=1;
for i=2:nx-2
N=i+(j-1)*m;
A(N,N)=-4;
A(N,N+1)=1;
A(N,N+m)=1;
A(N,N-1)=1;
F(N)=(h^2)*f(x(i+1),y(j+1))-g1(x(i+1));
end
%8eme cas
j=ny-1 ;
for i=2:nx-2
N=i+(j-1)*m ;
A(N,N)=-4;
A(N,N+1)=1;
A(N,N-m)=1;
A(N,N-1)=1;
F(N)=(h^2)*f(x(i+1),y(j+1))-g2(x(i+1));
end
%9eme cas
i=nx-1;
for j=2:ny-2
N=i+(j-1)*m;
A(N,N)=-4;
A(N,N+m)=1;
A(N,N-1)=1;
A(N,N-m)=1;
F(N)=(h^2)*f(x(i+1),y(j+1))-f2(y(j+1));
end
%resolution de système linéaire
U=A\F';
%post-processeur
for i=1:length(x);
Unum(i,1)=g1(x(i));
Unum(i,length(y))=g2(x(i));
end
for j=1:length(y);
Unum(1,j)=f1(y(j));
Unum(length(x),j)=f2(x(j));
end
for i=2:length(x)-1
for j=2:length(y)-1
Unum(i,j)=U((i-1)+((j-2)*m));
end
end
%Uexact
x1=a:0.1:b;
y1=c:0.1:d;
for i=1:length(x1);
for j=1:length(y1);
Uexact(i,j)=(x1(i)).^2+(y1(j)).^2;
end
end
subplot(1,2,1)
mesh(x,y,Unum')
ylabel('y')
xlabel('x')
title ('solenumerique')
subplot(1,2,2)
mesh(x1,y1,Uexact')
title ('solexact')
ylabel('y')
xlabel('x')
grill on
Les fonctions
function [z]=f(x,y)
z=4
end
function [t]=f1(y)
t=y^2;
end
function [t]=f2(y)
t=400+y^2;
end
function [Z]=g1(x)
Z=x^2;
end
function [y]=g2(x)
y=x^2+100;
end
Figure 2:La résolution d’une équation aux dérivées partielles de 2 dimensions.
On remarque d’après ce
graphe que le résultat exacte (bleu), le résultat numérique (rouge) sont très proches
Programme Matlab :
%ed3
clc
clear
%INPUT
a=0;
b=1;
c=0;
d=1;
e=0
g=1
n=4;
h=(b-a)/n;
%pré-processeur
x=a:h:b;
y=c:h:d
z=e:h:g;
%remplissage de A et F
%1er cas
for i=2:n-2
for j=2:n-2
for k=2:n-2
N=i+(j-1)*(n-1)+(k-1)*(n-1)^2;
A(N,N)=-6
A(N,N-1)=1
A(N,N+1)=1
A(N,N+(n-1))=1
A(N,N+(n-1))=1
A(N,N+(n-1)^2)=1
A(N,N-(n-1)^2)=1
F(N)=(h^2)*p(x(i+1),y(j+1),z(k+1))
end
end
end
%2eme c
i=1;j=1;k=1
N=i+(j-1)*(n-1)+(k-1)*(n-1)^2;
A(N,N)=-6
A(N,N+1)=1
A(N,N+(n-1))=1
A(N,N+(n-1)^2)=1
F(N)=(h^2)*p(x(i+1),y(j+1),z(k+1))-B1(y(j+1),z(k+1))-B3(x(i+1),z(k+1))-
B5(x(i+1),y(j+1))
%3eme c
for i=2:n-2
j=1; k=1
N=i+(j-1)*(n-1)+(k-1)*(n-1)^2;
A(N,N)=-6
A(N,N-1)=1
A(N,N+1)=1
A(N,N+(n-1))=1
A(N,N+(n-1)^2)=1
F(N)=(h^2)*p(x(i+1),y(j+1),z(k+1))-B3(x(i+1),z(k+1))-B5(x(i+1),y(j+1))
end
%4 eme cas
i=n-1
j=1; k=1
N=i+(j-1)*(n-1)+(k-1)*(n-1)^2;
A(N,N)=-6
A(N,N-1)=1
A(N,N+(n-1))=1
A(N,N+(n-1)^2)=1
F(N)=(h^2)*p(x(i+1),y(j+1),z(k+1))-B3(x(i+1),z(k+1))-B5(x(i+1),y(j+1))-
B2(y(j+1),z(k+1))
% 5eme cas
for j=2:n-2
i=1;k=1
N=i+(j-1)*(n-1)+(k-1)*(n-1)^2;
A(N,N)=-6
A(N,N+1)=1
A(N,N-(n-1))=1
A(N,N+(n-1))=1
A(N,N+(n-1)^2)=1
F(N)=(h^2)*p(x(i+1),y(j+1),z(k+1))-B5(x(i+1),y(j+1))-B1(y(j+1),z(k+1))
end
% 6 eme cas
for j=2:n-2
for i=2:n-2
k=1
N=i+(j-1)*(n-1)+(k-1)*(n-1)^2;
A(N,N)=-6
A(N,N+1)=1
A(N,N-1)=1
A(N,N-(n-1))=1
A(N,N+(n-1))=1
A(N,N+(n-1)^2)=1
F(N)=(h^2)*p(x(i+1),y(j+1),z(k+1))-B5(x(i+1),y(j+1))
end
end
%7 eme cas
for j=2:n-2
i=n-1;k=1;
N=i+(j-1)*(n-1)+(k-1)*(n-1)^2;
A(N,N)=-6
A(N,N-1)=1
A(N,N-(n-1))=1
A(N,N+(n-1))=1
A(N,N+(n-1)^2)=1
F(N)=(h^2)*p(x(i+1),y(j+1),z(k+1))-B5(x(i+1),y(j+1))-B2(y(j+1),z(k+1))-
B1(y(j+1),z(k+1))
end
%8 eme cas
i=1;j=n-1;k=1;
N=i+(j-1)*(n-1)+(k-1)*(n-1)^2;
A(N,N)=-6
A(N,N+1)=1
A(N,N-(n-1))=1
A(N,N+(n-1)^2)=1
F(N)=(h^2)*p(x(i+1),y(j+1),z(k+1))-B5(x(i+1),y(j+1))-B4(x(i+1),z(k+1))-
B1(y(j+1),z(k+1))
%9 eme cas
j=n-1;k=1;
for i=2:n-2
N=i+(j-1)*(n-1)+(k-1)*(n-1)^2;
A(N,N)=-6
A(N,N-1)=1
A(N,N+1)=1
A(N,N-(n-1))=1
A(N,N+(n-1)^2)=1
F(N)=(h^2)*p(x(i+1),y(j+1),z(k+1))-B5(x(i+1),y(j+1))-B4(x(i+1),z(k+1))
end
%10 eme cas
j=n-1;i=n-1;k=1;
N=i+(j-1)*(n-1)+(k-1)*(n-1)^2;
A(N,N)=-6
A(N,N-1)=1
A(N,N-(n-1))=1
A(N,N+(n-1)^2)=1
F(N)=(h^2)*p(x(i+1),y(j+1),z(k+1))-B5(x(i+1),y(j+1))-B2(y(j+1),z(k+1))-
B4(x(i+1),z(k+1))
%cas
i=1; j=1;
for k=2:n-2
N=i+(j-1)*(n-1)+(k-1)*(n-1)^2;
A(N,N)=-6
A(N,N+1)=1
A(N,N+(n-1))=1
A(N,N+(n-1)^2)=1
A(N,N-(n-1)^2)=1
F(N)=(h^2)*p(x(i+1),y(j+1),z(k+1))-B3(x(i+1),z(k+1))-B1(y(j+1),z(k+1))
end
%%cas11
j=1;
for k=2:n-2
for i=2:n-2
N=i+(j-1)*(n-1)+(k-1)*(n-1)^2;
A(N,N)=-6;
A(N,N+1)=1; A(N,N+(n-1))=1; A(N,N+(n-1)^(2))=1; A(N,N-1)=1; A(N,N-(n-
1)^(2))=1;
F(N)=h^(2)*p(x(i+1),y(j+1),z(k+1))-B3(x(i+1),z(k+1));
end
end
%%cas 12
j=1; i=n-1;
for k=2:n-2
N=i+((j-1)*(n-1))+((k-1)*((n-1)^(2)));
A(N,N)=-6;
A(N,N-1)=1; A(N,N+(n-1))=1; A(N,N+(n-1)^(2))=1; A(N,N-(n-1)^(2))=1;
F(N)=h^(2)*p(x(i+1),y(j+1),z(k+1))-B1(x(i+1),z(k+1))-B2(y(j+1),z(k+1));
end
%%cas 13
i=1;
for k=2:n-2
for j=2:n-2
N=i+((j-1)*(n-1))+((k-1)*((n-1)^(2)));
A(N,N)=-6;
A(N,N+1)=1; A(N,N+(n-1))=1; A(N,N+(n-1)^(2))=1; A(N,N-(n-1))=1; A(N,N-(n-
1)^(2))=1;
F(N)=h^(2)*p(x(i+1),y(j+1),z(k+1))-B1(y(j+1),z(k+1));
end
end
%%cas 15
i=n-1;
for k=2:n-2
for j=2:n-2
N=i+((j-1)*(n-1))+((k-1)*((n-1)^(2)));
A(N,N)=-6;
A(N,N+(n-1))=1; A(N,N+(n-1)^(2))=1; A(N,N-1)=1; A(N,N-(n-1))=1;A(N,N-(n-
1)^(2))=1;
F(N)=h^(2)*p(x(i+1),y(j+1),z(k+1))-B2(y(j+1),z(k+1));
end
end
%%cas 16
j=n-1; i=1;
for k=2:n-2
N=i+((j-1)*(n-1))+((k-1)*((n-1)^(2)));
A(N,N)=-6;
A(N,N+1)=1; A(N,N+(n-1)^(2))=1; A(N,N-(n-1))=1; A(N,N-(n-1)^(2))=1;
F(N)=h^(2)*p(x(i+1),y(j+1),z(k+1))-B4(x(i+1),z(k+1))-B1(y(j+1),z(k+1));
end
%%cas 17
j=n-1;
for i=2:n-2
for k=2:n-2
N=i+((j-1)*(n-1))+((k-1)*((n-1)^(2)));
A(N,N)=-6;
A(N,N-1)=1; A(N,N+1)=1; A(N,N-(n-1))=1; A(N,N-(n-1)^(2))=1; A(N,N+(n-
1)^(2))=1;
F(N)=h^(2)*p(x(i+1),y(j+1),z(k+1))-B4(x(i+1),z(k+1));
end
end
%%cas 18
j=n-1; i=n-1;
for k=2:n-2
N=i+((j-1)*(n-1))+((k-1)*((n-1)^(2)));
A(N,N)=-6;
A(N,N+(n-1)^(2))=1; A(N,N-1)=1; A(N,N-(n-1))=1; A(N,N-(n-1)^(2))=1;
F(N)=h^(2)*p(x(i+1),y(j+1),z(k+1))-B4(x(i+1),z(k+1))-B2(y(j+1),z(k+1));
end
%%cas19
k=n-1; i=1; j=1;
N=i+((j-1)*(n-1))+((k-1)*((n-1)^(2)));
A(N,N)=-6;
A(N,N+1)=1; A(N,N+(n-1))=1; A(N,N-(n-1)^(2))=1;
F(N)=h^(2)*p(x(i+1),y(j+1),z(k+1))-B3(x(i+1),z(k+1))-B1(y(j+1),z(k+1))-
B6(x(i+1),y(j+1));
%%cas 20
k=n-1; j=1;
for i=2:n-2
N=i+((j-1)*(n-1))+((k-1)*((n-1)^(2)));
A(N,N)=-6;
A(N,N+1)=1; A(N,N+(n-1))=1; A(N,N-(n-1)^(2))=1; A(N,N-1)=1;
F(N)=h^(2)*p(x(i+1),y(j+1),z(k+1))-B3(x(i+1),z(k+1))-B6(x(i+1),y(j+1));
end
%%cas 21
k=n-1; j=1; i=n-1;
N=i+((j-1)*(n-1))+((k-1)*((n-1)^(2)));
A(N,N)=-6;
A(N,N-1)=1; A(N,N+(n-1))=1; A(N,N-(n-1)^(2))=1;
F(N)=h^(2)*p(x(i+1),y(j+1),z(k+1))-B3(x(i+1),z(k+1))-B2(y(j+1),z(k+1))-
B6(x(i+1),y(j+1));
%%cas 22
k=n-1; i=1;
for j=2:n-2
N=i+((j-1)*(n-1))+((k-1)*((n-1)^(2)));
A(N,N)=-6;
A(N,N+1)=1; A(N,N+(n-1))=1; A(N,N-(n-1)^(2))=1; A(N,N-(n-1))=1;
F(N)=h^(2)*p(x(i+1),y(j+1),z(k+1))-B1(y(j+1),z(k+1))-B6(x(i+1),y(j+1));
end
%%cas 23
k=n-1;
for j=2:n-2
for i=2:n-2
N=i+((j-1)*(n-1))+((k-1)*((n-1)^(2)));
A(N,N)=-6;
A(N,N+1)=1; A(N,N+(n-1))=1; A(N,N-(n-1)^(2))=1; A(N,N-1)=1; A(N,N-(n-
1))=1;
F(N)=h^(2)*p(x(i+1),y(j+1),z(k+1))-B6(x(i+1),y(j+1));
end
end
%%cas 24
k=n-1; i=n-1;
for j=2:n-2
N=i+((j-1)*(n-1))+((k-1)*((n-1)^(2)));
A(N,N)=-6;
A(N,N+(n-1))=1; A(N,N-(n-1)^(2))=1; A(N,N-1)=1; A(N,N-(n-1))=1;
F(N)=h^(2)*p(x(i+1),y(j+1),z(k+1))-B2(y(j+1),z(k+1))-B6(x(i+1),y(j+1));
end
%%cas 25
k=n-1; j=n-1; i=1;
N=i+((j-1)*(n-1))+((k-1)*((n-1)^(2)));
A(N,N)=-6;
A(N,N+1)=1; A(N,N-(n-1)^(2))=1; A(N,N-(n-1))=1;
F(N)=h^(2)*p(x(i+1),y(j+1),z(k+1))-B3(x(i+1),z(k+1))-B1(y(j+1),z(k+1))-
B6(x(i+1),y(j+1));
%%cas 26
k=n-1; j=n-1;
for i=2:n-2
N=i+((j-1)*(n-1))+((k-1)*((n-1)^(2)));
A(N,N)=-6;
A(N,N+1)=1; A(N,N-(n-1)^(2))=1; A(N,N-1)=1; A(N,N-(n-1))=1;
F(N)=h^(2)*p(x(i+1),y(j+1),z(k+1))-B4(x(i+1),z(k+1))-B6(x(i+1),y(j+1));
end
%%cas 27
k=n-1; j=n-1; i=n-1;
N=i+((j-1)*(n-1))+((k-1)*((n-1)^(2)));
A(N,N)=-6;
A(N,N-(n-1)^(2))=1; A(N,N-1)=1; A(N,N-(n-1))=1;
F(N)=h^(2)*p(x(i+1),y(j+1),z(k+1))-B3(x(i+1),z(k+1))-B2(y(j+1),z(k+1))-
B6(x(i+1),y(j+1));
%--------------------------------------------------------------------------
%resolution numerique
U=A\F';
%post processeur
for i=1:length(x)
for j=1:length(y)
Unum(i,j,1)=B5(x(i),y(j));
Unum(i,j,length(z))=B6(x(i),y(j));
end
end
for i=1:length(x)
for k=1:length(z)
Unum(i,1,k)=B3(x(i),z(k));
Unum(i,length(y),k)=B4(x(i),z(k));
end
end
for j=1:length(y)
for k=1:length(z)
Unum(1,j,k)=B1(y(j),z(k));
Unum(length(x),j,k)=B2(y(j),z(k));
end
end
for i=2:length(x)-1
for j=2:length(y)-1
for k=2:length(z)-1
Unum(i,j,k)=U((i-1)+((j-2)*(n-1))+((k-2)*(n-1)^(2)));
end
end
end
% calcul de Uexact
for i=1:length(x)
for j=1:length(y)
for k=1:length(z)
Uexact(i,j,k)=x(i).^(2)+y(j).^(2)+z(k).^(2);
end
end
end
figure(1)
k=1;
for i=1:5
subplot(5,2,k);
mesh(x,y,Unum(:,:,i)')
title ('solenumerique')
ylabel('y')
xlabel('x')
zlabel ('k')
k=k+1;
subplot(5,2,k);
mesh(x,y,Uexact(:,:,i)')
title ('solexact')
ylabel('y')
xlabel('x')
zlabel ('k')
k=k+1;
end
Les fonctions
function [y]=B1(y,z)
y=y.^2+z.^2;
end
function [y]=B2(y,z)
y=1+y^2+z^2;
end
function [y]=B3(x,z)
y=x^2+z^2;
end
function [y]=B4(x,z)
y=x^2+1+z^2;
end
function [y]=B5(x,y)
y=x^2+y^2;
end
function [y]=B6(x,y)
y=x^2+y^2+1;
end
function [y]=p(x,y,z)
y=6;
end
1. MÉTHODE DE LAGRANGE.
Même s'ils le font très vite, il n'y a guère qu'une chose que les ordinateurs sachent faire
avec des nombres : les ajouter et les multiplier, donc évaluer des fonctions polynômes. Si on doit
effectuer des calculs sur une fonction quelconque, il est important de pouvoir l'approcher par des
fonctions polynômes. Selon le sens précis que l'on donne à « approcher », il existe une grande
variété de techniques, et autant de familles de polynômes qui leur sont adaptées. Nous traitons
ici une des questions les plus simples : comment construire un polynôme de degré minimal, dont
le graphe passe par certains points du plan. C'est le problème de l'interpolation. Nous
commençons par nous donner les abscisses des points.
Avec :
On appelle polynômes interpolateurs de Lagrange aux
abscisses, les
polynômes, définis pour par :
Programme Matlab :
clear
clc
X=[-1,0,1];
Y=[5,1,-1];
n=100;
h=2/n;
t=X(1):h:X(length(X));
for j=1:length(t)
Pn(j)=0;
for i=1:length(X)
Pn(j)=Pn(j)+Y(i)*lagrange(i,X,t(j));
end
end
plot(t,Pn)
Fonction
function P=lagrange(i,X,t)
n=length(X);
P=1;
for j=1:i-1
P=P*(t-X(j))/(X(i)-X(j))
end
for j=i+1:n
P=P*(t-X(j))/(X(i)-X(j))
end
end
L’objectif d’intégration numérique est d’aborder le calcul général de l’intégrale d’une fonction
f(x) sur un domaine fini délimité par des bornes finies a et b (les cas des bornes infinies n’est
donc pas couvert ici) :
L’idée principale est de trouver des méthodes qui permettent de calculer rapidement une valeur
approchée I’ de l’intégrale à calculer :
Comme toujours, un programme numérique n’invente rien, et ne fait que procéder très
rapidement à un calcul que l’on pourrait en principe faire à la main. Une méthode bien connue
consiste par exemple à diviser l’aire sous la courbe en un grand nombre de petits
rectangles d’aire et de les sommer. Le résultat est alors une
approximation de l’intégrale I. Cette approximation est d’autant meilleure que la largeur h des
rectangles tend vers 0. Cette méthode dite des rectangles est un exemple parmi d’autres.
Le principe général des méthodes de Newton-Cotes simples est d’approximer la fonction f(x) à
intégrer par un polynôme P(x)= (x). Si cette approximation est suffisamment bonne alors,
l’intégrale de ce polynôme
Sera une bonne approximation de L’avantage est que l’on sait calculer
Analytiquement la valeur exacte de I e. Dans ces méthodes, on choisit des polynômes de degré p
qui coïncident avec f(x) en p+ 1 points distincts, espacés régulièrement entre les bornes a et b.
Ces points sont situés aux positions :
Des polynômes de degrés différents définissent des méthodes différentes aux performances
différentes. Nous allons voir les plus courantes, c’est à dire les méthodes d’ordres les plus bas.
1. MÉTHODE DU RECTANGLE (P = 0)
2. MÉTHODE DU TRAPÈZE (P = 1)
3. MÉTHODE DE SIMPSON SIMPLE (P = 2)
La résolution numérique par L’intégration numérique par les méthodes du (Rectangle, Trapèze,
Simpson simple)
Programme Matlab
clear
clc
format long
a=0;b=1;
n=4;
h=(b-a)/n;
x=a:h:b;
% Rectangle
R=0;
for i=1:length(x)-1;
R=R+h*f(x(i));
end
R
%exact
I=1/3 %(primitive de la fonction f(x))
%Trapeze
T=f(x(1))*h/2+f(x(length(x)))*h/2;
for i=2:length(x)-1;
T=T+h*f(x(i))/2;
end
T
%simpson
S=0;
for i=1:2:length(x)-2
S=S+h/3*(f(x(i))+4*f(x(i+1))+f(x(i+2)));
end
S
Les fonctions
function y=f(x);
y=x^2;
end
On déduit de ses résultats que la méthode des rectangles est moins précise qu’à la méthode des
trapèzes qu’à la méthode de Simpson. Donc Simpson est la méthode avec le moindre d’erreurs
et donc la plus précise.
V. RÉSOLUTION D’ÉQUATIONS NON LINÉAIRES.
On considère un intervalle [a,b] et une fonction f continue de [a,b] dans R. On suppose que
f(a)*f(b)<0 et que l’équation f(x)=0 admet une unique solution α sur l’intervalle] a,b[.
1. LA MÉTHODE DE DICHOTOMIE :
La méthode de dichotomie consiste à construire une suite (xn) qui converge vers la racine α de la
manière suivante :
2. LA MÉTHODE DE NEWTON :
Programmation matlab
clear
clc
a=-1;
b=3;
eps=10^(-6);
% dichotomie
while abs(b-a)>eps
x=(b+a)/2;
if f(a)*f(x)<0;
b=x;
end
if f(a)*f(x)>0 ;
a=x;
end
end
x
%Newton
N=10;
x0=1.2;
k=0;
while N>eps
x1=x0-f(x0)/fp(x0);
N=abs(x1-x0);
x0=x1;
k=k+1;
end
k
x
function
function y=fp(x)
y=2*x;
end
function y=f(x)
y=x^2-5;
end
Les valeurs intermédiaires sont alors données par la relation de récurrence qui est le schéma
d'Euler explicite.
Programmation matlab
clear all;
clc;
a=0;b=10;h=0.1;x=a:h:b;y(1)=0;x(1)=0;
%solution analytique
fan=fexact(x);
%Euler
for i=1:length(x)-1;
y(i+1)=y(i)+h*ff(x(i),y(i));
end
figure(1)
plot(x,y,'r')
hold on
plot(x,fan,'b')
grid on
grid minor
xlabel('x','fontsize',14);
ylabel('solution par Euler and fonction
exact','fontsize',14)
legend('methode Euler','fonction exact')
SOLUTION :
clear;clc;
a=0;b=10;h=0.1;x=a:h:b;y(1)=0;x(1)=0;
%solution analytique
fan=fexact(x);
%RK2
for i=1:length(x)-1
k1=ff(x(i),y(i));
k2=ff(x(i)+h,y(i)+h*k1); y(i+1)=y(i)
+h*(0.5*k1+0.5*k2);
end figure(2)
plot(x,y,'r') hold on plot(x,fan,'b') grid on
grid minor xlabel('x','fontsize',14);
ylabel('solution par RK2 and fonction
exact','fontsize',14)
legend('methode Euler','fonction exact')
SOLUTION :
clear all
clc
a=0;
b=10;
h=0.1;
x=a:h:b;
y(1)=0;
x(1)=0;
%solution analytique
fan=fexact(x);
% PK4
for i=1:length(x)-1
k1=ff(x(i),y(i));
k2=ff(x(i)+h*0.5,y(i)+0.5*h*k1);
k3=ff(x(i)+h*0.5,y(i)+0.5*h*k2);
k4=ff(x(i)+h,y(i)+h*k3);
y(i+1)=y(i)+(h/6)*(k1+2*k2+2*k3+k4);
end
figure(3)
plot(x,y,'r')
hold on
plot(x,fan,'b')
grid on
grid minor
xlabel('x','fontsize',14);
ylabel('solution par RK4 and fonction exact','fontsize',14)
legend('methode Euler','fonction exact')
SOLUTION :
Figure 12:Représentation graphique de solution exact et RK4
PROGRAMME MATLAB :
PROGRAMME MATLAB :
clc;clear; close all;
a=0; b=8; c=0; d=4; nx=50;
h=(b-a)/nx ; ny=nx/2;
x=a:h:b ; y=c:h:d ; m=nx-1;
f1=y.^2; f2=8^(2)+y.^2;
d1=0; d2=8;
f=4;
% Remplissage de Ah et Fh
%1 cas :
for i=2:nx-2
for j=2:ny-1;
N=i+(j-1)*m;
A(N,N)=-4; A(N,N+1)=1; A(N,N+m)=1;
A(N,N-1)=1; A(N,N-m)=1;
F(N)=(h^2)*f;
end
end
%2 cas
i=1;
for j=2:ny-1;
N=i+(j-1)*m;
A(N,N)=-4; A(N,N+1)=1; A(N,N+m)=1; A(N,N-m)=1 ;
F(N)=(h^2)*f-f1(j+1);
end
%3 cas
i=nx-1;
for j=2:ny-1;
N=i+(j-1)*m;
A(N,N)=-4; A(N,N-1)=1; A(N,N+m)=1; A(N,N-m)=1 ;
F(N)=(h^2)*f-f2(j+1);
end
%4 cas
j=1;
for i=2:nx-2
N=i+(j-1)*m;
A(N,N)=-3; A(N,N-1)=1; A(N,N+m)=1; A(N,N+1)=1;
F(N)=(h^2)*f-d1*h;
end
%5 cas
j=ny;
for i=2:nx-2
N=i+(j-1)*m;
A(N,N)=-3; A(N,N-1)=1; A(N,N-m)=1 ; A(N,N+1)=1 ;
F(N)=(h^2)*f-d2*h;
end
%6 cas
j=1; i=1;
N=i+(j-1)*m;
A(N,N)=-3; A(N,N+m)=1; A(N,N+1)=1 ;
F(N)=(h^2)*f-d1*h-f1(j+1);
%7 cas
j=1; i=nx-1;
N=i+(j-1)*m;
A(N,N)=-3; A(N,N-1)=1; A(N,N+m)=1;
F(N)=(h^2)*f-d1*h-f2(j+1);
%8 cas
j=ny; i=1;
N=i+(j-1)*m;
A(N,N)=-3; A(N,N-m)=1 ; A(N,N+1)=1 ;
F(N)=(h^2)*f-d2*h-f1(j+1);
%9 cas
j=ny; i=nx-1; N=i+(j-1)*m;
A(N,N)=-3; A(N,N-m)=1 ; A(N,N-1)=1 ;
F(N)=(h^2)*f-
d2*h-f2(j+1);
U=A\F';
for i=2:length(x);
Unum(i,1)=U(i-1)-(h*d1);
end
for i=2:length(x)-1;
Unum(i,length(y))=U((m*(ny-1))+i-1)+(h*d2);
end
forj=1:length(y);
Unum(1,j)=f1(j) ;
Unum(length(x),j)=f2(j);
end
for i=2:length(x)-1
for j=2:length(y)-1
Unum(i,j)=U((i-1)+((j-2)*m));
end
end
x1=a:h:b;
y1=c:h:d;
Uexa=zeros(i,j);
for i=1:length(x1);
for j=1:length(y1);
Uexa(i,j)=(x1(i))^2+(y1(j))^2;
end
end
figure(2)
subplot(1,2,1)
mesh(x,y,Unum')
title('la solution numerique','FontSize',12)
subplot(1,2,2)
mesh(x1,y1,Uexa')
title('la solution exacte','FontSize',12)
35