Académique Documents
Professionnel Documents
Culture Documents
Licence 2
1.5.1 Sélection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.5.2 Itération . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.6.1 Procédures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.6.2 Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2 Programmation 25
1
TABLE DES MATIÈRES 2
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2 Vocabulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2.2 Aide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.3 Opérateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4 Vecteurs et Matrices 36
4.1 Vecteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
TABLE DES MATIÈRES 3
4.2 Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5 Programmation MATLAB 44
5.1 Entrées-Sorties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.2 M-les . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.3.1 If . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.3.2 Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.4 Boucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.4.1 While . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.4.2 For . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.5 Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.6 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
6 Graphismes 54
6.1 Graphiques à 2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
6.2 Graphiques à 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Table des gures
4
Chapitre 1
En eet, Pour qu'un problème soit modélisé et exécuté sur un ordinateur, il faudrait qu'il soit
formalisé dans les détails les plus ns. C'est ainsi que les méthodes formelles (sont des techniques
informatiques ou des matériels électroniques, an de démontrer leur validité par rapport à une
selon des règles formelles en un algorithme qui par la suite pourra être traduit dans un langage
L'algorithmique est une discipline qui permet de construire un traitement informatique en ana-
lysant ses diérentes tâches élémentaires et ce dans un langage proche du langage naturel. C'est
la branche de l'informatique qui étudie les algorithmes. Elle se penche sur leur conception, leur
complexité (La complexité algorithmique permet de mesurer les performances d'un algorithme et
5
CHAPITRE 1. LES BASES DE L'ALGORITHMIQUE 6
de le comparer avec d'autres algorithmes réalisant les mêmes fonctionnalités), leur ecacité,...etc.
L'algorithmique cherche la manière la plus optimale pour calculer des solutions pratiques à un
problème de calcul.
de procédures bien déni qu'il faut suivre pour obtenir la solution d'un problème dans un nombre
ni d'étapes.
1. Lire et bien comprendre l'énoncé du problème à résoudre : il est question ici de faire
une analyse détaillée du problème à resoudre. On doit être capable à la n de cette étape
de savoir si notre problème peut être traité via un programme informatique ; s'il existe un
2. Décrire les résultats à obtenir : puisque notre objectif est d'escompter un résultat ou
un ensemble de résultats précis, il importe que celui-ci soit bien décrit et il ne faudrait
pas oublier le moindre détail. Ceci an d'avoir un idée sur les éléments mathématiques et
logiques qui pourront être utilisés pour y arriver et surtout savoir à quel ensemble appartient
ce résultat.
3. Décrire les données nécessaires pour obtenir ces résultats : il s'agit de préciser
l'ensemble de données d'entrées (les arguments) pour exécuter le programme qui naîtra de
La structure globale d'un algorithme est la suivante : son nom, la déclaration des variables et des
Algorithme sonnom
Constante : k=10 ;
Début
Instruction(1) ;
Instruction(2) ;
.... ;
.... ;
Instruction(n-1) ;
Instruction(n) ;
Fin.
d'autres personnes. En eet, un algorithme est l'énoncé dans un langage bien déni d'une suite
2. De haut niveau : l'algorithme doit pouvoir être traduit en n'importe quel langage de
programmation, il ne doit donc pas faire appel à des notions techniques relatives à un
3. Précis et concis : chaque élément de l'algorithme ne doit pas porter à confusion, il est
donc important de lever toute ambiguïté. Et surtout, un algorithme ne doit pas dépasser
CHAPITRE 1. LES BASES DE L'ALGORITHMIQUE 8
5. Rapide : La rapidité d'un algorithme est un élément d'un tout dénissant les qualités de
celui-ci.
d'opérations.
Les algorithmes parallèles : ici certaines étapes sont exécutées l'une à côté de l'autre
Une variable est un objet dont le contenu peut être modié par une action durant l'exécution
d'un algorithme. Il s'agit une zone mémoire dans laquelle on peut mémoriser de façon temporaire
une valeur pour une exploitation ultérieure. Son contenu peut varier durant le déroulement de
d'une autre. Ce nom est composé de lettres non accentuées, de chires et du caractère _
dans un ordre quelconque sauf pour le premier caractère qui ne peut pas être un chire.
Les lettres peuvent être en minuscule ou en majuscule. Mais lorsqu'on nomme une variable
CHAPITRE 1. LES BASES DE L'ALGORITHMIQUE 9
ab, on ne peut pas y faire référence dans la suite du programme en utilisant Ab.
un type : il s'agit de l'ensemble au quel appartiennent les valeurs que pourront prendre
Constantes
Une constante est une donnée xe qui ne varie pas ou encore qui n'est pas modié durant
l'exécution d'un algorithme. Il s'agit d'une zone mémoire dans laquelle on peut mémoriser une
valeur qui ne varie pas durant le déroulement de l'algorithme. Une constante est caractérisée par
1. Les énumérations : Ils s'agit des types généralement dénis par le programmeur où il
énumère un certains nombre de valeurs ni (généralement des données qui ne peuvent pas
être déni grâce aux types standards) que pourront avoir certaines variables lors du dérou-
Quant aux types de données standards, il s'agit des types de données dénis sur la plupart
des langages de programmation ; qui généralement, sont les plus sollicités par les programmeurs
ensembles d'entiers. Nous apporterons des éclaicissements dans les chapitres qui suivront.
2. Les booléens : c'est le type dont les valeurs sont vrai ou faux. Les comparaisons sont des
opérations qui donnent un type booléen. Le résultat d'une variable peut être assignée à une
variable, ou bien elle peut être utilisée dans une expression booléenne.
3. Les nombres réels : c'est le sous-ensemble des nombres réels. Si l'on imagine que pour
les nombres entiers, le résultat de la division est exacte, il est accepté que dans la division
des nombres réels des erreurs par arrondi sont possibles. Les erreurs apparaissent à cause
4. L'ensemble des caractères : c'est le type de données pour les caractères. Il couvre les
lettres (les majuscules, les minuscules et les caractères accentués), les chires et quelques
signes graphiques. Les sous-ensembles des lettres et des chires sont ordonnés et continus.
bien déni. Ceci est présenté par la dénition d'un sous domaine avec la présentation des bornes
min et max.
Encore appelée variable indicée, un tableau est "une variable" qui permet aux programmeurs
C'est l'exemple d'un tableau de réels que l'on peut dénir pour manipuler par exemple des données
Le programme allouera 25 emplacements mémoire pour les réels de la variable d. Ainsi, en fonction
de ses besoins, on peut dénir un tableau multidimensionnel.
Enregistrements
Un enregistrement est un type de données structurées qui sert à rassembler dans un même type,
une structure de données de types diérents se rapportent à un même sujet. Les enregistrements
donnée1 : type1
donnée2 : type2
...
donnéen : typen
FIN ENREGISTREMENT
Exemple : Prenons par exemple la cas où nous voulons écrire un algorithme qui doit manipuler
les opérations sur les minérais. On peut dénir un enregistrement pour ceux-ci :
CHAPITRE 1. LES BASES DE L'ALGORITHMIQUE 12
couleur : Color
densité : réel
dureté : réel
éclat : Eclat
FIN ENREGISTREMENT
variable s : densité.
Ensembles
Les mathématiques dénissent un ensemble comme une collection d'objets sans répétition. Il
n'existe pas à priori de relation entre les éléments si ce n'est leur appartenance commune à l'en-
semble. En programmation, il permet de dénir un ensemble de valeurs nis qu'on peut réaliser les
un même ensemble.
- : soustraction
CHAPITRE 1. LES BASES DE L'ALGORITHMIQUE 13
* : multiplication
/ : division
les fonctions trigonométriques : sin(), cos(), tan(), cotan(), arctan(), arcsin(), arccos()
1.5.1 Sélection
Elle ore le choix sur les opérations à exécuter.
Elle représente une alternative. Sa notation graphique correspondante est celle de la gure 1.2
4 les choix multiples : Ils permettent de proposer un certains nombre d'actions selon le
valeurn : action n
sinon : action
Finsuivant
Une action ici est soit une expression, soit une instruction ou suite d'instructions, soit un algo-
rithme.
1.5.2 Itération
Elle permet de repéter un traitement tant qu'une condition est vériée.
Action 2 ;
... ;
Action n ;
Fintantque
Cette structure est utilisée lorsque l'action peut être exécutée de zéro en n fois (instructions
permettant la sortie de la boucle). La notation graphique de cette boucle est celle la gure 1.3
CHAPITRE 1. LES BASES DE L'ALGORITHMIQUE 16
repeter ...jusqu'à
Elle place le test après le traitement ; La condition est testée après l'exécution de l'action
dénie. Sa structure peut être utilisée lorsque l'action peut être exécutée 1 à n fois. La notation
'pour'
Elle permet de faire une itération selon un pas (incrémenter le contenu d'une variable au ni-
veau de l'en-tête de la boucle) bien déni jusqu'à une certaine condition d'arrêt. Elle se présente
Finpour
CHAPITRE 1. LES BASES DE L'ALGORITHMIQUE 17
Cette structure permet de répéter une action un nombre connu de fois. Identicateur est de type
entier Valeur-initiale et valeur-nale sont des constantes ou des variables. L'incrément est la valeur
en sous programme ou module ceci dans le but de faciliter sa maintenance, de réduire les lignes
de code dans le programme (dans le cas où la certaines sont utilisées à plusieurs niveaux dans le
programme) et surtout d' assurer la lisibilité de celui-ci. Ainsi, rencontre-t-on les procédures et les
fonctions. La diérence fondamentale entre les deux est que la derniere renvoie une valeur.
1.6.1 Procédures
Structure d'une procédure dans un algorithme :
Algorithme : Test.
Variable : Var1 : type1 ; Var2 :type2.
Procédure p (var1 : type3, var2 : type4) ;
Débutprocedure
instructions ;
Finprocedure
Début /* Programme proprement dit*/
instructions ;
p (Var1, Var2) ;
Fin
CHAPITRE 1. LES BASES DE L'ALGORITHMIQUE 18
1.6.2 Fonctions
Structure d'une fonction dans un algorithme :
Algorithme : Test.
Variable : Var1 : type1 ; Var2 :type2.
fonction f (var1 : type3, var2 : type4) :type1 ;
Débutfonction
instructions ;
f←−expression ;
Finfonction
Début /* Programme proprement dit*/
instructions ;
Fin
3. Écrire un algorithme qui recherche le plus petit élément d'un tableau d'entiers
6. Écrire un algorithme qui permet de lire 3 réels a, b et c puis les acher dans l'ordre croissant
7. Écrire un programme qui lit deux réels a et b comme étant les deux cotés droits d'un
8. Écrire un algorithme qui resoud une équation du type ax2 +bx+c=0 où x est l'inconnu.
Il faudra au préalable lire les coecients a,b,c.
10. Écrire un algorithme qui permet de lire une lettre puis ache s'il s'agit d'une voyelle ou
d'une consonne
11. On sait que les minéraux sont le plus souvent des combinaisons d'un nombre plus ou moins
Écrire un algorithme qui permet d'identier une roche grâce aux minéraux qui le compose.
12. Écrire un algorithme qui calcule le prix d'un certain nombre de photocopies en appliquant
le tarif suivant :
13. Écrire un algorithme qui détermine la catégorie sportive d'un enfant selon son âge :
poussin de 6 à 7 ans
pupille de 8 à 9 ans
minime de 10 à 11 ans
cadet de 12 à 14 ans
1 1
14. Écrire un algorithme qui calcule l'énergie selon la loi se Stareld : E=K(
x2
− x1
). où x1
représente la taille initiale des particules et x2 représente la taille nale des particules
15. Écrire un algorithme qui détermine l'énergie par calcul thermodynamique : S = ( 65 ∗ QQr ) +
( 65 ∗ V
Vr
) avec :
* Qr = 1152Cal/gr
* Vr = 863L/kg
Q : La quantité de chaleur dégagée par la détonation
V : Le volume de Gaz
CHAPITRE 1. LES BASES DE L'ALGORITHMIQUE 20
16. Écrire un algorithme qui calcule le PGCD et le PPCM de deux nombres entiers positifs
non nuls.
17. Écrire un algorithme qui ache la table de multiplication d'un nombre n quelconque.
18. Écrire un algorithme qui calcule les n premiers termes d'une suite arithmétique
19. Écrire un algorithme qui calcule les n premiers termes d'une suite géométrique
20. Pour réaliser un essai mécanique, un élément de volume representatif du matériau doit être
utilisé an que les hypothèses des milieux continus soient satisfaites : Écrire un algorithme
qui prend en entrée le type de matériau et qui ache le type et la taille des hétérogénéités
21. Écrire une fonction qui prend en entrée un entier a et retourne cet entier à l'envers.
22. Deux nombres sont opposés si leur somme est égale à 0. Deux nombres sont inverses si leur
produit est égal à 1. Écrire un algorithme où a et b sont deux nombres qui retourne vrai si
24. Écrire un algorithme qui calcule le plus grand écart dans un tableau de 1000 entiers (l'écart
25. Écrire un algorithme qui demande un nombre de départ et qui ensuite écrit la table de
multiplication de ce nombre.
20 g à 280 FCFA
Écrire un algorithme qui prend le poids d'une lettre et ache le montant d'aranchissement
de la lettre
Pn 1
27. Écrire un algorithme qui calcule Hn = k=1 k
Pn
28. Écrire un algorithme qui calcule : i=1 u(i) ∗ v(i) où u et v sont deux tableaux d'entiers
de même taille.
xk
Pn Pn
29. Écrire un algorithme qui calcule : y=exp(x)= k=0 Uk = k=0 k!
k x2k+1
Pn
30. Écrire un algorithme qui calcule : y=sin(x)= k=0 (−1) (2k+1)!
k x2k
Pn
31. Écrire un algorithme qui calcule : y=cos(x)= k=0 (−1) (2k)!
32. Écrire un algorithme qui interroge un étranger sur son âge et son sexe et lui annonce s'il
33. Écrire un algorithme qui demande un nombre entier positif N, puis qui calcule et ache :
S1=1+2+3+ ...+ N
S2 = 12 + 22 + 32 + ... + N 2
S3=1x2x3x...xN
1 1 1
S4 = 1 + sqrt(2)
+ sqrt(3)
+ .... + sqrt(N )
CHAPITRE 1. LES BASES DE L'ALGORITHMIQUE 22
35. Écrire un algorithme qui prend en entrée 15 teneurs et qui ache la teneur la plus grande.
36. Écrire un algorithme qui prend en entrée 15 teneurs et qui ache la teneur la plus petite.
37. Écrire un algorithme qui détermine le ph selon sa nature (si elle est basique ou acide) et
38. Écrire un algorithme qui calcul la masse volumique (en fonction de sa masse et de son
volume ) d'un mineral et en fonction de sa densité vous pourrez faire des supposition sur
la nature du mineral (la densité des cristaux est généralement autour de deux valeurs :2, 7
et autour de 6).
(a) Dans un premier temps écrire l'algorithme sans utiliser les fonctions et les procédures
(b) Ensuite, écrire un algorithme où sont dénies deux fonctions : une pour calculer la masse
(c) Enn, écrire un algorithme où sont dénies deux procédures : une pour calculer la masse
39. Écrire un algorithme qui met à zéro les éléments de la diagonale d'une matrice carrée
d'ordre 5.
40. Écrire un algorithme qui multiple une matrice carrée d'ordre 5 par un réel non nul.
41. Écrire un algorithme qui réalise l'addition de deux matrices carrées d'ordre 5.
CHAPITRE 1. LES BASES DE L'ALGORITHMIQUE 23
42. Écrire un algorithme qui réalise la multiplication de deux matrices carrées d'ordre 5.
43. Écrire un algorithme qui reçoit deux entiers strictement positifs x et y puis calcule xy
44. Une salle de classe dans un établissement est identiée par le numéro de l'étage (0,1,
...), son numéro d'identication dans l'étage (1,2,...), sa capacité et son nom, sa date de
construction et sa position géographique. Une date est déterminée par un jour (entier), un
mois (chaîne de caractères), une année (entier). Une position géographique est caractérisée
(nord,sud,ouest,est).
Dénir un type tableau à une dimension permettant de stocker les informations sur les
45. Écrire un algorithme qui lit un entier strictement positif n≤50 puis initialialise les n pre-
mières cases d'un tableau par des réels saisi par l'utilisateur. L'algorithme ache ensuite
Cf= f.Fr.Rm
avec : Rm est le rayon moyen =(d+D)/2. Fr est la charge radicale exercée. f, le frottement
47. Écrire un algorithme qui prend entrée la masse volumique d'un uide ρ et sa viscosité
49. Écrire un algorithme qui calcule la porosité d'une roche en de son volume à vide Vv et de
Vv
son volume total Vt (la porosité n= ).
Vt
50. Écrire un algorithme qui calcule la masse volumique d'un matériau en fonction de sa masse
51. Écrire un algorithme qui calcule la teneur en eau W en fonction de sa masse en eau Mw et
Mw
la masse du solide à seconde (W= ).
Ms
52. Écrire un algorithme qui calcule la diusion thermique a dans un solide en fonction de la
λ
conductivité λ, la masse volumique ρ et de la chaleur spécique C. a=
ρC
Chapitre 2
Programmation
2.1 Introduction
Comme nous le savons, les applications de l'ordinateur sont nombreuses. Nous pouvons citer :
l'accès à l'internet, l'envoie de courrier électronique, la création des sites web, l'archivage et la
retouche des photos, la bureautique, la conception assistée par ordinateur (CAO), le dessin assisté
par ordinateur (DAO), l'analyse numérique et bien d'autres. Si tous ces services sont rendus par un
ordinateur, c'est bien grâce à la programmation. La programmation est une activité qui consiste
à écrire ou à réaliser des programmes. Un programme quant à lui est un algorithme écrit dans un
25
CHAPITRE 2. PROGRAMMATION 26
2.2 Vocabulaire
Il est question ici d'habituer les étudiants aux termes utilisés en programmation.
d'écrire dans un langage proche de la machine mais intelligible par l'humain les opérations que
l'ordinateur doit eectuer. Ainsi, étant donné que le langage de programmation est destiné à l'or-
La façon d'écrire un programme est intimément liée au langage de programmation que l'on a
choisi, car il en existe énormément. Les langages de programmation les plus connus sont : Pascal,
tégré, il s'agit d'un logiciel qui facilite l'écriture et la mise au point d'un programme grâce à des
+code source : On appelle code source l'ensemble d'instructions écrits dans un langage de pro-
grammation
+compiler un programme : il s'agit d'une opération qui consiste pour le compilateur à vérier
si le programme est syntaxiquement correct.
+exécuter un programme : elle consiste à lancer le chier exécutable créé après la compilation.
CHAPITRE 2. PROGRAMMATION 27
dans une zone de mémoire B nous n'avons qu'à écrire : B = A. Il existe des milliers de langages
de niveau élevé, pour tous goûts et toutes applications dont plus connus : C, C++, Pascal, Java,
python.
Les langages de bas niveau sont ceux-là qui sont proches de la machine, les instructions sont
élémentaires. Le langage assembleur est le plus connu des langages bas niveau.
manière avec laquelle les instructions sont traitées : les langages impératifs, les langages fonction-
nels.
Un langage impératif organise le programme sous forme d'une série d'instructions, regroupées par
condition est réalisée. Il s'agit historiquement des premiers langages, même si de nombreux lan-
sourent néanmoins d'un manque de souplesse étant donné le caractère séquentiel des instructions.
Un langage fonctionnel (parfois appelé langage procédural) est un langage dans lequel le pro-
gramme est construit par fonctions, retournant un nouvel état en sortie et prenant en entrée la
sortie d'autres fonctions. Lorsque la fonction s'appelle elle-même, on parle alors de récursivité.
CHAPITRE 2. PROGRAMMATION 28
Elle ore la possibilité de réutiliser le même code à diérents emplacements dans le pro-
Pourquoi opter pour la programmation procédurale ? En eet, dans le domaine minier, on réalise
et les langages qui sont utilisés disposent déjà d'un ensemble de fonctions liées à leur domaine
aux graphiques en 2D et 3D). Plusieurs logiciels sont utilisés pour la programmation procédurale.
3.1 Introduction
Il ore un langage simple, très ecace et optimisé pour le traitement des matrices
Pour entrer les éléments d'une matrice ou d'un vecteur, on n'a plus besoin d'écrire des
boucles (il en est de même pour les opérations associées aux matrices, car existant déjà
Il ore une série de fonctions très utiles et un module d'aide contenant la description de
Matlab propose son propre langage de programmation avec un ensemble de syntaxe ; des
toutes les structures de programmation d'un langage de programmation classique (tel que
le C)
29
CHAPITRE 3. MATLAB : PRÉSENTATIONS ET GÉNÉRALITÉS 30
Gestion des chiers : utilisation des commandes Linux/Unix pour la gestion des reper-
toires
exemple :
M-les ou script : Ce sont des chiers contenant des instructions Matlab. Matlab ore
un editeur pour créer et manipuler les chiers matlab (M-les). Pour exécuter un M-le,
installation sera réalisée lors des travaux pratiques. La gure qui suit présente l'environnement de
travail
3.2.2 Aide
Cette partie présente quelques commandes permettant d'avoir l'aide sur les fonctions Matlab
sur une console (terminal). Pour débuter l'initiation à Matlab, voici ce que vous devez réaliser :
Saisir la commande que who ; après avoir validé, dites ce fait que cette commande.
Saisir la commande whos, après avoir validé, dites également ce fait cette commande
realmin : Elle renvoie la valeur minimale du nombre réel reconnu par Matlab
realmax : Elle renvoie la valeur maximale du nombre réel reconnu par Matlab
ans : elle contient la valeur de la réponse à toutes les opérations que vous aurez à réaliser
à partir de la console
. Le point est utilisé pour écrire les nombres réels. Exemple : 2012.06
: Les deux points sont utilisés pour dénir la progression géométrique
' ' Les guillemets permettent de dénir les chaînes de caractères
% est utilisé pour écrire les commentaires
CHAPITRE 3. MATLAB : PRÉSENTATIONS ET GÉNÉRALITÉS 33
a= 3+2i
a=complex(4,5)
Les commandes real(a) et imag(a) permettent respectivement d'extraire les composantes réelle
et imaginaire de a.
Soustraction x - y x - y
Multiplication a x b a * b
Division x / y x / y
Puissance xy x^y
> Supérieur à | ou
= Diérent de
3.3 Opérateurs
_Exercice : En utilisant la function help, trouvez ce fait les fonctions mathématiques qui viennent
d'être énumérées.
CHAPITRE 3. MATLAB : PRÉSENTATIONS ET GÉNÉRALITÉS 35
Exercice : En utilisant la function help, trouvez ce fait les fonctions matricielles qui viennent
d'être énumérées.
2. Filtrage de signaux
3. Modélisation
4. Simulations
5. Analyse de données
6. Visualisation graphiques
Chapitre 4
Vecteurs et Matrices
4.1 Vecteurs
façons :
1. vecteur ligne par énumération des composantes :il s'agit de la dénition par défaut.
Exemple : v = [2 -1 6 9 12 15 19 13]
2. vecteur ligne par description : ici, il est question de dénir un pas qui permet d'in-
crémenter et dénir les valeurs des éléments du vecteur en fonction des valeurs initiale et
nale du vecteur :
Exemple : x= [0 : 0.5 : 5]
3. vecteur colonne : dans ce cas, elle correspond à le représentation du vecteur sur une
36
CHAPITRE 4. VECTEURS ET MATRICES 37
Position d'un élément du vecteur : Chaque élément d'un vecteur peut être repéré à
partir de sa position.
Pour ressortir un bloc d'élément, il sura d'utiliser les ` :' de la manière suivante : v(3 :6)
pour par exemple que pour le vecteur v, acher les éléments compris entre la troisième et
la sixième position.
Exemple : C=5*B
2. Maximum, minimum, taille et trie d'un vecteur :
(a) max(v) : est la fonction qui renvoie l'élément maximal d'un vecteur v
(b) min(v) : est la fonction qui renvoie l'élément minimal d'un vecteur v
(c) length(v) : est la fonction renvoie la taille d'un vecteur v
(d) sort(v) : est la fonction qui prend un vecteur v et le classe par ordre croissant
3. Addition, soustraction, concaténation, multiplication, division des vecteurs
(a) L'addition de deux vecteurs de même taille se fait via l'opérateur + (A+B)
CHAPITRE 4. VECTEURS ET MATRICES 38
(b) La soustraction de deux vecteurs de même taille se fait via l'opérateur (A-B)
4.2 Matrices
Une matrice est un ensemble de lignes comportant toutes le même nombre de colonnes.
ration.
Exemple : m1 = [1 2 3 ; 4 5 6 ; 7 8 9] ;
matrice
Position d'un élément d'une matrice : Comme les vecteurs, chaque élément d'une
matrice peut être retrouvée à partir de sa position. Une matrice M(n,m) étant caractérisée
par n lignes et m colonnes, M(i,j) va permettre de repérer l'élément qui est à la i ème ligne
et à la j ème colonne.
La division de deux matrices de même taille se fait via l'opérateur ./ (division point par
point)
Racine d'un polynôme :la fonction roots(f) permet de déterminer les racines de l'équa-
tion f(x)=0.
Exemple : f(x)= x2 − 2x + 1
f(x)=0 revient à faire roots([1 -2 1]).
et p2.
où p1 , p2, ..., désignent les pôles. Il reste alors à déterminer les ri , lespi etk(x). Ainsi,
a a a ... a1n x k
11 12 13 1 1
a21 a22 a23 ... a2n x2 k2
A= X= et K=
... ... ... ... ... .... ....
an1 an2 an3 ... ann xn kn
Trouver les solutions à ce système revient à resoudre : X=A\K.
4.4 Exercices
1. En utilisant Matlab, resoudre les équations suivantes :
(a) 2x2 − 4x + 1 = 0
(c) x3 − 1 = 0
(d) 6x2 − 2x + 1 = 0
(e) x2 − 4x + 4 = 0
(a) a=[2 3]
3. Trouver à partir des vecteurs résultants des fonctions suivantes, calculer les produits poly-
nômiaux correspondants
(a) (x-1)(x-2)
(a)
6
(4.3)
x4 + 6x3 + 11x2 + 6x
(b)
2x2 − 5x + 3
(4.4)
x3 − 1
(c)
x5 − 4x4 − 3x2 − 1
(4.5)
x4 − 2x3 − x2
5. Resoudre les systèmes d'équations linéaires suivants
(a)
3x1 + 2x2 + x3 = 4
−x1 + 5x2 + 2x3 = −1 (4.6)
4x1 − 2x2 + 3x3 = 3
(b)
3x1 + 2x2 + x3 − 3x4 = 4
−x1 + 5x2 + 2x3 + 2x4 = −1
(4.7)
4x1 − 2x2 + 3x3 − 6x4 = 3
4x − 2x + x − x = −3
1 2 3 4
(c)
3x1 + 2x2 + x3 − 3x4 − x5 = 4
−x1 + 5x2 + 2x3 + 2x4 − 3x5 = −1
4x1 − 2x2 + 3x3 − 6x4 + x5 = 3 (4.8)
4x1 − 2x2 + x3 − x4 + 2x5 = −3
4x1 − 2x2 + x3 − x4 − x5 = −6
CHAPITRE 4. VECTEURS ET MATRICES 43
3 4 4 4 5 8
6. Soient les matrices suivantes : A= 6 et B= 3
5 3 11 12
10 8 2 −1 5 2
(a) Pour chacune de ces matrices, déterminer :
Programmation MATLAB
5.1 Entrées-Sorties
Sous Matlab, on utilise deux fonctions d'entrées sorties :
1. La fonction disp : elle permet d'acher des valeurs à l'écran et est alors utilisée de deux
manières :
Dans le cas où, on veut imprimer un résultat avec un descriptif, qui comprend du texte et des
44
CHAPITRE 5. PROGRAMMATION MATLAB 45
aire=pi*r*r ;
sprintf
On peut obtenir le même résultat avec la fonction sprintf qui remplace l'opérateur de conca-
ténation pour construire la variable caractère message. On procède en déclarant une chaîne de
caractères compris entre ' ' suivie de la liste des variables à imprimer, variable1, variable2, ...
sprintf ('message',variable1,variable2,...)
r=2 ;
aire=pi*r*r ;
disp(message) ;
À l'intérieur de la chaîne de caractères message, on insère des caractères de contrôle "%" qui seront
remplacés par les valeurs des variables données en arguments. Dans l'exemple précédent, chaque
%f sera substitué par la valeur de la variable correspon- dante dans la liste. Dans cet exemple, %f
indique que la variable à imprimer est de type réel. D'autres possibilités sont les suivantes :
%c : un seul caractère
inputdlg
Elle est interactive avec plusieurs valeurs à saisir. Lorsqu'il y a plusieurs valeurs à saisir, on
C'est une chaîne de caractères par laquelle le programmeur informe l'usager des variables
à saisir. Associée à chaque valeur, il y a une case dans laquelle sera tapée la valeur corres-
pondante
3. options.Interpreter='tex'. Utilise latex pour formater le message (utile pour des sym-
boles spéciaux pour les variables, comme des formules utilisant l'alphabet grec)
Exemple :
message={'coecient a', 'coecient b', 'coecient c' } ;
titre='calcul des racines de : ax2 + bx + c' ;
nblignes=1 ;
options.Resize='on' ;
options.WindowStyle='normal' ;
options.Interpreter='tex'. ;
valDefaut={'0','0','0' } ;
N=inputdlg(message,titre,nblignes,valdefaut,options) ;
CHAPITRE 5. PROGRAMMATION MATLAB 47
a=str2double(N{1}) ;
b=str2double(N{2}) ;
c=str2double(N{3}) ;
roots([a, b, c]).
ginput
Un dispositif de saisie les plus intéressant est le mode graphique par le biais d'un curseur
à l'écran. On ouvreune fenêtre graphique qui devient l'entrée standard, et la fonction ginput
présente le curseur que l'usager positionne avec la souris sur le point de l'écran à saisir. Sa syntaxe
colonne x et y.
L'option " bouton" sert à indiquercomment se termine l'action. Après chaque clique, la
fonction retourne la valeur du bouton de la souris qui a été cliqué, avec la convention
suivante :
Sans l'option " bouton" : l'action se termine après que n points soient indiqués, mais avant
de faire la saisie.
Exemple d'application
clc ; clear all ; close all ;
gure(1)
hold on
but=1 ;
while but==1[xi,yi,but]=ginput(1) ;
plot (xi,yi,'ko') ;
end
hold o
pause
gure(2)
nbPLN=0 ;
but=1 ;
axis([0 10 0 10])
hold on
while but==1
nbPLN=nbPLN+1 ;[xi,yi,but]=ginput(1) ;
plot (xi,yi,'ko') ;
end
hold o
CHAPITRE 5. PROGRAMMATION MATLAB 49
5.2 M-les
Un script (ou M-le) est un chier (d'extension .m) contenant des instructions Matlab. Matlab
5.3.1 If
Sa syntaxe est la suivante :
if expression
Action
else if expression
Action
end
Exercice d'Application : Écrire un programme Matlab qui prend un nombre et dit s'il est pair
ou impair.
Solution :
x=input('entrez le nombre dont on veut vérier la parité') ;
if mod(x,2)==0
disp(x) ;disp(' est un nombre pair') ;
else
disp(x) ;disp(' est un nombre impair') ;
end
CHAPITRE 5. PROGRAMMATION MATLAB 50
5.3.2 Switch
Elle équivaut au branchement à choix multiple. Sa syntaxe :
switch (valeur)
case valeur1
Action1
case valeur2
Action2
...
case valeurn
Actionn
otherwise
Action
end.
Exercice d'Application : Écrire un programme Matlab qui prend un nombre et dit s'il est pair
ou impair.
Solution :
x=input('entrez le nombre dont on veut vérier la parité') ;
y=mod(x,2) ;
switch y
case 0
disp(x) ;disp(' est un nombre pair') ;
otherwise
disp(x) ;disp(' est un nombre impair') ;
end.
CHAPITRE 5. PROGRAMMATION MATLAB 51
5.4 Boucles
5.4.1 While
Elle correspond à la boucle tantque présentée en algorithmique. Sa syntaxe est la suivante :
while expression
Action end
Exercice d'Application : Écrire un programme qui permet d'entrer 15 entiers dans un tableau.
Solution :
i=1 ;
while i<=15
m(i)=input('entrez le i eme élément du tableau') ;
i=i+1 ;
end
disp(m) ;
5.4.2 For
Elle correspond à la boucle pour en algorithmique. Sa syntaxe est se présente de deux façons :
Exercice d'Application1 : Écrire un programme qui permet d'entrer 15 entiers dans un tableau.
Solution :
for i=1 :15
m(i)=input('entrez le i eme élément du tableau') ;
end
disp(m) ; Exercice d'Application2 : Modier l'exercice d'application1 en achant uniquement
les éléments qui sont à positions impaires.
Solution :
for i=1 :15
CHAPITRE 5. PROGRAMMATION MATLAB 52
5.5 Fonctions
Créer une fonction sous Matlab revient à deux choses :
return
Il à remarquer ici ce qui est dit en commentaire, apparaitra comme l'aide de la fonction.
Exercice d'Application : Créer la fonction carre qui prend un réel et qui renvoie son carré.
Solution :
Nous allons d'abord créer le carre.m :
edit carre.m
Dans ce chier nous, nous mettons :
function y=carre(x) ;
% cette fonction prend un réel et renvoie son carré.
y=x*x ;
return
CHAPITRE 5. PROGRAMMATION MATLAB 53
5.6 Exercices
1. Tous les algorithmes proposés en exercice au chapitre 1 doivent être traduit en programmes
Matlab.
x x2 x3
2. Écrire un programme Matlab qui calcule ex = 1 + 1!
+ 2!
+ 3!
+ ...
Chapitre 6
Graphismes
6.1 Graphiques à 2D
Avant de présenter le processus de réalisation des graphes en 2D, voici les fonctions qui seront
utilisées ici :
4. loglog : elle est identique à plot mais avec échelle logarithmique pour les deux axes
5. grid : ajoute une grille
6. xlabel : ajoute une légende pour l'axe des abcisses
7. ylabel : ajoute une légende pour l'axe des ordonnées
8. title : ajoute un titre
9. axis :modie les echelles
10. zoom :eectue un zoom
54
CHAPITRE 6. GRAPHISMES 55
Temps(heure) 0 2 4 6 8 10 12 14 16
◦
Température ( C) 20 23 30 33 32 37 34 39 36
x=[0 2 4 6 8 10 12 14 16] ;
y=[20 23 30 33 32 37 34 39 36] ;
plot(x,y)
grid on
xlabel('temps (en heures)')
ylabel('température (en ◦ c)')
title('Suivi de température en fonction du temps')
axis([ 0 18 10 40])
NB Il est à noter ici que nous pouvons également écrire un programme matlab qui resoud le
problème précédent.
pour réaliser la courbe. C'est le ces de '-', ' :', '+', 'co', '*'.
Solution :
t=0 :0.01 :1 ;
CHAPITRE 6. GRAPHISMES 56
y = t. ∗ (1 + t.2 )./10 ;
plot(t,y)
grid on
On peut également utiliser la fonction fplot pour tracer des graphes liées à des fonctions.
Exercice d'Application 3 : Réaliser le graphe de la fonction à une variable suivante :
y = 1 + 2x + sin(x2 )
Solution :
x=[1 5] ;
fplot('1+2*x+sin(x*x)', [1 5]).
Exercice : Tracer la fonction suivante : f(x)=5x3 − cos(x2 ) Une autre méthode consiste à créer
un M-le.
Solution :
% Création du chier dans lequel on va insérer le code Matlab de la fonction
edit f2.m
function y=f2(x) ;
y=sin(x)+0.5.*cos(3.*x)-0.2.*sin(5.*x) ;
fplot('f2',[0 10])
On peut également associer une couleur à la courbe ; Ainsi :
Exercice : Tracer la courbe. Pour chaque cas, utiliser les deux méthodes
1.
2
y = sin(x2 ) + 2x + (6.3)
x+1
CHAPITRE 6. GRAPHISMES 57
y jaune
m magnenta
c cyan
r rouge
g vert
b bleu
w blanc
k noir
2.
−x2
y = sin(x)e 10 , x = [−10 : 10 : 200] (6.4)
6.2 Graphiques à 3D
Avant de présenter le processus de réalisation des graphes en 2D, voici les fonctions qui seront
utilisées ici :
1. meshgrid
2. mesh
3. meshc
CHAPITRE 6. GRAPHISMES 58
4. meshz
5. contour
6. view
7. grid
8. xlabel
9. ylabel
10. zlabel
11. title
12. hold
13. gure
Exercice d'application 5
Soit la fonction suivante :
p
z = f (x, y) = x2 + 2y 2 , x=-2 :2, y=-3 :3
Solution
x=-2 :0.01 :2 ;
y=-3 :0.01 :3 ;
[X, Y ] = meshgrid(X, Y );
Z = sqrt(X.2 + 2. ∗ Y.2 ) ;
%où vous voyez le carré(de x par exemple, mettez . puis l'accent circonexe
mesh(X,Y,Z)
grid on
view(-80,10)
Il sura juste de remplacer mesh(x,y,z)
meshc(x,y,z), ensuite
par par meshz(x,y,z) et par
−x2 −y 2
1. z=f(x,y)=ye , x=[-2 :2]
2 2
ex +y
2. z=f(x,y)= √
2π
2
3. z=f(x,y)=(x + y 2 )cos(x) − sin(x2 )
2
4. z=f(x,y)=x − y2
2
5. z=f(x,y)=x +y
2 −x2 −0.3y 2
6. z=f(x,y)=80y e , −2.1 ≤ x ≤ 2.1, −6 ≤ y ≤ 6
x2 y2
7. z=f(x,y)=
a2
− b2
=1
1
13. f(x)= √ 2
2 x +1
15. x+3|
x
16. f(x)= -1 + ln | x+1
|