METHODES NUMERIQUES APPLIQUEES
cours, exercices corrig´
es et mise en œuvre en
JAVA
M.A. Aziz Alaoui et C. Bertelle
Facult´
e des Sciences et Techniques
25 rue Philippe Lebon - BP 540
76058 Le Havre Cedex - France
13 septembre 2002
R´
esum´
e
On pr´esente bri`evement quelques m´ethodes num´eriques usuelles et
´el´ementaires `a l’usage des ´etudiants en fin de premiers cycles scientifiques
universitaires ou de ceux d´ebutant un second cycle.
.............. A REVOIR ..............
Les math´ematiciens et autres scientifiques se sont toujours int´eress´es `a la
r´esolution num´erique des probl`emes qu’ils rencontrent, l’analyse math´ematique
classique ne pouvant r´esoudre tous les probl`emes qui se posent (par exemple
en int´egration, ´equations diff´erentielles, interpolation, r´esolution d’´equations non
lin´eaires ...). L’int´erˆet des scientifiques pour les m´ethodes et l’analyse num´erique
en g´en´eral, n’a donc cess´e d’augmenter. Deux notions s’av`erent alors impor-
tantes :
-l’erreur num´erique
-la notion de stabilit´e.
Abord´ees de mani`ere rapide dans cet ouvrage, nous renvoyons le lecteur `a des
ouvrages sp´ecialis´es [?,?] pour approfondir ces notions utiles pour la validation
des m´ethodes num´eriques.
Les th´eor`emes et propositions ´enonc´es ne seront pas d´emontr´es, la plupart
sont, ou peuvent ˆetre facilement, trait´es en exercices, n’exigeant pas d’arguments
math´ematiques profonds.
Nous compl´etons un certain nombre de chapitres par des petits programmes
d’applications en Java o`u l’on a privil´egi´e une lecture facile pour des d´ebutants
dans ce langage et la programmation objet plutˆot que des d´eveloppements
exhaustifs et g´en´eriques n´ecessitant souvent des constructions ´elabor´ees qui
d´epassent le cadre des objectifs d´efinis pour ce manuel. Le choix de Java pour
impl´ementer des m´ethodes num´eriques est discutable en raison des faibles per-
formances de calcul des plate-formes de d´eveloppement actuelles en Java mais
qui s’am´eliorent r´eguli`erement de mani`ere importante. Notre souci premier est
avant tout p´edagogique et Java est un langage orient´e objet propre et qui se veut
simple. Sa portabilit´e int´egrant des possibilit´es graphiques int´eressantes r´epond `a
nos pr´eoccupations p´edagogiques et de rentabilisation de l’investissement dans un
nouveau langage dans une discipline informatique en ´evolution permanente.
Table des mati`
eres
1 Introduction `
a Java 2
1.1 Pr´esentation de Java . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.1 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.2 Historique . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.3 Une machine virtuelle . . . . . . . . . . . . . . . . . . . 3
1.1.4 Caract´eristiques . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Types primitifs et structures de contrˆole . . . . . . . . . . . . . . 4
1.2.1 Types primitifs . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.2 Structures de contrˆole . . . . . . . . . . . . . . . . . . . 4
1.3 Classes et objets en Java . . . . . . . . . . . . . . . . . . . . . . 5
1.3.1 D´efinition d’une classe . . . . . . . . . . . . . . . . . . . 5
1.3.2 D´eclaration, cr´eation et destruction d’objets . . . . . . . . 5
1.3.3 Tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.4 Construction de la classe vecteur . . . . . . . . . . . . . . 7
1.3.5 Composants de type static ............... 10
1.3.6 Composants de type public et de type private . . . . 11
1.3.7 Chaˆınes de caract`eres . . . . . . . . . . . . . . . . . . . . 12
1.4 Organisation des fichiers sources d’un programme Java . . . . . . 14
1.4.1 Structure des fichiers sources . . . . . . . . . . . . . . . . 14
1.4.2 Commandes de compilation et de lancement d’un pro-
gramme........................... 14
1.4.3 Packages . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4.4 Visibilit´e des composants dans les packages . . . . . . . . 16
1.4.5 packages pr´ed´efinis en Java . . . . . . . . . . . . . . . . 16
1.5 H´eritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.5.1 Construire une classe d´eriv´ee . . . . . . . . . . . . . . . . 17
1.5.2 Constructeur d’une classe d´eriv´ee . . . . . . . . . . . . . 18
1.5.3 Accessibilit´e : public, protected et private . . . . . . . . . 18
1.5.4 M´ethodes virtuelles et classes abstraites . . . . . . . . . . 19
1.5.5 Un exemple : quelques objets g´eom´etriques . . . . . . . . 20
1
M´ethodes num´eriques avec Java
2
1.5.6 Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.5.7 Passage d’une fonction en param`etre d’une m´ethode . . . 24
1.6 Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.6.1 Notions g´en´erales . . . . . . . . . . . . . . . . . . . . . . 26
1.6.2 D´efinir sa propre exception . . . . . . . . . . . . . . . . . 27
1.7 Entr´ees/Sorties . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.7.1 Classes de gestion de flux . . . . . . . . . . . . . . . . . 29
1.7.2 Saisies au clavier . . . . . . . . . . . . . . . . . . . . . . 30
1.7.3 Lecture d’un fichier . . . . . . . . . . . . . . . . . . . . . 31
1.7.4 Ecriture dans un fichier . . . . . . . . . . . . . . . . . . . 33
1.7.5 Compl´ements . . . . . . . . . . . . . . . . . . . . . . . . 33
1.8 Conclusion provisoire . . . . . . . . . . . . . . . . . . . . . . . . 34
2 R´
esolution des ´
equations non lin´
eraires dans 35
2.1 Localisation (ou s´eparation) des racines . . . . . . . . . . . . . . 35
2.2 M´ethode des approximations successives . . . . . . . . . . . . . . 36
2.3 Ordre d’une m´ethode . . . . . . . . . . . . . . . . . . . . . . . . 39
2.4 Exemples de m´ethodes it´eratives . . . . . . . . . . . . . . . . . . 41
2.4.1 M´ethode de Lagrange (ou de la corde) . . . . . . . . . . . 41
2.4.2 M´ethode de Newton . . . . . . . . . . . . . . . . . . . . 42
2.5 Acc´eleration de la convergence . . . . . . . . . . . . . . . . . . . 43
2.5.1 M´ethode d’Aitken, ou Proc´ed´e d’Aitken . . . . . . . . 43
2.5.2 M´ethode de Steffensen, exemple de composition de
m´ethodes . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.5.3 M´ethode de Regula-Falsi . . . . . . . . . . . . . . . . . . 44
2.6 Enonc´es des exercices corrig´es . . . . . . . . . . . . . . . . . . . 45
2.7 Enonc´es des exercices non corrig´es . . . . . . . . . . . . . . . . . 47
2.8 Corrig´es des exercices . . . . . . . . . . . . . . . . . . . . . . . 51
2.9 Mise en œuvre en Java . . . . . . . . . . . . . . . . . . . . . . . 61
2.9.1 Une classe abstraite de description de processus it´eratifs . 61
2.9.2 La m´ethode de Lagrange . . . . . . . . . . . . . . . . . . 63
2.9.3 La m´ethode de Steffensen . . . . . . . . . . . . . . . . . 66
3 R´
esolution des syst`
emes lin´
eaires 68
3.1 M´ethode d’´elimination de Gauss . . . . . . . . . . . . . . . . . . 69
3.1.1 R´esolution d’un syst`eme triangulaire . . . . . . . . . . . . 69
3.1.2 M´ethode de Gauss . . . . . . . . . . . . . . . . . . . . . 69
3.1.3 Factorisation . . . . . . . . . . . . . . . . . . . . . . 70
3.1.4 Remarque sur le Pivot . . . . . . . . . . . . . . . . . . . 71
3.2 Enonc´es des exercices corrig´es . . . . . . . . . . . . . . . . . . . 73
3.3 Enonc´es des exercices non corrig´es . . . . . . . . . . . . . . . . . 75
M´ethodes num´eriques avec Java
3
3.4 Corrig´es des exercices . . . . . . . . . . . . . . . . . . . . . . . 77
3.5 Mise en œuvre en Java . . . . . . . . . . . . . . . . . . . . . . . 85
3.5.1 Les tableaux multidimensionnels en Java . . . . . . . . . 85
3.5.2 Une classe matrice . . . . . . . . . . . . . . . . . . . . . 85
3.5.3 Une classe abstraite de syst`eme lin´eaire . . . . . . . . . . 90
3.5.4 Les classes syst`emes lin´eaires triangulaires . . . . . . . . 91
3.5.5 La classe syst`emes lin´eaires g´en´erals impl´ementant la fac-
torisation LU . . . . . . . . . . . . . . . . . . . . . . . . 97
4 Graphisme scientifique avec Java 102
4.1 Applets ...............................102
4.1.1 Un premier exemple . . . . . . . . . . . . . . . . . . . . 102
4.1.2 Passage de param`etres . . . . . . . . . . . . . . . . . . . 103
4.1.3 Cycle de vie . . . . . . . . . . . . . . . . . . . . . . . . . 104
4.1.4 Compl´ements . . . . . . . . . . . . . . . . . . . . . . . . 104
4.2 Gestion de fenˆetres avec AWT . . . . . . . . . . . . . . . . . . . 104
4.2.1 Trac´es dans des applets . . . . . . . . . . . . . . . . . . . 104
4.2.2 Construire des interfaces fenˆetr´ees . . . . . . . . . . . . . 106
4.3 Construction de courbes de trac´es scientifiques . . . . . . . . . . 110
4.3.1 Les domaines bidimensionnels de l’utilisateur et du dis-
positif d’affichage . . . . . . . . . . . . . . . . . . . . . 110
4.3.2 Un gestionnaire de fenˆetres de base . . . . . . . . . . . . 111
4.3.3 Une classe d’utilitaires pour le trac´e de graphismes scien-
tiques ...........................112
4.3.4 Un exemple d’utilisation . . . . . . . . . . . . . . . . . . 115
5 Interpolation Polynˆ
omiale 118
5.1 Introduction. Existence et unicit´e du polynˆome d’interpolation . . 118
5.2 Interpolation de Lagrange . . . . . . . . . . . . . . . . . . . . . . 118
5.3 Interpolation d’Hermite . . . . . . . . . . . . . . . . . . . . . . 120
5.4 Enonc´es des Exercices Corrig´es . . . . . . . . . . . . . . . . . . 121
5.5 Enonc´es des exercices non corrig´es . . . . . . . . . . . . . . . . . 123
5.6 Corrig´es des exercices . . . . . . . . . . . . . . . . . . . . . . . 124
5.7 Mise en œuvre en Java . . . . . . . . . . . . . . . . . . . . . . . 132
6 Approximation par moindres carr´
es 141
6.1 Principe d’approximation et crit`ere de moindres carr´es . . . . . . 141
6.2 R´egression lin´eaire . . . . . . . . . . . . . . . . . . . . . . . . . 142
6.2.1 Mise en œuvre en Java . . . . . . . . . . . . . . . . . . . 144
6.3 G´en´eralisation aux mod`eles lin´eaires . . . . . . . . . . . . . . . . 147
6.3.1 Ecriture matricielle du probl`eme . . . . . . . . . . . . . . 149
1 / 230 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !