0% ont trouvé ce document utile (0 vote)
72 vues51 pages

Projet D'analyse Numérique

Transféré par

kamil ali
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOC, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
72 vues51 pages

Projet D'analyse Numérique

Transféré par

kamil ali
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOC, PDF, TXT ou lisez en ligne sur Scribd

Projet d’analyse numérique 2005-06

Par cet humble travail, je tiens à


vous
Remercier chaleureusement, M.
ZAKI, pour tous les
efforts émanant de votre part afin
que votre cours
ne reste pas une simple finalité, mais
un moyen
permettant de résoudre plusieurs
problèmes
scientifiques.

Et la réussite de ce travail n’est


qu’une

-1-
Projet d’analyse numérique 2005-06

reconnaissance parmi tant d’autres


pour la qualité,
l’efficacité et l’utilité des
connaissances que vous
nous avez prodiguées.

Introduction 1-
Définition
2-
Partie I Exemple
I- Qu’est ce que MATLAB ? d’étude
II- Qu’est ce que l’analyse numérique ? a- Le
III- Concepts et méthodes de l’analyse numérique design de
la
Partie II silhouette
I- Les effets des erreurs machines d’un chien
1- Exemple d’étude b- Le
a- Estimation d’une valeur e design
b- Manipulation d’une suite d’une
porte de
II- Splines cubiques voiture

-2-
Projet d’analyse numérique 2005-06

3- Conclusion P 10
P 10
III- Equation différentielle P 10
1- Définition P 13
2- Exemple d’étude
a- Problème de propagation d’une maladie P 16
b- Analyse de stabilité P 16
3- Conclusion P 16
P 16
P 18
IV- La matrice de Hilbert P 35
1- Exemple d’étude
2- Conclusion P 21
P 21
Conclusion P 21
P 21
P3 P 27
P 35
P4
P4 P 36
P5 P 36
P6 P 38

P 10 P 39

-3-
Projet d’analyse numérique 2005-06

En général, et dans toutes les sciences exactes en


relation avec l’ingénieur telle que la physique, la
mécanique, ou l’électrotechnique, la modélisation des
problèmes rencontrés mène à la résolution des
systèmes d’équations en dimension finie, et ce après
une étape incontrôlable de discrétisation.
La résolution des systèmes non linéaires est
obtenue soit par l’extension de leurs méthodes
d’approche, soit par leur linéarisation.
De ce fait, on peut dire que la résolution des systèmes
linéaires est à la base de tout calcul scientifique, cette
résolution doit être munie de méthodes numériques
rapides, fortes et faciles à utiliser.
Les scientifiques approchent les problèmes
rencontrés, et procèdent à leur résolution par deux
manières : en utilisant l’analyse numérique ou l’analyse
analytique. L’analyse numérique est basée sur les
ordinateurs, alors que l’analytique est faite à la main.
L’avantage de l’analyse numérique est de pouvoir
donner une réponse numérique à un problème qui n’a
pas de solution analytique. Cela supprime les calculs
standard pour certaines parties du problème qui
n’existent pas exactement. Par conséquent, les
résultats ne sont qu’approximatifs.
L’analyse analytique est plus utile lorsque l’on doit
examiner le comportement ou les propriétés d’une
fonction mathématique.
L’analyse numérique est plus efficace avec des
équations plus compliquées.
Une fois que le code est écrit pour un certain type
d’équation, vous pouvez incorporer différentes
équations et obtenir rapidement des réponses.

-4-
Projet d’analyse numérique 2005-06

L’autre avantage de l’analyse numérique est le fait


que les ordinateurs ne commettent pas d’erreurs,
contrairement aux humains.

I- Qu’est ce que MATLAB ?


MATLAB est un logiciel de calcul numérique, de
visualisation et de programmation très performant
et convivial développé par la société The MathWorks.

Le nom de MATLAB vient de MATrix LABoratory, les


éléments de données de base manipulés par MATLAB
étant des matrices (mais pouvant évidemment se
réduire à des vecteurs et des scalaires) qui ne
nécessitent ni dimensionnement ni déclaration de type.
Contrairement aux langages de programmation
classiques (scalaires et non interactifs), les opérateurs
et fonctions MATLAB permettent de manipuler
directement et interactivement ces données
matricielles, rendant ainsi MATLAB particulièrement
efficace en calcul numérique, analyse et visualisation
de données en particulier.

-5-
Projet d’analyse numérique 2005-06

Mais MATLAB est aussi un environnement de


développement ("progiciel") à part entière : son
langage de haut niveau, doté notamment de
structures de contrôles, fonctions d'entrée-sortie et de
visualisation 2D et 3D, éditeur/debugger, outils de
construction d'interface utilisateur graphique (GUI)...
permet à l'utilisateur d'élaborer ses propres fonctions
ainsi que de véritables programmes ("M-files").

MATLAB est disponible sur tous les systèmes


d'exploitation standards (Windows, Unix/Linux, MacOS
X) et son architecture est relativement ouverte. Le
champ d'utilisation de MATLAB, à l'origine destiné à la
résolution de systèmes linéaires, peut être étendu aux
systèmes non linéaires et aux problèmes associés de
simulation avec le produit complémentaire SIMULINK.
Les capacités de MATLAB peuvent en outre être
enrichies par des fonctions spécialisées regroupées
dans des dizaines de "Toolboxes" (boîtes à outils qui
sont des collections de "M-files") couvrant des
domaines très variés tels que :

 analyse de données
 statistiques
 mathématiques symboliques (accès au noyau
Maple V)
 analyse numérique (accès aux routines NAG)
 traitement d'image, cartographie
 traitement de signaux (et du son en particulier)

-6-
Projet d’analyse numérique 2005-06

 acquisition de données et contrôle de processus


(gestion ports série/parallèle, cartes d'acquisition,
réseau TCP ou UDP), instrumentation
 logique floue, finance, etc...

Une interface de programmation applicative (API) rend


finalement possible l'interaction entre MATLAB et les
environnements de développement classiques
(exécution de routines C ou Fortran depuis MATLAB, ou
accès aux fonctions MATLAB depuis des programmes C
ou Fortran). MATLAB permet en outre de déployer de
véritables applications à l'aide des outils de
conversion optionnels suivants :

 MATLAB -> code C/C++, avec le MATLAB Compiler


 MATLAB -> Excel add-ins, avec le MATLAB Excel
Builder
 MATLAB -> objets COM Windows, avec le MATLAB
COM Builder

Toutes ces caractéristiques font aujourd'hui de MATLAB


un standard incontournable en milieu académique,
dans les différents domaines de l'ingénieur et la
recherche scientifique.

II- Qu’est ce que l’analyse numérique ?

L’analyse numérique tient une place capitale dans


les interventions des mathématiques, aussi bien en
sciences physiques que dans le domaine de la biologie,
des technologies et des sciences économiques et
sociales. Mais elle offre aussi des possibilités très riches

-7-
Projet d’analyse numérique 2005-06

pour les sciences mathématiques elles-mêmes ; sans


oublier que, dans le passé, les problèmes numériques
ont constitué un moteur pour le développement des
concepts de l’analyse, il convient de souligner que le

développement récent des moyens de calcul


scientifique a ouvert de nouvelles perspectives :
Le traitement des problèmes classiques à
niveau beaucoup plus complexe (par exemple la
résolution de systèmes linéaires à un grand
nombre d’inconnues et d’équations
différentielles) ;
Le traitement de problèmes que les moyens
classiques ne permettaient même pas d’aborder
(équations aux dérives partielles, problèmes
variationnels, codages,…)
La simulation de problèmes (comportement
des systèmes dynamiques discrets et continus,
problème aux limites) permettant d’étudier
l’influence des paramètres, la stabilité des
solutions et les singularités.
Des calculs portant non seulement sur des
nombres ou des systèmes des nombres, mais sur
des objets formels (polynômes, fonctions
transcendantes élémentaires, fonctions
spéciales) ;
L’expérimentation : découverte et invalidation
de conjectures, notamment en théorie des
nombres ;

-8-
Projet d’analyse numérique 2005-06

La démonstration « automatique » de théorème : la


résolution du problème des quatre couleurs, ou l’étude
de la structure des groupes finis simples en sont des
exemples frappants.
Ces possibilités ont un effet en retour : la construction
d’algorithmes et l’étude comparée de leur performance
interviennent maintenant dans l’ensemble des
mathématiques.

III- Concepts et méthodes de l’analyse


numérique :
1- Les concepts d’approximation :
Dans toutes les questions de représentation des
nombres et des fonctions, il faut distinguer la recherche
de solutions « exactes » de celle d’algorithmes d’ «
approximation » d’une solution. Mais on notera que le
champ du concept d’approximation recouvre non
seulement les problèmes issus de l’analyse mais aussi
certaines questions purement algébriques. Ainsi, en
algèbre linéaire, les méthodes itératives sont
employées pour la résolution des systèmes (méthode
des relaxations successives, de Gauss Seidel, de
Jacobi), pour la recherche des valeurs propres
dominantes ( quotient de Rayleigh) et pour la
diagonalisation des matrices.

L’aspect algorithmique : c’est une des originalités


essentielles du point de vue numérique en analyse. On
ne s’intéresse pas seulement à l’existence de suites
d’approximation d’un nombre ou d’une fonction mais à
la recherche d’algorithmes, c’est-à-dire de procédures
explicites de calcul des termes successifs d’une telle

-9-
Projet d’analyse numérique 2005-06

suite, et à l’étude de leur pertinence, ce qui conduit à la


mise en place de plusieurs concepts quantitatifs que
nous décrivons rapidement.

Le discret et le continu : Fondamentalement,


l’analyse numérique établit un rapport organique entre
le continu et le discret. Le plus souvent, on approche un
problème continu par un problème discret portant sur
une suite finie de nombres parmi les nombreux
exemples, citons les valeurs d’une fonction, les calculs
d’intégrale, la résolution d’équation différentielles ou
aux dérivées partielles. Mais il existe aussi des cas où il
est commode d’approcher un problème continu :
comparaison de séries à des intégrales, utilisation de
lois continues en probabilité et en statistique.

Stabilité, perturbation : Le concept des stabilités est


d’importance primordiale. Il concerne non seulement
l’approximation des fonctions ou des formes linéaires
sur des espaces fonctionnels, mais aussi les équations
numériques ou fonctionnelles elles-mêmes.
Il s’agit alors d’étudier la dépendance des solutions
d’une telle équation par rapport aux paramètres
(second membre, coefficients, etc.). Ici les résultats
qualitatifs (continuité, differentiabilité) ne suffisent pas
et on a besoin de majorations explicites, par exemple
de type lipschitzien. Si la condition de stabilité est
satisfaite, on dit parfois que le problème est bien posé.
Ce concept de stabilité intervient aussi dans l’étude des
perturbations. Soit à étudier le comportement des
solutions d’un problème P1 où intervient un paramètre
« petit » 1.

- 10 -
Projet d’analyse numérique 2005-06

Pour cela, on néglige dans un premier temps l’effet de 1


en étudiant le problème P0, en général beaucoup plus
simple, puis on cherche à approcher les solutions de P1
par un développement asymptotique autour de 1=0.
Bien entendu, cette méthode n’est valable que si le
problème est stable ; on dit alors que la perturbation
est régulière, et on dit qu’elle est singulière dans le cas
contraire.
Rapidité de convergence, performance. Pour apprécier
la pertinence d’un algorithme d’approximation, on
dégage plusieurs aspects.

un aspect mathématique qualitatif (existence de


solutions, unicité, stabilité topologique, etc.).
un aspect mathématique quantitatif (rapidité de
convergence du processus d’approximation
utilisé, optimisation).
un aspect quantitatif relevant à la fois des
mathématiques et de l’informatique, à savoir la
performance, où l’on prend en compte le temps
total d’exécution du calcul pour obtenir une
précision donnée. La rapidité de convergence
n’est pas le seul facteur en jeu ; interviennent
aussi la complexité des calculs à chaque pas, les
méthodes de programmation et le type de
matériel informatique utilisé. Les outils
théoriques concernent la complexité des
algorithmes.
Lorsque la performance d’un algorithme est
insuffisante, on peut soit changer d’algorithme, soit
procéder à des accélérations de convergence.

- 11 -
Projet d’analyse numérique 2005-06

Précision et erreurs : Pour évaluer un résultat, on


doit prendre en compte trois types d’erreurs :
- les erreurs de méthodes, relatives à la précision de
l’algorithme utilisé ;
- les erreurs d’arrondi, liées à l’exécution des calculs ;
- les erreurs sur les données elles-mêmes.

2- Les méthodes d’approximation :


Les principales méthodes d’approximation relèvent des
deux idées dominantes :

1- Discrétisation par interpolation (en remplaçant


par exemple un opérateur différentiel par un
opérateur aux différences finies ; la méthode
des éléments finis est aussi de ce type).
2- Représentation des solutions par des
intégrales (transformées de Fourier, de
Laplace, etc.) ou des séries (séries entières,
séries de Fourier ou séries de polynômes
orthogonaux), suivie d’une approximation
portant sur ces représentations.

Les méthodes de discrétisation ont un champ


d’application plus large, mais les méthodes de
représentation fournissent une information qualitative
plus riche. En outre, très souvent, on ne s’intéresse pas
à la solution elle-même de l’équation fonctionnelle,
mais aux valeurs d’une forme linéaire sur cette solution
(par exemple l’intégrale). D’où l’importance non
seulement des techniques

- 12 -
Projet d’analyse numérique 2005-06

d’approximation des fonctions, esquissées dans


représentation et approximation des fonctions, mais de
l’étude de l’approximation des valeurs d’une forme
linéaire.
Il existe en physique mathématique trois grandes
classes d’équations aux dérivées partielles, illustrées
chacune par un type de phénomène bien particulier. Il y
a les équations de type elliptique, qui apparaissent
dans les études de régime stationnaire en électricité, en
mécanique ou en thermique. Les équations de type
parabolique sont représentatives des problèmes de
diffusion, par exemple de la chaleur.
Enfin les équations de type hyperbolique caractérisent
le phénomène de propagation des ondes, que ce soient
les ondes vibratoires sonores ou les ondes
électromagnétiques. Cependant, un problème aux
dérivées partielles, avec les conditions aux limites qui
lui sont associées, ne modélise pas forcément un
phénomène ou un processus physique. L’objectif de
l’analyse numérique, en tant que branche des
mathématiques appliquées, est de caractériser les
problèmes bien posés qui conduisent à une solution
unique qui varie de manière continue en fonction des
données.

- 13 -
Projet d’analyse numérique 2005-06

I- Les effets des erreurs machines :


1. Exemple d’étude
[Link] d’une valeur e
On désire estimer e ::=2.718281828 3 à l'aide de la relation

 Fonction MATLAB

On veut calculer (1+1/n)^n on construit donc la fonction


suivante :

function resultat=estimation(n)
resultat=(1+(1./n)).^n

- 14 -
Projet d’analyse numérique 2005-06

 Représentation graphique

On a la fonction

Pour n=1e5 jusqu'à n=1e7 par incrémentation de 2*1e5 :

clear all;
p1=10^5:2*(10^5):10^7;%fonction ((1+(1/n))^n)-e à
tracer
R1=estimation(p1);%appelle de la fct précédante
y1=(R1 - 2.71828);
plot(p1,y1,'r');%choix des dimensions des axes
axis([1e005 1e007 -1.1763e-005 1.6941e-006]);
grid;%ajout d'une grille
legend('n=1e5 jusqu''a n=1e7 avec un pas=2e-5');

Représentation graphique :

- 15 -
Projet d’analyse numérique 2005-06

Pour n=1e15 jusqu'à n=1e17 par incrémentation de 2*1e15 :

clear all;
p2=10^15:2*(10^15):10^17;%fonction ((1+(1/n))^n)-e à
tracer
R2=fct_n(p2);%appelle de la fct précédente
y2=(R2 - 2.71828);
plot(p2,y2);%choix des dimensions des axes
axis([1e015 1e017 -1.8 4.6590]);
grid;%ajout d'une grille
legend('n=1e15 jusqu''a n=1e17 avec un pas=2e-15');

- 16 -
Projet d’analyse numérique 2005-06

Représentation graphique :

COMMENTAIRE:

Pour la 1ère courbe on remarque que la différence


s’approche de 0, la valeur de la différence reste stable :0.0169
mais si n augmente on remarque que la différence est plus loin
de 0 avec une valeur de -1.7183
Dans le 2ème cas il y a même des valeurs qui sont loin de 0
comme 4.6590 pour
n=1e015+4*2e15 =9.0000e+015

 Évaluation
Cette fonction permet d’évaluer numériquement :

- 17 -
Projet d’analyse numérique 2005-06

function t = f1 (n)
s = 1;
h = 0;
epsi = 0.01;
while abs(s - h) > epsi
h = (n.^i .* (log1p(1./n)).^i ./prod(1:i));
s = s + h;
end
t = s;

[Link] d’une suite

 Méthode analytique
On définit une suite In pour n >=0 par :

Démonstration analytique
On a In+1–In =∫01 xn(x-1)sin(∏x) ;on doit montrer que
cette intégrale est négative :
0<x<1 : 0<∏x<∏ donc sin(∏x) ≥0
aussi xn >0 alors xnsin(∏x) ≥ 0
Mais x-1<0
donc xn(x-1).sin(∏x) ≤0
et l’intégrale est aussi négative Alors In+1 <In;
L’intégrale entre 0 et 1 de xnsin(∏x) est supérieur
strictement à zéro >0
(b) démonstration de la relation
I(k)=(1/pi)-((k(k-1))pi^2)*I(k-2)

 Méthode d’intégration
Utilisons l'intégration par parties à deux reprises pour montrer
analytiquement que :

- 18 -
Projet d’analyse numérique 2005-06

 Programme MATLAB

clear all;
format long;%long format pour plus de chiffre après la
virgule
b(1,2)=2/pi;
k=0;
for i= 1:21
b(i,1)=k;
k=k+2;
end;
for j= 2:21
l=b(j-1,2);
b(j,2)=((1/pi)-((b(j,1)*(b(j,1)-1))/(pi^2))*l);
end;
b

Exemple d’exécution

b=

- 19 -
Projet d’analyse numérique 2005-06

1.0e+011 *

0 0.00000000000637
0.00000000002000 0.00000000000189
0.00000000004000 0.00000000000088
0.00000000006000 0.00000000000050
0.00000000008000 0.00000000000032
0.00000000010000 0.00000000000023
0.00000000012000 0.00000000000017
0.00000000014000 0.00000000000013
0.00000000016000 0.00000000000010
0.00000000018000 0.00000000000008
0.00000000020000 0.00000000000007
0.00000000022000 0.00000000000006
0.00000000024000 0.00000000000005
0.00000000026000 0.00000000000002
0.00000000028000 0.00000000000178
0.00000000030000 -0.00000000015407
0.00000000032000 0.00000001548881
0.00000000034000 -0.00000176080131
0.00000000036000 0.00022479215891
0.00000000038000 -0.03202334790233
0.00000000040000 5.06164388130363

- 20 -
Projet d’analyse numérique 2005-06

II- Splines cubiques


1. Définition
Si, pour mieux s’approcher des points à représenter, on
utilise des polynômes de degrés élevés, on obtient des
oscillations.
Les splines sont une manière de résoudre ce problème et
d’obtenir de meilleurs fits qu’avec les polynômes.
une spline cubique (la plus fréquente) est composée de
segments de polynômes du troisième degré dont les dérivées
premières et deuxièmes sont continues aux points de jonction.
Exemple d’utilisation :
>> yi = spline(x, y, xi);

2. Exemple d’étude
[Link] design de la silhouette d’un chien
On veut faire le design de la silhouette d'un chien. On a mesuré
les données suivantes sur une section:

Xi 1 2 5 6 7 8 10 13 17 20 23 24 25 27 27.7 28 29 30
Yi 3 3.7 3.9 4.2 5.7 6.6 7.1 6 .7 4.5 7. 6.1 5.6 5.8 5.2 4.1 4.3 4.1 3.1

 Programme
Spline naturelle cubique qui passe par ces points

clear all;
x=[1 2 5 6 7 8 10 13 17 20 23 24 25 27 27.7 28 29 30];
y=[3 3.7 3.9 4.2 5.7 6.6 7.1 6.7 4.5 7 6.1 5.6 5.8 5.2 4.1
4.3 4.1 3.1];
xi=linspace(1, 30, 100);
[S,fpp,Sx]=splinc(x,y,'n',xi,'[Link]');
plot(xi,Sx,'r-');

Spline naturelle cubique qui passe par 3 intervalles de points

clear all;

- 21 -
Projet d’analyse numérique 2005-06

x1=[1 2 5 6 7 8 10 13 17];
y1=[3 3.7 3.9 4.2 5.7 6.6 7.1 6.7 4.5];
x2=[17 20 23 24 25 27 27.7];
y2=[4.5 7 6.1 5.6 5.8 5.2 4.1];
x3=[27.7 28 29 30];
y3=[4.1 4.3 4.1 3.1];
xi=linspace(1, 17, 100);
[S,fpp,Sx]=splinc(x1,y1,'n',xi,'[Link]');
plot(xi,Sx,'r-');
hold on;
xi=linspace(17, 27.7, 100);
[S,fpp,Sx]=splinc(x2,y2,'n',xi,'[Link]');
plot(xi,Sx,'b-');
hold on;
xi=linspace(27.7, 30, 100);
[S,fpp,Sx]=splinc(x3,y3,'n',xi,'[Link]');
plot(xi,Sx,'g-');

 Exemple d’exécution

- 22 -
Projet d’analyse numérique 2005-06

[Link] design d’une porte de voiture :


On veut faire le design d'une porte de voiture. On a mesuré les
données suivantes sur une section de la porte:
xi yi Y’i
0.0 2.51 +0.80
1.0 3.30 n.d.
2.0 4.04 n.d.
3.0 4.70 n.c.
4.0 5.22 n.c.
5.0 5.54 n.c.
6.1 5.80 +0.20
6.1 5.80 -1080
6.3 5.55 n.c.
6.5 5.44 n.c.
6.7 5.40 n.c.
7.0 5.40 n.c.
2.0 5.57 n.c.
9.0 5.70 n.c.
12.0 5.84 n.c.
14.0 5.75 n.c.
16.0 5.48 n.c.
18.0 4.90 -0.35

- 23 -
Projet d’analyse numérique 2005-06

 Programme
Spline naturelle
clear all;
x=[0 1 2 3 4 5 6.1 6.3 6.5 6.7 7 8 9 12 14 16 18];
y=[2.51 3.3 4.04 4.7 5.22 5.54 5.8 5.55 5.44 5.4 5.4 5.57
5.7 5.84 5.75 5.48 4.9];
xi=linspace(0, 18, 100);
[S,fpp,Sx]=splinc(x,y,'n',xi,'[Link]');
plot(xi,Sx,'g-');

Spline scellé

clear all;
x1=[0 1 2 3 4 5 6.1];
y1=[2.51 3.3 4.04 4.7 5.22 5.54 5.8];
x2=[6.1 6.3 6.5 6.7 7 8 9 12 14 16 18];
y2=[5.8 5.55 5.44 5.4 5.4 5.57 5.7 5.84 5.75 5.48 4.9];
xi=linspace(0, 6.1, 100);
[S,fpp,Sx]=splinc(x1,y1,'dp',xi,'[Link]');
plot(xi,Sx,'r-');
hold on;
xi=linspace(6.1, 18, 100);
[S,fpp,Sx]=splinc(x2,y2,'dp',xi,'[Link]');
plot(xi,Sx,'b-');

- 24 -
Projet d’analyse numérique 2005-06

 Exemple d’exécution

- 25 -
Projet d’analyse numérique 2005-06

3. Conclusion

Il est préférable d’utiliser l’approche locale pour


l’interpolation et même pour la majorité des
méthodes numériques ; cette approche consiste à
subdiviser l’intervalle [a,b] ,interpoler localement la
fonction sur chacun des sous intervalles et enfin
raccorder ces approximations locales pour obtenir
une interpolation globale avec certaines conditions
de régularités imposées sur les points de joints : cette
technique est dite interpolation par morceaux, par
exemple l’interpolation par splines cubiques .
Cette approche présente de meilleures propriétés
de convergence et de stabilité numérique.

- 26 -
Projet d’analyse numérique 2005-06

III- Equation différentielle


1-Définition
MATLAB contient un ensemble de fonctions pour
résoudre quasiment tout problème décrit par des
Equations différentielles avec des conditions initiales
définies.
La routine “ode45” est la routine de base. Elle
implémente une variante de la méthode de Runge-
Kutta qui, elle-même est un raffinement de la méthode
très simple d’Euler qui utilise la dérivée de f à t pour
évaluer f à t+dt.
D’autres algorithmes sont à notre disposition. Par
exemple “ode23”
MATLAB offre aussi une démo (pas très explicite) sur la
solution des Equations différentielles:
>> odedemo
La stratégie pour résoudre les Equations différentielles
est d’écrire une fonction (par exemple la fonction
“myode”, contenue dans le M-file myode.m) qui décrive
le membre de droite de l’équation à résoudre.
On peut alors obtenir la solution, dans un intervalle t=
[tinitial, tfinal] et pour des conditions initiales définies
dans y0 en utilisant ‘ode45’.

2-Exemple d’étude
[Link] problème de propagations d’une
maladie

- 27 -
Projet d’analyse numérique 2005-06

On veut étudier la propagation d'une maladie


contagieuse dans une population donnée. Pour ce faire,
On formule les hypothèses suivantes:
 La population totale m reste fixe Cm=100 000);
 Tous les habitants courent le même risque de
contracter la maladie;
 Les personnes infectées demeurent dans cet état
(pas de décès, pas de guérison).
On montre que le nombre de personnes infectées en
fonction du temps y(t) (en jours) est donné par
L'équation différentielle: dy(t)/dt=y’(t)=ky(t)(m-y(t))
où k est une constante (k=2x 106). C'est l'équation de
Bernoulli. Considérons le cas où au départ de l'étude
(t=O), le nombre de personnes infectées est de 1000.

 Solution analytique

Résolution analytique de l’équation différentielle:


Avec le changement de variable u(t)=1/y(t) donne :
u’(t)= -k(m u(t)-1)
Solution sans second membre est : u(t)=Ce-kmt
Avec une variation de constante on trouve que
C(t)=(1/m) ekmt +Cte donc notre solution est :
u(t)=Cte e-kmt +1/m donc
y(t)=m/(1+99 e-kmt)

Est lim y(t)=m lorsque t tend vers l’infini


Commentaire :
Après un temps très élevé c’est toute la population qui
sera infectée puisque la population est fixée et les
personnes malades restent dans leurs états

Résolution numérique de l’équation différentielle:

 Méthode d’Euler

- 28 -
Projet d’analyse numérique 2005-06

La formule générale de cette méthode est: y(i+1)-y(i)/dt


=f(t,y(i))
Programme dans MATLAB qui représente graphiquement les
solutions numérique et analytique :
Programme

function y=Euler(dt)
k=2e-6;
m=100000;
y_nu(1)=1000;
N=30/dt;
t=0:dt:30;
x=0:dt:30;
%solution Numerique
for i=1:N
y_nu(i+1)=(k*dt*m-k*dt*y_nu(i)+1)*y_nu(i);
end
%Solution Analytique
y_an=m./(1+99*exp(-k*m*x));
plot(x,y_an,'k');
hold on
plot(t,y_nu);
legend('Solution Analytique','Solution Analytique');

Représentation graphique de solution numérique & analytique

 Pour dt=1

- 29 -
Projet d’analyse numérique 2005-06

 Pour dt=5

- 30 -
Projet d’analyse numérique 2005-06

 Méthode de Runge-Kutta d’ordre 4

Programme

function y=RK4(dt)
m=100000;
k=2e-6;
y(1)=1000;
t(1)=0;
N=floor(30/dt);
xn=0:dt:30;
x=0:dt:30;
for i=1:N
t(i+1)=t(i)+dt;
l1=fonction(t(i),y(i));
l2=fonction(t(i)+(dt/2), y(i)+((dt/2) *l1) );
l3=fonction(t(i)+(dt/2),y(i)+((dt/2) *l2) );

- 31 -
Projet d’analyse numérique 2005-06

l4=fonction(t(i)+dt, y(i)+(dt *l3) );


o(i)=(1/6)*(l1 + 2*l2 +2*l3 + l4);
y(i+1)=y(i)+ dt*o(i);
end
%solution numérique(graphe)
plot(xn,y,'b');
%Solution Analytique
y_an=m./(1+99*exp(-k*m*x));
hold on;
plot(x,y_an,'r');
legend('solution numérique(graphe)','Solution
Analytique');

La fonction ‘fonction’ est définie par :

function f=fonction(t,y)
k=2e-6;
m=100000;
f=k*y*(m-y);

Exemple d’exécution :

Pour dt=1

ans =

1.0e+004 *

Columns 1 through 9

0.10000000000000 0.12187019338313 0.14845172148115


0.18072497035278 0.21985781692848 0.26723360223126
0.32447941663284 0.39349245588643 0.47646098950716

Columns 10 through 18

0.57587491473301 0.69451898591759 0.83543977129376


1.00187556179712 1.19713749733844 1.42443108960879
1.68661140833805 1.98587378787992 2.32339576449473

- 32 -
Projet d’analyse numérique 2005-06

Columns 19 through 27

2.69896434671673 3.11064244925102 3.55454327100961


4.02478354133911 4.51366893610587 5.01212603240322
5.51034222895807 5.99852377948511 6.46765076003712

Columns 28 through 31

6.91010862207371 7.32010863883450 7.69386134717029


8.02951965997565

Représentation graphique solution numérique & analytique

Commentaire : Les 2 courbes sont presque confondues

Pour dt=5

ans =

1.0e+004 *

- 33 -
Projet d’analyse numérique 2005-06

0.10000000000000 0.26634325805157
0.69031656200006 1.67411379921036 3.53068507439483
5.97191892804717 8.00925960011308

Représentation graphique solution numérique & analytique

Commentaire : les 2 courbes sont presque confondues

[Link] de stabilité
Soit l’équation différentielle avec condition initiale suivante :

- 34 -
Projet d’analyse numérique 2005-06

y ’(t) = -7y(t)
y (0) = 5

Dans cet exercice, nous allons étudier le comportement des méthodes


d’Euler et Euler modifiée en fonction du pas du temps h pour trouver une
approximation de y (t) dans l’intervalle [0, 2].

 Solution analytique

On résolvant l’équation ci –dessus, on trouve : y(t) =


y(0).exp (-7*t) = 5* exp (-7*t)

 Solution numérique
Apres la création de la fonction suivante :

function u = fonc (t,y)


u= -7*y;
y0=5;

On utilise la fonction Euler215 de la bibliothèque ENSEM

[t,y] = euler215('fonc', 0.0, [5 5], 0.0125, 10, '[Link]',


10);

Pour un pas de temps h = 0.5 :


Les résultats obtenus sont :

>> [t,y]=euler215('fonc', 0.0, 5, 0.5,4 , '[Link]', 5)

t=
0 0.50000000000000 1.00000000000000
1.50000000000000 2.00000000000000

- 35 -
Projet d’analyse numérique 2005-06

y=
1.0e+002 *
0.05000000000000
-0.12500000000000
0.31250000000000
-0.78125000000000
1.95312500000000

Représentation graphique des solution numérique et analytique :


x=abs(y);
u=5*exp(-7*t);
plot(t,x,'r',t,u,'b')
legend(‘Solution numérique’,’Solution analytique’) ;

- 36 -
Projet d’analyse numérique 2005-06

Pour un pas de temps h = 0.25 :


Les résultats obtenus sont :
>> [t,y]=euler215('fonc', 0.0, 5, 0.25,8, '[Link]', 5)

t=
0 0.25000000000000 0.50000000000000
0.75000000000000 1.00000000000000
1.25000000000000 1.50000000000000
1.75000000000000 2.00000000000000

y=
5.00000000000000
-3.75000000000000
2.81250000000000
-2.10937500000000
1.58203125000000
-1.18652343750000
0.88989257812500
-0.66741943359375
0.50056457519531

- 37 -
Projet d’analyse numérique 2005-06

Représentation graphique des solution numérique et analytique :


x=abs(y);
u=5*exp(-7*t);
plot(t,x,'r',t,u,'b')

legend(‘Solution numérique’,’Solution analytique’) ;

Pour un pas de temps h = 0.25 :


Les résultats obtenus sont :

>> [t,y]=euler215('fonc', 0.0, 5, 0.125,16 , '[Link]', 5)

t=
Columns 1 through 9
0 0.12500000000000 0.25000000000000
0.37500000000000 0.50000000000000
0.62500000000000 0.75000000000000
0.87500000000000 1.00000000000000

Columns 10 through 17

- 38 -
Projet d’analyse numérique 2005-06

1.12500000000000 1.25000000000000
1.37500000000000 1.50000000000000
1.62500000000000 1.75000000000000
1.87500000000000 2.00000000000000

y=
5.00000000000000
0.62500000000000
0.07812500000000
0.00976562500000
0.00122070312500
0.00015258789063
0.00001907348633
0.00000238418579
0.00000029802322
0.00000003725290
0.00000000465661
0.00000000058208
0.00000000007276
0.00000000000909
0.00000000000114
0.00000000000014
0.00000000000002

Représentation graphique des solution numérique et analytique :


x=abs(y);
u=5*exp(-7*t);
plot(t,x,'r',t,u,'b')
legend(‘Solution numérique’,’Solution analytique’) ;

- 39 -
Projet d’analyse numérique 2005-06

 Méthode d’Euler modifiée

On crée un fichier M-file comme suit :

function u = fonc (t,y)


u= -7*y;
y0=5;

Après on fait appel à la fonction Euler :

[t,y] = eulmod('fonct', 0.0, 5, 0.5, 10, '[Link]', 10);

Pour un pas de temps h = 0.5 :


Les résultats obtenus sont :
Représentation graphique des solution numérique et analytique :
>> [t, y] = eulmod('fonct', 0.0, 5, 0.5, 4, '[Link]', 5)

ans =
0

- 40 -
Projet d’analyse numérique 2005-06

t=
0 0.50000000000000 1.00000000000000
1.50000000000000 2.00000000000000
y=
1.0e+002 *
0.05000000000000
0.18125000000000
0.65703125000000
2.38173828125000
8.63380126953125

u=5*exp(-7*t);
plot(t,y,'r',t,u,'b')
legend(‘Solution numérique’,’Solution analytique’) ;

Pour un pas de temps h = 0.25 :


Les résultats obtenus sont :
>> [t, y] = eulmod('fonct', 0.0, 5, 0.25, 8, '[Link]', 5)
ans =
0
t=

- 41 -
Projet d’analyse numérique 2005-06

0 0.25000000000000 0.50000000000000
0.75000000000000 1.00000000000000
1.25000000000000 1.50000000000000
1.75000000000000 2.00000000000000
y=
5.00000000000000
3.90625000000000
3.05175781250000
2.38418579101563
1.86264514923096
1.45519152283669
1.13686837721616
0.88817841970013
0.69388939039072

Représentation graphique des solution numérique et analytique :


u=5*exp(-7*t);
plot(t,y,'r',t,u,'b')
legend(‘Solution numérique’,’Solution analytique’) ;

Pour un pas de temps h = 0.125 :


Les résultats obtenus sont :
>> [t, y] = eulmod('fonct', 0.0, 5, 0.125, 16, '[Link]', 5)

ans =
0
t=
Columns 1 through 9
0 0.12500000000000 0.25000000000000
0.37500000000000 0.50000000000000
0.62500000000000 0.75000000000000
0.87500000000000 1.00000000000000

Columns 10 through 17
1.12500000000000 1.25000000000000
1.37500000000000 1.50000000000000
1.62500000000000 1.75000000000000
1.87500000000000 2.00000000000000
y=

- 42 -
Projet d’analyse numérique 2005-06

5.00000000000000
2.53906250000000
1.28936767578125
0.65475702285767
0.33249380066991
0.16884450815269
0.08574135179629
0.04354053020905
0.02211042549678
0.01122795044759
0.00570169358666
0.00289539127448
0.00147031588157
0.00074664478361
0.00037915555418
0.00019253992986
0.00009777418313

Représentation graphique des solution numérique et analytique :


u=5*exp(-7*t);
plot(t,y,'r',t,u,'b')
legend(‘Solution numérique’,’Solution analytique’) ;

- 43 -
Projet d’analyse numérique 2005-06

3- Conclusion

La solution par la méthode d’Euler modifiée -


dite aussi méthode de Runge-Kuta d’ordre 2 - ne
converge vers la solution analytique que pour des
valeurs de pas petites. Aussi peut on conclure que
les deux méthodes Euler et Euler modifiée ne sont
stables que pour des valeurs de h petites. Au-delà
de certaines valeurs on a carrément une
divergence entre les deux solutions à savoir la
solution analytique et celle numérique.

- 44 -
Projet d’analyse numérique 2005-06

IV- La matrice de Hilbert


1- Exemple d’étude

Cette matrice est un exemple classique de matrice mal


conditionnée et donc elle mène à des calculs matriciels
imprécis.

- 45 -
Projet d’analyse numérique 2005-06

Programme
clear all;
fprintf('\na-1 Utilisant la fonction hilb() de MATLAB la
matrice Hilbert H d ordre n=100 \n');
H=hilb(100);
fprintf('\na-2- Le déterminant de la matrice de Hilbert(100)
est : \n');
determinant=det(H);
fprintf('Remarque: Pour n assez grand déterminant tend vers
0(et non pas 0 exactement)\n');
fprintf('\na-3- la norme inf de la matrice de Hilbert(100)**** \
n');
normeinf=norm(H,inf);
fprintf('\nb- Vecteur b solution du système linéaire Hx=b: \
n');
x=ones(100,1);
b=H*x;
fprintf('\nc-1- Résolution de système Hx=b avec b=H*x En
utilisant l opérateur "\" ,\n');
y=H\b;
plot(x,'r');
hold on;
plot(y,'b');
legend('la solution exacte','la solution x* obtenue en c-');
fprintf('\nd- la norme euclidienne du vecteur e = x-x* \n');
norme_e=norm(x-y,1)
fprintf('\ne- Le Conditionnement de matrice de
Hilbert(100) : \n');
conditionnement=cond(H)
fprintf('\nf-1- La forme analytique de la matrice de
Hilbert(100) inverse HI:\n');
HI=invhilb(100);
fprintf('\nf-2- la norme inf de l inverse de la matrice de
Hilbert(100)\n');
normeinfI=norm(HI,inf)
fprintf('\nf-3- le
Conditionnement(H)=Normeinf(H)*normeinfI(HI) \n');
conditionnementI= normeinfI*normeinf

- 46 -
Projet d’analyse numérique 2005-06

fprintf('\ng- On voit que le conditionnement est très grand


(n=1000 par exemple) \n');
fprintf('\naet vec la fonction de Matlab cond(invhilb(100)):\
n');
fprintf('\nLe conditionnement tend vers l''infini \n');

Exemple d’exécution :
>> hilbert

a-1 Utilisant la fonction hilb() de MATLAB la matrice


Hilbert H d ordre n=100

a-2- Le déterminant de la matrice de Hilbert(100)


est :
Remarque: Pour n assez grand déterminant tend vers
0(et non pas 0 exactement)

a-3- la norme inf de la matrice de Hilbert(100)****

b- Vecteur b solution du système linéaire Hx=b:

c-1- Résolution de système Hx=b avec b=H*x En


utilisant l opérateur "\"

d- la norme euclidienne du vcteur e = x-x*

norme_e =

3.819881620687961e+004

e- Le Conditionnement de matrice de Hilbert(100) :

conditionnement =

1.581670865507177e+020

- 47 -
Projet d’analyse numérique 2005-06

f-1- La forme analytique de la matrice de


Hilbert(100) inverse HI:

f-2- la norme inf de l inverse de la matrice de


Hilbert(100)

normeinfI =

2.442892932282648e+150

f-3- le
Conditionnement(H)=Normeinf(H)*normeinfI(HI)

conditionnementI =

1.267220787492374e+151

g- On voit que le conditionnement est très grand


(n=1000 par exemple)

aet vec la fonction de Matlab cond(invhilb(100)):

Le conditionnement tend vers l'infini

Représentation graphique

- 48 -
Projet d’analyse numérique 2005-06

2- Conclusion
La Matrice de Hilbert est très mal conditionnée.

- 49 -
Projet d’analyse numérique 2005-06

Dans ce projet, on a tout d’abord mis en


valeur les effets des erreurs machines.

Ensuite, on a eu l’occasion d’exploiter


plusieurs méthodes basiques de MATLAB et d’en
connaître les avantages et les inconvénients.

La technique de l’interpolation par morceaux


(exemple : interpolation par splines cubiques)
qu’on a utilisé dans le design de la silhouette
d’un chien présente de meilleures propriétés de
convergence et de stabilité numérique par
rapport à d’autres techniques.

Par ailleurs, l’utilisation des deux méthodes


Euler et Euler modifiée a révélé qu’elles ne sont
stables que pour des valeurs de h petites et
qu’au-delà de certaines valeurs on a carrément
une divergence entre les deux solutions
analytique et numérique.

En dernier lieu, l’exploitation de la matrice de


Hilbert a montré à quel point elle est très mal
conditionnée.

En guise de conclusion, on ne peut


qu'affirmer le grand intérêt qu'on porte à la
programmation des calculs mathématiques

- 50 -
Projet d’analyse numérique 2005-06

fastidieux en langage machine, pour plus de


précision en un temps réduit.

- 51 -

Vous aimerez peut-être aussi