Cours et exercices - CASEs in INdustrial Engineering

publicité
Outils pour l’ingénieur
Pierre Lemaire
[email protected]
Grenoble INP – Génie Industriel, 1A
2016–2017
2
Certains énoncés ont été repris ou adaptés d’autres cours ou ouvrages : ces énoncés sont
la propriété de leur auteurs respectifs et sont reproduits ici pour l’usage dans ce cours uniquement. Je remercie donc pour leurs contributions : N. Gaudin (exercices 2.1, 2.2), P. David
(exercices 5.4 et 5.5). L’exercice 2.3 est adapté d’exercices du baccalauréat 2011 (France métropolitaine).
c P. Lemaire, 2015, 2016.
Released under license CC-BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.
0/)
Outils pour l’ingénieur
Grenoble INP – Génie Industriel, 1A, 2016–2017
Table des matières
I
Outils mathématiques
1
Dérivation et analyse de sensibilité
1.1 Dérivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.1 Définition et interprétation . . . . . . . . . . . . . . .
1.1.2 Calcul des dérivées . . . . . . . . . . . . . . . . . . . .
1.1.3 Formules de Taylor et approximation d’une fonction
1.2 Références et ressources . . . . . . . . . . . . . . . . . . . . .
1.3 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
3
4
5
Intégration
2.1 Intégration . . . . . . . . . . . . . . . . . . . . . .
2.1.1 Définition et interprétation des intégrales
2.1.2 Calcul des intégrales . . . . . . . . . . . .
2.2 Références . . . . . . . . . . . . . . . . . . . . . .
2.3 Exercices . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
Algèbre et éléments propres d’une matrice
3.1 Rappels d’algèbre . . . . . . . . . . . . . . . . . . . .
3.1.1 Vecteurs et bases . . . . . . . . . . . . . . . .
3.1.2 Applications linéaires et matrices . . . . . . .
3.1.3 Cas des endomorphismes (matrices carrées)
3.1.4 Produits scalaires et normes . . . . . . . . . .
3.2 Éléments propres d’une matrice . . . . . . . . . . . .
3.3 Références . . . . . . . . . . . . . . . . . . . . . . . .
3.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . .
Algèbre de Boole
4.1 Algèbre de Boole . . . . . . . . . . . .
4.2 Fonctions logiques . . . . . . . . . . .
4.3 Systèmes logiques combinatoires . . .
4.4 Formes normales, formes canoniques
4.5 Tableaux de Karnaugh . . . . . . . . .
4.6 Références . . . . . . . . . . . . . . . .
4.7 Exercices . . . . . . . . . . . . . . . . .
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
7
7
8
8
9
10
.
.
.
.
.
13
13
13
13
14
14
.
.
.
.
.
.
.
.
17
17
17
17
18
19
19
20
21
.
.
.
.
.
.
.
25
25
25
26
27
28
30
31
4
5
II
6
TABLE DES MATIÈRES
Transformation de Laplace
5.1 Définition et propriétés fondamentales . . . . . . . . . . . . . . .
5.2 Transformées de Laplace usuelles . . . . . . . . . . . . . . . . . .
5.3 Transformation inverse . . . . . . . . . . . . . . . . . . . . . . . .
5.3.1 Inverse de la transformée de Laplace . . . . . . . . . . .
5.3.2 Calcul pratique de l’inverse . . . . . . . . . . . . . . . . .
5.3.3 Calcul par décomposition par pôles . . . . . . . . . . . .
5.3.4 Utilisation pour la résolution d’équations différentielles
5.4 Références . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Outils informatiques
33
33
34
34
36
36
36
37
38
39
41
GNU R
6.1 Une brève introduction à R . . . . . . . . . . . . . . . .
6.1.1 L’interpréteur de commandes . . . . . . . . . .
6.1.2 Types et variables . . . . . . . . . . . . . . . . .
6.1.3 Particularités du calcul vectoriel et matriciel .
6.1.4 Fonctions et éléments de programmation en R
6.1.5 Ressources complémentaires . . . . . . . . . .
6.1.6 Aide mémoire R . . . . . . . . . . . . . . . . . .
6.2 Prise en main de R (et RStudio) . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
43
43
43
44
44
46
47
48
51
7
Traitement de texte
7.1 Un mot sur les formats de documents . . . . . . . . . . . . . . . . . . . . . . .
7.2 Structure logique et mises en forme . . . . . . . . . . . . . . . . . . . . . . . . .
7.3 Mise en œuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
57
57
58
8
Tableur
8.1 Usage et limites des tableurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2 Fonctionnalités d’un tableur . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.3 Mise en œuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
59
59
60
60
9
Communication numérique
9.1 Protocoles de communication . . . . . . . . .
9.1.1 IP (Internet Protocol) . . . . . . . . . .
9.1.2 TCP (Transmission Control Protocol)
9.1.3 HTTP (HyperText Transfert Protocol)
9.1.4 FTP (File Transfert Protocol) . . . . . .
9.1.5 Courrier électronique . . . . . . . . .
9.2 Documents web . . . . . . . . . . . . . . . . .
9.2.1 HTML . . . . . . . . . . . . . . . . . .
9.2.2 CSS . . . . . . . . . . . . . . . . . . . .
9.2.3 JavaScript . . . . . . . . . . . . . . . .
9.2.4 Au delà ? . . . . . . . . . . . . . . . . .
9.3 En guise de conclusion . . . . . . . . . . . . .
63
63
63
63
64
64
64
64
65
65
65
66
66
Outils pour l’ingénieur
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Grenoble INP – Génie Industriel, 1A, 2016–2017
Première partie
Outils mathématiques
5
C HAPITRE 1
Dérivation et analyse de sensibilité
1.1
1.1.1
Dérivation
Définition et interprétation
Définition 1.1. Taux d’accroissement. Soit f une fonction à valeurs réelles, définie sur un intervalle I. Soit x0 ∈ I et soit h tel que x0 + h ∈ I. On appelle taux d’accroissement de f en x0 avec
(x0 )
un pas h la quantité : f (x0 +h)−f
.
h
Définition 1.2. Dérivabilité et fonctions dérivées. Soit f une fonction à valeurs réelles, définie
sur un intervalle I. Soit x0 ∈ I. Si le taux d’accroissement en x0 admet une limite finie lorsque h
tend vers 0, alors la fonction f est dite dérivable en x0 . Dans ce cas, on définit le nombre dérivé
(x0 )
de f en x0 : f 0 (x0 ) = limh→0 f (x0 +h)−f
.
h
La fonction dérivée (ou simplement dérivée) de f est la fonction : x 7→ f 0 (x) (définie partout
où le nombre dérivé est défini). Si la fonction dérivée est elle-même dérivable, alors la dérivée de la
dérivée de f s’appelle dérivée seconde de f .
Définition 1.3. Classe d’une fonction. Une fonction continue est dite de classe C 0 . Une fonction dérivable dont la dérivée est continue dite de classe C 1 . Plus généralement, une fonction n fois
dérivable dont la dérivée n-ième est continue est dite de classe C n .
La dérivée est une notion mathématique qui permet de mesurer, localement, la pente
d’une fonction. Ainsi, un taux d’accroissement représente la pente moyenne (entre x0 et
x0 +h) tandis que la dérivée en x0 représente la pente instantanée. C’est un indicateur simple
mais précieux dont l’existence garantit que la fonction est régulière et qui permet même de
connaître le sens de variation de f autour de x0 :
Proposition 1.1. Soit une fonction f . Si f est dérivable en x0 , alors elle est continue en x0 . De
plus, si f 0 (x0 ) > 0 alors f est (localement) croissante en x0 ; si f 0 (x0 ) < 0 alors f est (localement)
décroissante en x0 .
7
8
1.1. Dérivation
1.1.2
Calcul des dérivées
Proposition 1.2. Dérivées des fonctions usuelles. (Table 1.1.)
Fonction
Domaine de
définition
k, k ∈ R (constante) R
xn , n ∈ N
R si n ≥ 0
R∗ si n < 0
α
x ,α ∈ R
R+∗
ex
R
ln(x)
R+∗
sin(x)
R
cos(x)
R
tan(x)
R\{ π2 + πZ}
Domaine de
dérivabilité
R
R si n ≥ 0
R∗ si n < 0
R+∗
R
R+∗
R
R
R\{ π2 + πZ}
Dérivée
0
n xn−1
α xα−1
ex
1
x
cos(x)
− sin(x)
1 + tan2 (x) =
1
cos2 (x)
TABLE 1.1 – Dérivées des fonctions usuelles
Proposition 1.3. Règles de calcul des dérivées.
— Soit λ ∈ R. Si f est dérivable sur I, alors λ f est dérivable sur I et (λ f )0 = λ f 0 .
— Si f et g sont deux fonctions dérivables sur I alors f +g est dérivable sur I et (f +g)0 = f 0 +g 0 .
— Si f et g sont deux fonctions dérivables sur I, alors f × g est dérivable sur I et (f × g)0 =
f 0g + f g0.
— Si f et g sont deux fonctions dérivables sur I et si g ne s’annule pas sur I, alors fg est dérivable
0
0
g
sur I et ( fg ) = f g−f
.
g2
— Si f est dérivable sur I, si g est dérivable sur J et si ∀x ∈ I, f (x) ∈ J ; alors g ◦ f est dérivable
sur I et (g ◦ f )0 = f 0 × g 0 ◦ f .
1.1.3
Formules de Taylor et approximation d’une fonction
Théorème 1.1. Formules de Taylor Soit f une fonction de classe C n+1 sur un intervalle [a, b].
∀x ∈ [a, b], ∀h tel que x + h ∈ [a, b] : il existe ξ ∈ [min(x, x + h), max(x, x + h)] tel que :
f (x + h) =
n
X
hk
k=0
k!
f (k) (x) +
hn+1 (n+1)
f
(ξ)
(n + 1)!
Les formules de Taylor permettent d’approcher n’importe quelle fonction (suffisamment
dérivable) par un polynôme en h. Le degré de ce polynôme peut être choisit arbitrairement et
hn+1 (n+1)
l’erreur commise ( (n+1)!
f
(ξ)) est négligeable pour h «suffisamment petit». En particulier,
on a :
Outils pour l’ingénieur
Grenoble INP – Génie Industriel, 1A, 2016–2017
Chapitre 1. Dérivation et analyse de sensibilité
9
1
0.5
0
-0.5
-1
-1.5
0
0.5
1
1.5
2
F IGURE 1.1 – Approximations linéaire (verte) et quadratique (bleue) d’une fonction (rouge)
Définition 1.4. Approximation linéaire. L’approximation linéaire en x d’une fonction f , dérivable, est la droite d’équation y(h) = f (x + h) = f (x) + h f 0 (x).
Cette approximation peut aussi être déterminée directement à partir de la définition de
la dérivée. C’est la droite tangente à f en x, et c’est la droite qui «ressemble le plus à f » en x
(voir figure 1.1). On peut généraliser en considérant la parabole tangente à f en x :
Définition 1.5. Approximation quadratique. L’approximation quadratique en x d’une fonc2
tion f , deux fois dérivable, est la parabole d’équation y(h) = f (x + h) = f (x) + h f 0 (x) + h2 f 00 (x).
1.2
Références et ressources
— Dérivée (sur Wikipedia) : définitions et propriétés
— Histoire du calcul infinétismal (sur Wikipedia) : vision historique et construction de
la notion de dérivée
— WolframAlpha : ressources variées, y compris le calcul formel des dérivées
Grenoble INP – Génie Industriel, 1A, 2016–2017
Outils pour l’ingénieur
10
1.3. Exercices
1.3
Exercices
E XERCICE 1.1 : C ALCULS DE DÉRIVÉES
[1] Pour les fonctions ci-dessous, indiquez le domaine de définition, le domaine de dérivabilité
et calculez la fonction dérivée.
1. f1 (x) = x3 − 7x2 + 5x − 1.
5. f5 (x) = (2x − 3)(4x + 5).
2. f2 (x) = x2 + 3x + 1.
6. f6 (x) =
3. f3 (x) = (x2 + 3x + 1)3 .
7. f7 (x) = esin(x) .
√
8. f8 (x) = x2 − 1.
4. f4 (x) = 3x − 5 −
1
.
(1−3x)2
x2 −5x+7
.
3(x2 +1)
E XERCICE 1.2 : F ORMULES DE DÉRIVATION
[1] À partir du formulaire de dérivées, retrouvez les formules de dérivation suivantes :
p
u0 (x)
1. si f (x) = x1 , alors f 0 (x) = −1
5.
si
f
(x)
=
u(x), alors f 0 (x) = √
.
.
2
x
2 u(x)
√
1
0
2. si f (x) = x, alors f (x) = 2√x .
3. si f (x) = ax , alors f 0 (x) = ax ln(a).
4. si f (x) =
1
,
u(x)
0
alors f (x) =
6. si f (x)
−u0 (x)
.
u(x)2
=
u(x)
,
v(x)
alors f 0 (x)
=
u0 (x)v(x)−u(x)v 0 (x)
.
v(x)2
E XERCICE 1.3 : S ENSIBILITÉ DE L’ INDICE DE MASSE CORPOREL
L’indice de masse corporel (IMC) est une grandeur couramment utilisée pour quantifier
la corpulence d’une personne. Le calcul de l’IMC est donné par :
IM C =
M
T2
où M est la masse de la personne (kg) et T et sa taille (m).
Différents seuils ont été définis par les médecins afin de qualifier la corpulence d’une
personne. Ce n’est pas le sujet de cet exercice ; nous allons plutôt nous préoccuper de la
sensibilité de cette grandeur à la précision des mesures effectuées.
[1] Déterminez la sensibilité (variation) de l’IMC pour des petites variations de taille et de
masse.
[2] Un adulte mesure 1,80m et pèse 70kg. Pour avoir un IMC précis, vaut-il mieux se tromper
de 1kg ou de 1cm ?
[3] Même question pour un enfant de 1,20m et 19kg.
[4] Pour une taille donnée, quel est le seuil de masse tel qu’une erreur de 1cm soit plus importante qu’une erreur d’1kg ?
Outils pour l’ingénieur
Grenoble INP – Génie Industriel, 1A, 2016–2017
Chapitre 1. Dérivation et analyse de sensibilité
11
E XERCICE 1.4 : M ODÈLE DE C OBB -D OUGLAS
En 1928, Charles Cobb (un statisticien) et Paul Douglas (un économiste) ont proposé de
modéliser le niveau de production Y obtenu selon la quantité de capital K et la quantité
de travail L utilisées avec la formule suivante : Y = cK α Lβ . Ils ont montré, statistiquement, qu’une telle fonction était en effet adaptée pour un grand nombre de situations (en
particulier, on peut ainsi modéliser le niveau de production de nombreuses entreprises, les
coefficients c, α et β étant seulement à adapter au secteur d’activité). Elle est depuis très utilisée en économie et
généralisée pour lier une «sortie» à des «facteurs» selon la formule
Qa été
αi
générique : Y = c i Xi , αi > 0. Le modèle de Cobb-Douglas implique toutefois des propriétés très fortes pour la situation représentée, que nous allons étudier ci-après, dans le cas
fréquent des deux facteurs K et L avec α = 1 − β, soit la fonction :
Y = cK α L(1−α)
avec α ∈]0; 1[.
Dans la suite, en plus de montrer formellement les propriétés demandées, vous commenterez leur signification par rapport à la situation modélisée.
[1] Montrez que les rendements d’échelle sont constants (si on multiplie toutes les entrées par
un certain facteur, la sortie est multipliée par ce même facteur).
[2] Déterminez les productivités marginales de chacun des facteurs (i.e. la variation de production pour une petite variation d’un facteur). Comment évoluent ces productivités marginales
lorsque l’un ou l’autre des facteurs varient ?
[3] Déterminez la substitution entre les facteurs (si un facteur varie, comment doit varier l’autre
pour que le niveau de production reste inchangé) ?
Grenoble INP – Génie Industriel, 1A, 2016–2017
Outils pour l’ingénieur
C HAPITRE 2
Intégration
2.1
2.1.1
Intégration
Définition et interprétation des intégrales
Définition 2.1. Primitive. Soit f une fonction à valeurs réelles, continue sur un intervalle [a; b]. F
est une primitive de f si f est la fonction dérivée de F .
Définition 2.2. Intégrale. L’intégrale de f sur [a; b] est définie comme la quantité F (b) − F (a),
avec F une primitive de F quelconque.
Il existe une infinité de primitives pour une même fonction, qui ne différent que d’une
constante ; le choix de F ne change donc pas la valeur de l’intégrale. L’intégrale d’une fonction correspond à l’aire sous sa courbe (comptée positivement si la fonction est positive,
négativement sinon). Elle permet définir la valeur moyenne d’une fonction :
Définition 2.3. Moyenne d’une fonction. La moyenne de la fonction f sur un intervalle [a; b] est
Rb
1
définie par la quantité : b−a
f (x)dx.
a
2.1.2
Calcul des intégrales
Proposition 2.1. Primitives des fonctions usuelles. (Table 2.1.)
Fonction
Primitive Remarque Fonction
k ∈ R (const.) k x
ln(x)
xn+1
n
x
+C
n 6= −1
sin(x)
n+1
1
ln(|x|)
+
C
x
=
6
0
cos(x)
x
x
x
e
e +C
Primitive
Remarque
x ln(x) − x + C
− cos(x) + C
sin(x) + C
TABLE 2.1 – Primitives des fonctions usuelles. (c est une constante quelconque.)
13
14
2.2. Références
Proposition 2.2. Règles de calcul et propriétés des intégrales Soient f et g deux fonctions
continues
R a réels de I. R b
R a sur I et a, b, c trois
— a f (x)dx = 0 et b f (x)dx = − a f (x)dx
Rb
Rc
Rc
— relation de Chasles : a f (x)dx + b f (x)dx = a f (x)dx
Rb
Rb
Rb
— linéarité : a λ f (x) + µ g(x)dx = λ a f (x)dx + µ a g(x)dx
Rb
Rb
— si ∀x ∈ [a; b]f (x) ≤ g(x) alors a f (x)dx ≤ a g(x)dx
Proposition 2.3. Intégration par parties. Soient u et v deux fonctions de classe C 1 sur le segment
[a; b]. Alors :
Z b
Z b
0
b
u0 (x)v(x)dx.
u(x)v (x)dx = [u(x)v(x)]a −
a
a
Proposition 2.4. Changement de variable. Soient f une fonction continue et φ une fonction de
classe C 1 sur le segment [a; b] et dont l’image est contenu dans le domaine de de définition de f .
Alors :
Z b
Z φ(b)
f (φ(x))φ0 (x)dx
f (x)dx =
φ(a)
2.2
a
Références
— http://fr.wikipedia.org/wiki/Intégration_(mathématiques)
2.3
Exercices
E XERCICE 2.1 : C ALCUL D ’ INTÉGRALES
[1] Calculez les intégrales ci-dessous.
R1
R1
1. 0 x2 + 3x + 5dx.
4. 0 x2x+1 dx.
R1
2. 0 (x2 + 1)dx.
R π/2 cos(x)
Rπ
5. 0 1+sin(x)
dx
3. 0 x2 cos(x)dx.
6.
R3
7.
R2
dx
2 x(ln(x))3
(ln(x))p
dx
x
1
E XERCICE 2.2 : T EMPÉRATURE MOYENNE
Un corps de température T0 est placé dans un environnement de température Ta . Sa
température est donnée en fonction du temps par la loi de refroidissement de Newton :
T (t) = Ta + (T0 − Ta )e−kt ,
Outils pour l’ingénieur
Grenoble INP – Génie Industriel, 1A, 2016–2017
Chapitre 2. Intégration
15
où k est une constante.
[1] Calculez la valeur moyenne Tm du corps entre les temps t1 et t2 .
[2] On place un récipient contenant une solution en ébullition de température 180o dans une
enceinte thermostatée à 37o . On a déterminé empiriquement k = 0, 7h−1 . Quelle est la température moyenne du récipent pendant la première heure ? Pendant la deuxième heure ?
0
1
2
E XERCICE 2.3 :
Pour tout entier naturel n supérieur ou égal à 1, on désigne par fn la fonction définie sur
R par :
fn (x) = xn e−x .
On note Cn sa courbe représentative dans un repère (0,~i, ~j) du plan.
Sur le graphique de la figure 2.1, on a représenté une courbe Ck , où k est un entier naturel
non nul, sa tangente Tk au point d’abscisse 1 et la courbe C3 . La droite Tk coupe l’axe des
abscisses au point A de coordonnées ( 54 ; 0).
0
1
2
3
4
5
−2
−1
−1
F IGURE 2.1 – Tracé de Ck (vert), C3 (bleu) et Tk (rouge).
Partie A
[1] Déterminez la limite de la fonction f1 en −∞ et en +∞.
[2] Étudiez les variations de la fonction f1 et dresser le tableau de variations de f1 .
[3] À l’aide du graphique, justifiez que k est un entier supérieur ou égal à 2.
[4] Démontrez que, pour n ≥ 1, toutes les courbes Cn passent par le point O et un autre point
dont on donnera les coordonnées.
[5] Vérifiez que, pour tout entier naturel n supérieur ou égal à 2, et pour tout réel x : fn0 (x) =
xn−1 (n − x)e−x .
[6] Sur le graphique, la fonction f3 semble admettre un maximum atteint pour x = 3. Valider
cette conjecture à l’aide d’une démonstration.
[7] Démontrez que la droite Tk coupe l’axe des abscisses au point de coordonnées ( k−2
; 0).
k−1
[8] En déduire, à l’aide des données de l’énoncé, la valeur de l’entier k.
Grenoble INP – Génie Industriel, 1A, 2016–2017
Outils pour l’ingénieur
16
2.3. Exercices
Partie B
On désigne par (In ) la suite définie, pour tout entier n supérieur ou égal à 1, par :
1
Z
xn e−x dx.
In =
0
[9] Vérifiez que la fonction g définie sur R par g(x) = −(x + 1)e−x est une primitive de f1 .
[10] En déduire la valeur de I1 .
0.2
0.3
0.4
0.5
Sur le graphique de la figure 2.2, on a représenté les portions des courbes C1 , C2 , C3 , C10 ,
C20 , C30 comprises dans la bande définie par 0 ≤ x ≤ 1.
C1
C2
C3
0.1
C10
C20
0.0
C30
0.0
0.2
0.4
0.6
0.8
1.0
F IGURE 2.2 – Tracé de différentes courbes Ck .
[11] Formulez une conjecture sur le sens de variation de la suite (In ). Démontrez cette conjecture.
[12] En déduire que la suite (In ) est convergente, et déterminer limn→+∞ In .
? [13] Pour n ≥ 1, déterminez une formule de récurrence liant In à In−1 .
? [14] Faire un programme informatique (ou un tableur) qui calcule I20 à partir de la formule de la
question précédente. Commentez la valeur obtenue.
??? [15] Expliquez le problème survenu à la question précédente, et calculez une valeur correcte de
I20 .
Outils pour l’ingénieur
Grenoble INP – Génie Industriel, 1A, 2016–2017
C HAPITRE 3
Algèbre et éléments propres d’une matrice
3.1
3.1.1
Rappels d’algèbre
Vecteurs et bases
Nous considérons l’ensemble Rn , en tant qu’espace vectoriel (sur R). Un vecteur ~v est ainsi
un élément quelconque de Rn , dont les éléments sont notés v1 , v2 , . . . , vn . On note ~0n le vecteur nul de Rn .
Définition 3.1. Familles libres, génératrices. Soit F = {~v1 , ~v2 , . . . , ~vk } une famille de vecteurs.
P
F est dite libre si et seulement si ki=1 λi~vi = 0~n ⇒ λ1 = λ2 = . . . = λk = 0 ; ses vecteurs sont
alors dits linéairement indépendants.
F est dite génératrice si et seulement si tout vecteur peut s’écrire comme combinaison des vecP
teurs de cette famille, c’est-à-dire : ∀~x ∈ Rn , ∃(λ1 , λ2 , . . . , λk ) : ~x = ki=1 λi~vi .
Définition 3.2. Base. Une famille de vecteurs est une base si et seulement si elle est libre et génératrice. La base canonique de Rn est la famille de vecteurs {~vi , i = 1..n}, où chaque ~vi n’a que des 0,
sauf sa ième composante, qui est 1.
Propriété 3.1.
Une famille libre a au plus n vecteurs. Une famille libre de n vecteurs est une base.
Une famille génératrice a au moins n vecteurs. Une famille génératrice de n vecteurs est une base.
3.1.2
Applications linéaires et matrices
Définition 3.3. Application linéaire Une application L de Rn dans Rp est une application
linéaire (ou morphisme) si et seulement si : ∀(~x, ~y ) ∈ Rn , ∀(λ, µ) ∈ R2 : L(λ~x + µ~y ) =
λL(~x) + µL(~y ).
Définition 3.4. Une matrice à coefficients dans R de dimension (m, n) est un tableau de m
lignes et n colonnes dont chaque élément est un réel. Pour une matrice A, on note en général ai,j
l’éléments de la ligne i, colonne j.
17
18
3.1. Rappels d’algèbre
Proposition 3.1. Toute application linéaire L de E = Rn dans F = Rp s’écrit sous forme d’une
matrice M de dimension (p, n). Les colonnes de M sont les images par L des vecteurs d’une base de
E exprimées dans une base de F . Pour des bases de E et de F données : M est unique et il existe un
isomorphisme entre les applications linéaires et les matrices.
Propriété 3.2. Calcul matriciel. Soit deux matrices A et B correspondant à deux applications
linéaires F et G exprimées dans les mêmes bases :
— Soit un réel λ ; la matrice Q = λA correspond à l’application λL.
Calcul : ∀(i, j) : qi,j = λai,j .
— La somme matricielle A + B est la matrice Q de l’application F + G.
Calcul : ∀(i, j) : qi,j = ai,j + bi,j .
— Le produit matriciel AB
P est la matrice Q de l’application composée Fo G.
Calcul : ∀(i, j) : qi,j = k ai,k bk,j .
Définition 3.5. Rang. Le rang d’une matrice est le nombre maximum de lignes (ou de colonnes)
formant une famille libre.
3.1.3
Cas des endomorphismes (matrices carrées)
Définition 3.6. Endomorphisme. Un endomorphisme est une application linéaire d’un ensemble
dans lui-même. Les matrices d’endomorphismes sont les matrices carrées (de taille n).
On note In la matrice identité de taille n ; ses coefficients diagonaux sont 1 et tous les autres
sont 0. In correspond à l’application identité.
Définition 3.7. Inverse. Une matrice carrée (de taille n) A est inversible, si et seulement si il existe
une matrice M telle que AM = M A = In . M est l’inverse de A, noté A−1 .
L’inverse d’une matrice se calcule efficacement à la main avec la méthode du pivot de Gauss
(ou élimination de Gauss-Jordan).
Propriété 3.3.
La matrice inverse, si elle existe, est unique.
Une matrice est inversible si et seulement si elle est de plein rang (son rang est n).
Une matrice est inversible si et seulement si son déterminant est différent de 0.
Un système A~x = ~b a une solution unique si et seulement si A est inversible. Sinon le système
n’a aucune ou une infinité de solutions.
Définition 3.8. Matrice de passage. La matrice de passage d’une base B à une base B 0 est la
matrice P dont les colonnes sont les vecteurs de B 0 exprimés dans la base B.
Outils pour l’ingénieur
Grenoble INP – Génie Industriel, 1A, 2016–2017
Chapitre 3. Algèbre et éléments propres d’une matrice
19
Propriété 3.4. Soit P la matrice de passage d’une base B à une base B 0 .
P est inversible et son inverse est la matrice de passage de B 0 à B.
Un vecteur ~x exprimé dans la base B a pour coordonnées P −1~x dans la base B 0 .
3.1.4
Produits scalaires et normes
n
Définition 3.9. Produit scalaire canonique. Le produit scalaire (canonique)
Pn de R est l’application qui aux vecteurs ~x = [ x1 , . . . , xn ] et ~y = [ y1 , . . . , yn ] associe : (~x|~y ) = i=1 xi yi = ~x> ~y .
Définition 3.10. Norme vectorielle. Une norme (vectorielle) est une application de Rn dans R+ ,
qui a tout vecteur ~x ∈ Rn fait correspondre un nombre k~xk et qui vérifie :
1. k~xk = 0 ⇐⇒ ~x = ~0 ;
2. ∀~x ∈ Rn , ∀λ ∈ R : kλ~xk = |λ| k~xk ;
3. ∀~x, ~y ∈ Rn : k~x + ~y k ≤ k~xk + k~y k.
Quelques normes classiques de Rn :
P
1. la norme L1 : k~xk1 = ni=1 |xi | ;
2. la norme L2 (euclidienne) : k~xk2 =
pPn
i=1
x2i =
p
(~x|~x) ;
3. la norme L∞ : k~xk∞ = maxni=1 |xi |.
Définition 3.11. Norme matricielle induite. À partir d’une norme vectorielle k k, on définit une
kA~
xk
norme matricielle induite : kAk = max~x6=0 k~xk = maxk~xk=1 kA~xk.
Le produit scalaire mesure, entre autre, l’alignement de deux vecteurs. En effet, on a :
(~x|~y ) = k~xk2 k~y k2 cos(α), où α est l’angle entre les deux vecteurs. Ainsi, le produit scalaire est
maximal lorsque les vecteurs sont alignés, de même sens ; minimal lorsqu’ils sont alignés,
de sens opposés ; nul lorsqu’ils sont orthogonaux.
Une norme vectorielle est simplement une notion de distance.
Une norme matricielle mesure la déformation maximale provoquée par une matrice.
3.2
Éléments propres d’une matrice
Dans toute cette section, on ne considère que des matrices carrées, d’ordre n.
Définition 3.12. Valeur propre, vecteur propre. Un réel λ est valeur propre de A si et seulement si il existe ~v ∈ Rn , non nul, tel que : A~v = λ~v ; un tel vecteur ~v est qualifié de vecteur propre
de A pour la valeur propre λ.
Grenoble INP – Génie Industriel, 1A, 2016–2017
Outils pour l’ingénieur
20
3.3. Références
Définition 3.13. Spectre. Le spectre d’une matrice A, noté Sp(A), est l’ensemble de ses valeurs
propres. Le rayon spectral d’une matrice A, noté ρ(A), est le module de sa plus grande valeur
propre.
Les vecteurs propres indiquent les directions caractéristiques de la matrice (celles qui sont
préservées), et les valeurs propres quantifient les déformations le long de ces directions. Les
valeurs propres complexes correspondent à des phénomènes de rotations.
Définition 3.14. Polynôme caractéristique. Le polynôme PA (x) = det(A − xIn ) est le polynôme caractéristique de la matrice A. Son degré est n.
Proposition 3.2.
λ est valeur propre de A si et seulement si il est racine de PA (x).
L’ensemble des vecteurs propres associés à λ est défini par le système : (A − λIn )~v = ~0.
Définition 3.15. Matrice diagonalisable. Une
si et seulement si il
 matrice est diagonalisable

λ1


...
.
existe une base où son expression est de la forme 


λn
0
0
Proposition 3.3. k vecteurs propres pour k valeurs propres distinctes forment une famille libre.
Par conséquent, une matrice qui a n valeurs propres distinctes est diagonalisable. Plus
généralement :
Proposition 3.4. Une matrice est diagonalisable si et seulement si son polynôme caractéristique est
scindé et que pour toute valeur propre, la multiplicité géométrique est égale à la multiplicité algébrique
Proposition 3.5. Une matrice symétrique (réelle) est diagonalisable (dans R)
3.3
Références
— A.-M. Spalanzani, Précis de mathématiques pour la gestion et l’économie, PUG, 2000.
— Wikipedia, http://fr.wikipedia.org, notamment : Espace vectoriel, Vecteur, Matrice, Élimination de Gauss-Jordan, Produit scalaire, Valeurs et vecteurs propres.
— Mathworld, http://mathworld.wolfram.com.
Outils pour l’ingénieur
Grenoble INP – Génie Industriel, 1A, 2016–2017
Chapitre 3. Algèbre et éléments propres d’une matrice
3.4
21
Exercices
E XERCICE 3.1 : D ÉFORMATIONS D ’ IMAGES
On veut transformer une image en la déformant, comme le montrent les figures cidessous :
À chaque étape, la même transformation est effectuée : l’image est écrasée selon la diagonale
Sud-Ouest / Nord-Est. Les éléments de cette diagonale ne sont donc pas modifiés, tandis
que les autres éléments en sont rapprochés, selon un « facteur d’écrasement » α < 1.
Le repère de R2 dans lequel les points de l’image sont exprimés a pour
origine le coin Sud-Ouest et est orienté par la base orthonormale B =
{e~1 , e~2 }, comme indiqué sur la figure ci-contre.
Le but de cet exercice est de déterminer une matrice A permettant de
réaliser cet écrasement, c’est-à-dire qu’un point z~0 de l’image écrasée sera
obtenu à partir d’un point ~z = [ x; y ]> de l’image d’origine en faisant
z~0 = A~z.
[1] Déterminez un vecteur ~u, invariant par A.
[2] Complétez ~u pour construire une base B 0 de R2 . Afin que A s’écrive simplement dans B 0 , on
choisira un vecteur orthogonal à ~u.
[3] Donnez l’expression de A dans la base B 0 (pour α = 0, 7).
[4] Déterminez la matrice de changement de base permettant de passer de la base d’origine B à
la base proposée B 0 .
[5] En déduire une expression de A dans la base d’origine.
? [6] On considère la suite de matrices définie par : ∀n ≥ 0 : Un = An . Montrez que la suite Un
tend vers une matrice de projecteur, à préciser. Comment cela se traduit-il en termes d’image
limite ?
[7] Montrez que la transformation effectuée est réversible. Calculez sa réciproque.
Certains logiciels de manipulation d’images permettent de déformer une image grâce à
une matrice de transformation de taille 3. Les coordonnées d’un point sont transformées de
la manière suivante :
 0 
 
sx rx tx
x
x
 y 0  =  ry sy ty   y  ,
0 0 1
1
1
où sx , rx , ry , sy , tx et ty sont des coefficients choisis par l’utilisateur.
? [8] Montrez que cette transformation permet de faire : des rotations, des homothéties et des
translations. Quel est l’intérêt d’avoir ajouté une troisième dimension ?
? [9] De manière générale, déterminez les conditions pour qu’une matrice d’ordre n corresponde
à une translation dans Rn . Montrez qu’une translation, dans Rn , d’un vecteur ~t arbitraire,
peut être réalisée grâce à une matrice d’ordre n + 1 à préciser.
Grenoble INP – Génie Industriel, 1A, 2016–2017
Outils pour l’ingénieur
22
3.4. Exercices
? [10] Comment créer un court dessin-animé d’une chûte dans le vide, à partir de
l’image fixe ci-contre ? (Pour donner un effet de chûte, il faut que le personnage
tourne autour du centre de l’image en devenant de plus en plus petit.)
E XERCICE 3.2 : S YSTÈME DYNAMIQUE DISCRET
Un système dynamique discret est un modèle de la forme ~xk+1 = A~xk , c’est-à-dire ~xk =
Ak ~x0 , pour la condition initiale ~x0 . Dans ce formalisme : k est l’instant considéré (le temps
s’écoule par pas discret (d’une unité)) ; ~xk est le vecteur d’état du système, caractéristique du
phénomène à l’instant k ; et A est la matrice de transition du système, qui détermine comment
le phénomène évolue.
On aimerait déterminer l’état limite du système, c’est-à-dire sa limite quand k tend vers
l’infini. Dans la suite, on suppose que la matrice A est diagonalisable avec n valeurs propres
distinctes |λ1 | > |λ2 | > ... > |λn |.
[1] Justifiez qu’il P
existe une base de vecteurs propres
P ~v1 , ~v2 , . . . , ~vn et donc qu’il existe c1 , c2 , . . . , cn
tels que ~x0 = ni=1 ci~vi . En déduire que ~xk = ni=1 ci λki~vi .
[2] En déduire que, si c1 6= 0, alors limk→∞ ~xk = limk→∞ c1 λk1 ~v1 .
[3] En déduire, pour c1 6= 0, l’état limite du système.
[4] On appelle trajectoire issue de ~x0 d’un système dynamique la suite {~xk }k≥0 obtenue à partir
de ~x0 . Caractérisez au mieu les matrices des systèmes dont les trajectoires sont données
figure 3.1.
E XERCICE 3.3 : É VOLUTION DE LA POPULATION D ’ UNE VILLE
Dans une agglomération, on distingue la ville elle-même de sa banlieue. Chaque année,
5% des habitants de la ville la quittent pour aller vivre en banlieue, tandis que 3% des habitants de la banlieue quittent celle-ci pour venir habiter en ville. Les autres habitants restent
dans leur logement actuel.
[1] Modélisez le problème sous forme d’un système dynamique discret.
[2] Actuellement (année 0), 60% des habitants vivent en ville. Quelle sera la proportion dans 3
ans (année 3) ?
[3] Quelle sera la proportion d’habitants vivant en ville, à long terme ?
[4] Cette proportion dépend-elle de la proportion initiale ?
[5] Tracez quelques trajectoires, pour différentes proportions initiales. L’expérience confirme-telle vos réponses précédentes ?
[6] Tracez quelques trajectoires obtenues à partir de points initiaux ne correspondant pas à des
proportions. Que remarquez-vous ?
? [7] Montrez que toutes les trajectoires sont parallèles et aboutissent toutes sur une même droite.
On veut maintenant prendre en compte la natalité, la mortalité et les migrations hors de
l’agglomération. Des études montrent que ces flux sont positifs pour la ville (au total, +3%
par an) et négatifs pour la banlieue (-2% par an).
[8] Modélisez ce nouveau problème.
[9] À long terme, la population totale de l’agglomération va-t-elle croître, décroître ou stagner ?
Outils pour l’ingénieur
Grenoble INP – Génie Industriel, 1A, 2016–2017
Chapitre 3. Algèbre et éléments propres d’une matrice
23
1
1
1
14
10
1
10
15
1
13
12
2
2
3
3
3
9
3
4
4
4
5
5
5
5
5
6
6
6
6
6
7 8 78 7
7
7
811
8109 8
910
914
9
911
1
014
10
10
11
11
11
12
12
12
12
12
13
13
13
13
13
14
14
14
15
15
15
12
12
12
12
12
11
11
11
1
015
10
10
109
910
911
915
911
7 8 78 8
7 87 8 7
6
6
6
6
6
−5
0
5
5
5
5
5
5
4
4
4
4
4
−10
3
3
3
2
2
2
6
6
7
6
5
−10
3
2
7
6
7
10
4
5
3
5
4
3
−5
5
4 53
6
7
8
9
−5
3
8
7
4
0
4
5
3 4
6
4
5
3 4
5
5
5
3
6
8
7
7
6
5
6
7
10
6
7
7
8
−5
3
11
10
9
8
7
6
5
43 4
3 2 3 24
2 121 2
111
21
12
1
1
2 2 1
2 1213 2
0
43 3
4
4
5
6
7
8
9
10
11
5
2
0
2
5
2
2
12
1
1
1
−10
−10
13
1
1
14
15
(b)
6
(a)
10
4
5
4
3
83
10
83
7
5
10
83 72
4 6
58394 61
10
9
94
1
7258
372 61
8
5
10
10
36
24
5
10
9
9
10716
5
417
3810
5
10
5
82
16 2749
1
2749316 4
9
5
063810
27 38
1
6
1
5
13
10
−4
10
5
−5
15
8
18 2322 21
14
24
20
19 25
25 19
13
20
−2
0
2
24
14
21
23 18
22
8
15
17
12
16
7
10
5
2
7
27
16
4
1
2
38
49
9
49
−4
38
−6
−10
6
11
10
3
(c)
7
−2
1
−5
6
17
0
6
1
0
1
6
9
2
12
7
2
5
10
−10
11
6
2
2
94
5
94
5
4
(d)
F IGURE 3.1 – Trajectoires de systèmes dynamiques
L’étude portant sur la banlieue n’est pas très précise et la perte de 2% par an est incertaine.
? [10] À partir de quelle valeur pour cette perte l’agglomération est-elle condammnée à disparaître ?
E XERCICE 3.4 : D E LA SURVIE DES CHOUETTES
Les chouettes tachetées septentrionales ont un cycle de vie qui se divise en trois étapes :
le stade juvénile (jusqu’à 1 an), le stade préadulte (de 1 à 2 ans) et le stade adulte (au delà de
2 ans). Seuls les adultes se reproduisent, avec un taux de reproduction de 33%. De plus, 94%
des adultes survivent d’une année sur l’autre, et 71% des préadultes deviennent adultes.
L’étape la plus critique dans la vie d’une chouette est le passage de l’état juvénile à l’état
de préadulte : cela signifie pour la chouette qu’elle doit se trouver un territoire d’environ
Grenoble INP – Génie Industriel, 1A, 2016–2017
Outils pour l’ingénieur
24
3.4. Exercices
1000 hectares où elle pourra chasser sans concurrence. À cause de la déforestation, il est devenu difficile pour les chouettes de se trouver un territoire ; toutefois, grâce à un programme
adapté, 30% des jeunes survivent tout de même et deviennent des préadultes.
[1] Modéliser l’évolution de la population des chouettes sous forme d’un système dynamique
discret.
[2] Les chouettes vont-elles survivre ?
[3] Quelle sera a terme la répartition de la population entre jeunes, préadultes et adultes ?
Les données utilisées ci-dessus sont en fait très peu précises, et de faibles erreurs ont des
conséquences tragiques sur le destin des chouettes. Il est donc décidé de faire une deuxième
étude basée sur les données réelles relevées sur les dernières années. Le tableau suivant
donne la population de chouettes, telle que comptée pour la zone considérée :
année
jeunes
préadultes
adultes
0
5132
2147
8547
1
2650
1386
9601
2
2976
715
10037
3
3111
804
9957
4
3087
840
9946
5
3083
833
9963
6
3088
832
9973
7
3092
834
9983
8
3095
835
9992
9
3098
836
10002
On suppose que l’évolution de la population des chouettes est toujours modélisable par
un système dynamique de la forme : ~xk+1 = A~xk .
On suppose de plus que la matrice A est diagonalisable, avec 3 valeurs propres distinctes.
On note λ1 > λ2 > λ3 ces valeurs propres, et ~v1 , ~v2 , ~v3 des vecteurs propres associés.
[4] Exprimez la population de chouettes pour l’année k, ~xk , en fonction des éléments propres
de A et de la population initiale ~x0 .
k
= |λ1 |. Quelle hypothèse supplémentaire faut-il faire sur la po? [5] Montrez que limk→∞ k~xk~xk+1
kk
pulation initiale ~x0 ? Quelle norme choisir ?
? [6] En déduire une méthode de calcul de λ1 , la valeur propre de plus grand module.
[7] Donnez une estimation de λ1 .
[8] Les chouettes tachetées septentrionales vont-elles survivre ?
[9] Quelles seront à terme les proportions de jeunes, de préadultes et d’adultes ?
Outils pour l’ingénieur
Grenoble INP – Génie Industriel, 1A, 2016–2017
C HAPITRE 4
Algèbre de Boole
L’algèbre de Boole doit son nom et son origine à G. Boole, le fondateur de la logique
mathématique moderne ; son objet est l’étude des opérations et des fonctions logiques. Elle
permet de modéliser le fonctionnement de systèmes ne pouvant avoir que deux états (vrai/faux, oui/non, ouvert/fermé, 0/1...) et permet aussi de représenter des raisonnements logiques. Elle a de nombreuses applications notamment en informatique ou en conception de
circuits électroniques et automatiques.
4.1
Algèbre de Boole
Définition 4.1. Algèbre de Boole. On appelle algèbre de Boole l’ensemble B = {0, 1} munis :
— d’une opération unaire appelée négation, notée x̄, telle que 0̄ = 1 et 1̄ = 0 ;
— d’une opération binaire appelée conjonction, notée x · y, qui vaut 1 ssi x et y valent 1 ;
— d’une opération binaire appelée disjonction, notée x + y, qui vaut 1 ssi x ou y valent 1.
En place de 0/1 on utilise aussi (respectivement) Faux/Vrai, ou Bas(⊥)/Haut(>).
La négation (ou complémentaire ou inversion) est aussi notée ¬x ou, dans les langages
de programmation, !x voire 1 − x.
La conjonction («ET logique») correspond à une multiplication. Elle est parfois notée x∧y
ou, dans les langages de programmation, x&y ou x&&y.
La disjonction («OU logique») correspond à une addition. Elle est parfois notée x ∨ y ou,
dans les langages de programmation, x|y ou x||y.
Dans les calculs, la disjonction est moins prioritaire que la conjonction.
Propriété 4.1. Propriétés du calcul booléen (Table 4.1.)
4.2
Fonctions logiques
Définition 4.2. Fonction logique. Une fonction logique (ou fonction booléen) est une application
de B n dans B. On parle souvent d’entrées pour les paramètres, et de sortie pour le résultat.
25
26
4.3. Systèmes logiques combinatoires
Règle
Associativité
Commutativité
Distributivité
Élément neutre
Absorption
OU
(x + y) + z = x + (y + z)
x+y=y+x
x + (y · z) = (x + y) · (x + z)
x+0=x
x+1=1
x + (x · y) = x
Symétrie
x + x̄ = 1
Idempotence
x+x=x
Simplification
x + x̄ · y = x + y
Loi de De Morgan x + y = x̄ · ȳ
ET
(x · y) · z = x · (y · z)
x·y =y·x
x · (y + z) = (x · y) + (x · z)
x·1=x
x·0=0
x · (x + y) = x
x · x̄ = 0
x·x=x
x · (x̄ + y) = x · y
x · y = x̄ + ȳ
TABLE 4.1 – Règles du calcul booléen
x
0
1
Id. NON
x
x̄
0
1
1
0
x
0
0
1
1
y
0
1
0
1
ET
x·y
0
0
0
1
NAND OU
x·y
x+y
1
0
1
1
1
1
0
1
NOR
x+y
1
0
0
0
XOR
x⊕y
0
1
1
0
XNOR
x⊕y
1
0
0
1
IMP
x⇒y
1
1
0
1
INH
x⇒y
0
0
1
0
TABLE 4.2 – Tables de vérité des opérateurs unaires et binaires classiques.
Définition 4.3. Table de vérité. La table de vérité d’une fonction logique est une table qui présente, pour chacune des 2n combinaisons de valeurs des entrées possibles, la sortie produite.
Une table de vérité définit complètement une fonction logique. Ainsi, la table 4.2 définit
les fonctions (opérateurs) unaires et binaires classiques : l’identité (Id) et la négation (NON),
puis la conjonction (ET) et sa négation (NAND), la disjonction (OU) et sa négation (NOR),
le ou exclusif (XOR) et sa négation (NXOR, aussi appelé équivalence : x ⇔ y), l’implication
(IMP) et sa négation l’inhibition (INH).
4.3
Systèmes logiques combinatoires
Les fonctions logiques permettent de représenter des conditions (par exemple en informatique), des raisonnements (en logique), mais également le fonctionnement de système :
Définition 4.4. Système logique. Un système logique est un système dont l’état peut être caractérisé par des expressions logiques (booléennes), c’est-à-dire que chaque entrée est une variable
booléenne et chaque sortie est une fonction booléenne (définie sur les entrées et les sorties en cas de
rétro-action).
Ainsi un système électrique de va-et-vient peut être caractérisé par une fonction logique
où l’état de l’ampoule (allumée/éteinte) en fonction de la position de deux interrupteurs
(voir exercice 4.2).
Outils pour l’ingénieur
Grenoble INP – Génie Industriel, 1A, 2016–2017
Chapitre 4. Algèbre de Boole
27
Définition 4.5. Système logique combinatoire. Un système logique est combinatoire s’il est
de type boucle ouverte, c’est-à-dire qu’aucune des sorties n’est rebouclée comme entrée.
Les systèmes logiques combinatoires, sont les systèmes logiques les plus simples, où
chaque sortie ne dépend que des entrées (et pas des autres sorties). En particulier, un tel
système ne peut pas avoir de mémoire et son état ne dépend que du présent et peut être
entièrement caractérisé par une table de vérité de chaque sortie en fonction des entrées.
Pour représenter les systèmes logiques, on utilise les symboles de la figure 4.1.
NON
ET
OU
NAND
NOR
XOR
NON-XOR
CEI
ANSI
F IGURE 4.1 – Symboles des opérateurs logiques, selon les normes internationale (CEI 6061712) et américaine (ANSI).
4.4
Formes normales, formes canoniques
Une fonction logique peut s’écrire de bien des façons, et en particulier uniquement avec
les opérateurs NON, ET et OU (proposition 4.1 à suivre).
Définition 4.6.
On appelle littéral une variable ou sa négation.
On appelle produit fondamental un produit (ou conjonction) de littéraux ; on appelle mintterme d’ordre n un produit fondamental de n littéraux.
On appelle somme fondamentale une somme (ou disjonction) de littéraux ; on appelle maxterme d’ordre n une somme fondamentale de n littéraux.
Dans un produit ou une somme fondamentale, une négation ne porte que sur une variable. Le nom de «minterme» vient du fait que la valeur du minterme est la valeur minimale
des littéraux qui le compose ; de même, la valeur d’un maxterme est la valeur maximale des
littéraux qui le compose. On vérifie facilement qu’il y a exactement un minterme égal à 1, et
exactement un maxterme égal à 0, ce qui s’énonce :
Propriété 4.2.
Il y a 2n mintermes d’ordre n. La somme de tous les mintermes vaut 1. Le produit de 2 mintermes
d’ordre n (différents) vaut 0.
Il y a 2n maxtermes d’ordre n. Le produit de tous les maxtermes vaut 0. La somme de 2 maxtermes
d’ordre n (différents) vaut 1.
N’importe quelle fonction logique peut s’écrire uniquement comme une somme de produits fondamentaux ou comme un produit de sommes fondamentales :
Grenoble INP – Génie Industriel, 1A, 2016–2017
Outils pour l’ingénieur
28
4.5. Tableaux de Karnaugh
Définition 4.7. Formes normales disjonctives et conjonctives.
Une forme normale disjonctive est une disjonction d’une ou plusieurs conjonctions de littéraux
(i.e., une disjonction de produits fondamentaux).
Une forme normale conjonctive est une conjonction d’une ou plusieurs disjonctions de littéraux (i.e., une conjonction de sommes fondamentales).
Proposition 4.1. N’importe quelle fonction logique peut s’écrire comme une forme normale disjonctive. N’importe quelle fonction logique peut s’écrire comme une forme normale conjonctive.
Les formes normales sont très utiles en informatique, notamment pour faire de la vérification automatique car elle permettent un traitement uniforme des expressions logiques.
Elles s’obtiennent de manière systématique en appliquant les règles de calcul booléen.
On peut imposer que les produits et sommes fondamentaux soient des mintermes ou
maxtermes :
Définition 4.8. Formes canoniques disjonctives et conjonctives.
Une forme canonique disjonctive est une disjonction de mintermes (d’ordre n).
Une forme canonique conjonctive est une conjonction de maxtermes (d’ordre n).
Proposition 4.2. N’importe quelle fonction logique peut s’écrire comme une forme canonique disjonctive et cette expression est unique. N’importe quelle fonction logique peut s’écrire comme une
forme canonique conjonctive et cette expression est unique.
La forme canonique disjonctive peut être facilement déduite de la table de vérité : il faut
et il suffit de sommer (disjonction) tous les cas (mintermes) pour lesquels la sortie est 1. De
même, la forme canonique conjonctive peut-être obtenue comme la négation de la somme
des mintermes valant 0.
4.5
Tableaux de Karnaugh
Les formes canoniques ou normales peuvent avoir un très grand nombre de termes, il
est parfois utile de les simplifier (par exemple, pour la fabrication d’un système logique,
on voudra utiliser le moins de composants possible). On peut pour cela utiliser un outil
graphique : le tableau de Karnaugh.
La méthode, proposée par Maurice Karnaugh, se base sur une écriture particulière de
la table de vérité d’une expression : l’idée directrice est de mettre côte à côte les mintermes
qui ne sont différents que par un littéral, afin de permettre des regroupements, et donc des
simplifications, lorsque ces mintermes donnent le même résultat.
Pour une fonction f de n variables dont on connaît la table de vérité, on procède comme
suit (on pourra se référer à la figure 4.2 pour un exemple de résultat).
Outils pour l’ingénieur
Grenoble INP – Génie Industriel, 1A, 2016–2017
Chapitre 4. Algèbre de Boole
29
Construction d’une table de Karnaugh
1. On choisit p variables pour indicer les lignes de la table ; chaque colonne correspond
à un état des p variables (pour 2 variables a et b, on aura donc les lignes ab, āb, ab̄, āb̄).
Les n − p restantes indicent les colonnes. En général (et il est recommandé), on prend
p = [n/2].
2. On ordonne les lignes de manière à ce que deux lignes consécutives ne différent que
d’un littéral ; on fait de même pour les colonnes. Pour l’ordre, on utilise le code de
Gray (voir également exercice 4.3) :
— Pour une variable : 0, 1.
— Pour deux variables : 00, 01, 11, 10.
— Pour trois variables : 000, 001, 011, 010, 110, 111, 101, 100.
Ainsi, sur l’exemple, la troisième ligne correspond aux états avec ab et la quatrième
colonne aux états avec c̄dē.
3. On complète chaque case par la valeur de vérité de la fonction correspondante.
Ainsi, sur l’exemple, dans la case de la deuxième ligne, cinquième colonne, on a la
valeur pour l’état ābcdē.
Propriétés de la table
Un tableau de Karnaugh est torique 1 : les bords droit et gauche sont adjacents, de même
que les bords haut et bas.
Un tableau de Karnaugh a des axes de réflexion. Deux cases symétriques par rapport
à un axe ne sont différentes que par un littéral et peuvent donc être considérées comme
adjacentes. (Ceci est une conséquence du code de Gray, voir exercice 4.3.)
Ne pas oublier de tenir compte de ces propriétés lors de la recherche de blocs (voir ciaprès) ; à défaut les expressions obtenues seront moins simples qu’elles pourraient l’être.
Utilisation de la table
1. On cherche des blocs de 1 adjacents (au sens large, y compris par symétrie autour
d’axes de réflexion) avec les règles suivantes :
— le nombre de cases d’un bloc est une puissance de 2 ;
— un bloc est symétrique horizontalement et verticalement ;
— si un axe de réflexion vertical coupe un bloc, alors il doit exister un axe de symétrie
vertical. Idem horizontalement ;
— si un bloc (d’au moins 8 case) est symétrique par rapport à un axe de réflexion,
alors ses sous-blocs doivent vérifier ces règles.
Les blocs sont des rectangles dont les dimensions sont des puissances de 2 (ou des
unions de rectangles symétriques). Chaque bloc correspond à une conjonction : il faut
donc des blocs aussi grands que possible (moins de littéraux), et on ne considèrera pas
un bloc inclus dans un autre.
Sur l’exemple, tous les blocs possibles ont été mis en évidence.
2. On choisit une couverture des 1 par des blocs. Il faut avoir le moins de blocs les plus
grands possibles. Un bloc qui est seul à couvrir un 1 est dit «bloc principal» et fait
obligatoirement partie de la couverture ; les autres blocs sont des «blocs secondaires».
1. En forme de tore, ou hyper-cylindre, dont l’exemple le plus connu est le donut cher à Homer Simpson.
Grenoble INP – Génie Industriel, 1A, 2016–2017
Outils pour l’ingénieur
30
4.6. Références
¯ ; ābcdē
Blocs principaux : b̄e ; ac̄d, āc̄e ; abdē
¯
¯
Blocs secondaires : bc̄dē ; ābc̄d.
¯ + ābcdē + bc̄dē
¯
f (a, b, c, d, e) = b̄e + ac̄d + āc̄e + abdē
F IGURE 4.2 – Exemple de tableau de Karnaugh
Sur l’exemple, il y a 5 blocs principaux et 2 blocs secondaires.
3. On déduit une expression de la fonction logique comme disjonction des conjonctions
correspondant aux regroupements choisis pour couvrir les 1.
¯
¯ ;
Sur l’exemple, on obtient l’expression f (a, b, c, d, e) = be+ac̄d+āc̄e+abdē+ābcdē+bc̄
dē
le dernier terme aurait pu être remplacé par l’autre bloc secondaire.
Au lieu de faire des regroupements sur les 1, on peut travailler sur le complémentaire de
l’expression : on regroupe les 0, puis on prend la négation de l’expression obtenue.
On peut avoir des fonctions partiellement définies, si la sortie est indifférente (ou non
définie) pour certaines combinaisons d’entrées. Dans ce cas, on peut choisir la valeur qui
arrange pour faire des regroupements.
4.6
—
—
—
—
Références
Wikipedia, Algèbre de Boole, consultée le 2015-10-07.
Walter Hammer, Systemes logiques, Cours de l’EPFL, 2001. (version PDF)
Wikipedia, Table de Karnaugh, consultée le 2015-10-07.
Jean-Yves Fabert, Automatismes et Automatique, Ellipses, deuxième édition, 2005. (extrait PDF sur tables de Karnaugh)
Outils pour l’ingénieur
Grenoble INP – Génie Industriel, 1A, 2016–2017
Chapitre 4. Algèbre de Boole
4.7
31
Exercices
E XERCICE 4.1 : C ALCUL BOOLÉEN
[1] Démontrez les lois de De Morgan à partir des tables de vérités.
[2] Démontrez avec les règles du calcul Booléen la règle du consensus : x·y+x̄·z+y·z = x·y+x̄·z.
[3] Exprimez chacun des opérateurs logiques binaires avec les seuls opérateurs NON, ET et OU.
On donnera les expressions sous formes normales disjonctive et conjonctive.
E XERCICE 4.2 : VA - ET- VIENT
On considère le circuit électrique de va-et-vient classique :
[1] Exprimez ce système comme un système logique combinatoire. On précisera les entrées, les
sorties, et les expressions des sorties en fonction des entrées.
E XERCICE 4.3 : C ODE DE G RAY
Le code de Gray peut être obtenu facilement par une construction récursive 2 :
1. Le code de Gray pour un chiffre est 0, 1.
2. Le code de Gray pour n + 1 chiffres est obtenu en prenant le code de Gray à n chiffres
préfixé par 0 puis le miroir du code de Gray à n chiffres (les termes eux-même ne sont
pas en miroir, mais pris du terme de droite à terme de gauche) préfixés par 1.
De part cette construction, le code de Gray est aussi appelé «binaire réfléchi», les termes
pour n + 1 chiffres étant obtenus par réflexion (dans un miroir) des termes de n chiffres.
[1] Donnez le code de Gray à 1, 2, 3 et 4 chiffres.
[2] Vérifiez que le code de Gray est «cyclique», dans le sens où le premier et le dernier termes
ne sont différents, eux-aussi, que d’un chiffre.
[3] Déterminez les axes de réflexion des codes de Gray de 2 à 4 chiffres. Pour chaque axe, on
déterminera l’unique variable dont la valeur change entre deux termes symétriques.
2. Il existe d’autres constructions, moins pratiques à mettre en œuvre à la main, mais parfois plus efficaces ;
voir Wikipedia, Code de Gray (consulté le 2015-10-10).
Grenoble INP – Génie Industriel, 1A, 2016–2017
Outils pour l’ingénieur
32
4.7. Exercices
E XERCICE 4.4 : M INIMISATION D ’ UNE FONCTION LOGIQUE
Soit la fonction logique, donnée sous forme normale disjonctive :
f (a, b, c, d) = abcd + abcd¯ + ab̄cd¯ + ab̄c̄d¯ + ābcd + ābcd¯ + ābc̄d + ābc̄d¯ + āb̄cd¯ + āb̄c̄d + āb̄c̄d¯
[1] Écrivez la table de vérité de cette fonction sous forme de table de Karnaugh.
[2] Proposez une expression simple de cette fonction.
E XERCICE 4.5 : A DDITIONNEUR 3 BITS
On aimerait fabriquer un système pour additionner deux nombres de 3 bits et afficher le
résultat sur des afficheurs sept segments (voir figure 4.3).
F IGURE 4.3 – Additionneur 3 bits
[1] Proposez un schéma logique permettant d’additionner deux nombres de 1 bit ; indiquez les
fonctions logiques correspondantes.
[2] Proposez un schéma logique permettant d’additionner trois nombres de 1 bit ; indiquez les
fonctions logiques correspondantes.
[3] Proposez un schéma logique permettant d’additionner deux nombres de 3 bits.
On veut maintenant afficher le résultat à l’aide de deux afficheurs sept segments, ces
derniers étant numérotés conformément à la figure 4.3.
[4] Construisez le tableau de Karnaugh et une expression logique simple pour le segment 8.
[5] Construisez le tableau de Karnaugh et une expression logique simple pour le segment 1.
[6] Construisez le tableau de Karnaugh et une expression logique simple pour le segment 7.
E XERCICE 4.6 : L’ INTRUS
On a une très longue série de 2n + 1 nombres : x1 , x2 , . . . x2n+1 où chaque nombre est
répété exactement 2 fois, sauf 1. On ne peut lire chaque nombre qu’une seule fois, et on ne
peut retenir qu’un seul nombre en mémoire.
? [1] Proposez une méthode pour identifier le nombre unique.
Outils pour l’ingénieur
Grenoble INP – Génie Industriel, 1A, 2016–2017
C HAPITRE 5
Transformation de Laplace
La «transformation de Laplace» est une transformation qui, a une fonction f associe une
intégrale particulière dont les propriétés permettent de simplifier certaines opérations. Elle
est particulièrement utile pour certains calculs de probabilités ou pour la résolution de certaines équations différentielles.
Historiquement, Pierre-Simon de Laplace, poursuivant des travaux d’Euler notamment
sur les propriétés des intégrales, a été le premier à se rendre compte des propriétés d’une
telle transformation et des facilités de calcul qu’elle permettait. La «transformation de Laplace» actuelle est une version remaniée de celle initialement considérée.
5.1
Définition et propriétés fondamentales
La transformée de Laplace peut être interprétée comme la transformation d’un signal
dépendant du temps (donc une fonction f (t) définie pour t ≥ 0) en une fonction dépendant
d’une fréquence complexe (F (p), pour p ∈ C). La transformée de Laplace d’une fonction
f (t) est traditionnellement notée F (s) ou L{f }(s).
Définition 5.1. Transformée de Laplace. Soit f : R+ → R. La transformée de Laplace de f
est la fonction F : C → C définie par :
Z +∞
e−st f (t)dt.
F (s) = L{f }(s) =
0
Une transformée de Laplace n’est bien entendu définie que si l’intégrale est définie. En
particulier, f doit avoir une croissance «sous-exponentielle». De même, bien se rappeler que
la transformée de Laplace n’est définie que pour une fonction définie sur R+ ; cela n’est
parfois qu’implicite (pour ne pas allourdir les notations 1 ), mais sera toujours le cas.
La transformation de Laplace permet de transformer certaines opérations sur les fonctions (par exemple la dérivation et l’intégration) en de simples opérations algébriques :
Proposition 5.1. Les principales propriétés de la transformée de Laplace sont données Table 5.1.
La transformée de Laplace permet également de retrouver les limites de la fonction f :
1. L’alternative rigoureuse serait de multiplier, chaque fois que nécessaire, la fonction considérée par la
fonction indicatrice de t ≥ 0, notée 1t>0 (parfois appelée fonction de Heaviside et notée u(t)).
33
34
5.2. Transformées de Laplace usuelles
Propriété
Fonction
Transformée
Transformée
f (t)
F (s)
Linéarité
αf (t) + βg(t)
αF (s) + βG(s)
Dérivation
f 0 (t)
sF (s) − f (0)
Dérivée seconde
f 00 (t)
Dérivée n-ième
f (n) (t)
s2 F (s) − sf (0) − f 0 (0)
P
sn F (s) − nk=1 sn−k f (k−1) (0)
Intégration
Rt
0
1
s F (s)
f (x)dx
Retard
f (t − T )
e−T s F (s)
Translation
e−at f (t)
F (s + a)
TABLE 5.1 – Propriétés calculatoires de la transformée de Laplace.
Théorème 5.1. Théorème de la valeur initiale. Pour f admettant une transformée de Laplace F :
lim f (t) = lim sF (s).
s→∞
t→0+
Théorème 5.2. Théorème de la valeur finale. Pour f admettant une transformée de Laplace F :
lim f (t) = lim sF (s)
t→∞
s→0
(sous réserve que la limite de droite soit définie 2 ).
5.2
Transformées de Laplace usuelles
La table 5.2 présente les transformées de Laplace des fonctions classiques.
5.3
Transformation inverse
Deux fonctions différentes ont des transformées de Laplace différentes 3 : cela implique
qu’on peut inverser la transformée de Laplace. C’est une propriété essentielle lorsqu’on veut
2. lims→0 sF (s) est définie si sF (s) n’a pas de pôle pour Re(s) ≥ 0 (un pôle étant une singularité où la
fonction est infinie, comme z = 0 pour la fonction z 7→ 1/z).
3. Il y a quelques restrictions... hors sujet dans ce cours.
Outils pour l’ingénieur
Grenoble INP – Génie Industriel, 1A, 2016–2017
Chapitre 5. Transformation de Laplace
35
f (t)
F (s)
f (t)
1
1
s
sin(ωt)
1t≥T (t)
1 −T s
e
s
cos(ωt)
δ(t)
1
1 − cos(ωt)
δ(t − T )
e−T s
sinh(ωt)
t
tn (n ∈ N)
1
s2
n!
sn+1
1
e−at
s+a
n−1 −t/T
t e
1
T n (n − 1)!
(1 + T s)n
(T + t) −t/T
1
1−
e
T
s(1 + T s)2
t −t/T
1
T
e
−1
T
s2 (1 + T s)
F (s)
ω
s2 + ω 2
s
s2 + ω 2
1
2
p(1 + ωs 2 )
ω
s2 − ω 2
s
2
s − ω2
cosh(ωt)
1 − e−t/T
a − T −t/T
1−
e
T
a−T
1+
t − 1 e−t/T
2
T
−t/T
(a − T ) 1 − e
+t
1
s(1 + T s)
1+as
s(1 + T s)
1+as
s(1 + T s)2
1+as
s2 (1 + T s)
TABLE 5.2 – Transformées de Laplace usuelles. 1t≥T (t) est la marche unitaire de retard T .
δ(t) est la fonction de Dirac (impulsion) et δ(t − T ) est l’impulsion de retard T .
Grenoble INP – Génie Industriel, 1A, 2016–2017
Outils pour l’ingénieur
36
5.3. Transformation inverse
utiliser la transformation de Laplace pour des calculs : après avoir effectué les calculs dans
l’espace des fonctions de Laplace, il faut pouvoir revenir aux fonctions «normales».
5.3.1
Inverse de la transformée de Laplace
De manière formelle, on démontre que :
Proposition 5.2. Transformée inverse.
1
lim
f (t) = L {F }(t) =
2πi T →∞
−1
Z
γ+iT
est F (S)ds
γ−iT
(où γ est tel que l’intégration se fait dans la région de convergence de F ).
5.3.2
Calcul pratique de l’inverse
La proposition ci-dessus est très formelle et peu commode : en pratique, on utilise simplement les tables de transformées usuelles et les propriétés de la transformation de Laplace
(notamment la linéarité), afin de «deviner» l’inverse.
Exemple 5.1. Transformation inverse.
1
Soit F (s) = 2
.
s + 2s + 3
On peut factoriser F pour obtenir l’écriture F (s) =
1
. On peut remarquer que F (s)
(s + 1)2 + 2
√
1
s’obtient par translation de 1 de la fonction G(s) = 2
. G(s) peut se ré-écrire : G(s) = H(s)/ 2,
s +2
√
2
√ .
avec H(s) =
s2 + ( 2)2
√
Par
sin( 2t). Par linéarité, on a donc g(t) =
√ identification H(s) est est la transformée de h(t) =−t
h(t)/ 2. Par la propriété de translation, on a f (t) = g(t)e . Au final, on a :
√
1
f (t) = √ sin( 2 t)e−t .
2
5.3.3
Calcul par décomposition par pôles
Il n’est pas toujours évident de décomposer efficacement F pour identifier des transformées connues. Une méthodologie souvent efficace est la décomposition par pôles 4 . On
(s)
procède comme suit pour une fonction F de la forme F (s) = N
, où N et D sont des polyD(s)
nômes :
4. Un pôle est une singularité où la fonction est infinie, comme z = 0 pour la fonction z 7→ 1/z.
Outils pour l’ingénieur
Grenoble INP – Génie Industriel, 1A, 2016–2017
Chapitre 5. Transformation de Laplace
37
1. Factoriser le dénominateur de F . Pour cela, il faut trouver les racines s1 , s2 , . . ., sn de
N (s)
D(s). On a alors F sous la forme F (s) =
.
(s − s1 )(s − s2 ) . . . (s − sn )
— Si D(s) est un polynôme de degré deux, les racines sont faciles à obtenir.
— Sinon, il faut chercher des racines évidentes, et en tous cas une première racine
qui permette une première factorisation...
ki
2. Écrire la transformée de Laplace comme une somme de termes de la forme (s−s
p . On
i )i
suppose deg(N ) < deg(P ), et alors :
ki
. ki s’obtient
— Si si est un pôle simple de F , alors on aura un terme de la forme
s − si
par le calcul : ki = F (s)(s − si ) pour s = si .
Ki
ki
— Si si est un pôle double de F , alors on aura un terme de la forme
.
+
(s − si )2 s − si
d(F (s)(s − si )2 )
On a : Ki = F (s)(s − si )2 pour s = si , et ki =
pour s = si .
ds
— Si si est un pôle complexe, alors s̄i (son conjugué) aussi. On aura alors deux termes
ki
k̄i
et
.
conjugués de la forme
s − si
s − s̄i
3. Identifier chaque terme et utiliser la linéarité de la transformation pour recomposer
la fonction f .
ki
donne ki esi t (lecture directe de table).
— Les termes de la forme
s − si
Ki
— Les termes de la forme
donne Ki tesi t (utiliser la propriété de translation
(s − si )2
et la transformée de t qui donne 1/s).
Exemple 5.2. Transformation inverse par décomposition par pôles.
−s − 3
.
Soit F (s) = 2
s + 3s + 2
On calcule les racines de s2 + 3s + 2, et on obtient -2 et -1. On a donc F (s) =
−s − 3
.
(s + 2)(s + 1)
A
B
On met F sous la forme F (s) = s+2
+ s+1
. On a : A = F (s)(s + 2) pour s = −2, soit
1
−2
2−3
A = −2+1
= −1/ − 1 = 1. De même, B = −2 et on obtient : F (s) =
+
.
s+2 s+1
1
1
Par identification : s+2
est la transformée de e−2t , s+1
ets la transformée de e−t . Par linéarité, on
−2t
−t
a alors : f (t) = e − 2e (pour t ≥ 0).
La décomposition par pôles, bien que pratique, n’est pas toujours effective, et elle n’est
pas obligatoire. De manière générale, plusieurs cheminements sont possibles pour déterminer l’inverse d’une transformée de Laplace.
5.3.4
Utilisation pour la résolution d’équations différentielles
La transformation de Laplace peut être efficacement utilisée pour résoudre des équations
différentielles, selon la méthode suivante :
1. Calculer la transformée de Laplace de chaque terme de l’équation différentielle.
2. Résoudre l’équation (algébrique) obtenue.
Grenoble INP – Génie Industriel, 1A, 2016–2017
Outils pour l’ingénieur
38
5.4. Références
3. Faire la transformation inverse du résulat pour revenir à un résultat fonction de t.
L’exemple suivant illustre cela :
Exemple 5.3. Résolution d’une équation différentielle.
On veut résoudre l’équation
x00 (t) + x(t) = 8 sin(3t)
avec comme conditions initiales x(0) = 0 et x0 (0) = 0.
On exprime cette équation en termes de transformées de Laplace :
— le terme x00 (t) donne s2 X(s) − s x(0) − x0 (0) = s2 X(s) (conditions initiales) ;
— le terme x(t) donne X(s) ;
— le terme 8 sin(3t) donne 8 s23+9 .
Il faut donc résoudre l’équation :
s2 X(s) + X(s) = 8
s2
3
+9
qui donne immédiatement :
X(s) =
(s2
24
.
+ 9)(s2 + 1)
Il faut maintenant retourner dans l’espace des fonctions de t. On commence par chercher A et B
tels que X(S) = s2A+9 + s2B+1 ; cela se résoud facilement et on a :
X(s) =
3
−3
+ 2
.
+9 s +1
s2
Par linéarité et identification, on obtient alors :
f (t) = − sin(3t) + 3 sin(t).
5.4
Références
— Wikipedia, Laplace Transform, consultée le 2015-10-15.
— C. Saint-Blanquet et B. Fourcher, Résolution par utilisation de la transformée de Laplace,
consultée le 2015-10-16.
Outils pour l’ingénieur
Grenoble INP – Génie Industriel, 1A, 2016–2017
Chapitre 5. Transformation de Laplace
5.5
39
Exercices
E XERCICE 5.1 : P ROPRIÉTÉS DE LA TRANSFORMÉE DE L APLACE
[1] Démontrez les propriétés fondamentales de la Transformée de Laplace. Dans tous les cas, on
fera l’hypothèse que toutes les intégrales nécessaires sont définies, et que toutes les fonctions
sont dérivables lorsque nécessaire.
E XERCICE 5.2 : T RANSFORMÉES DE L APLACE USUELLES
[1] Calculez la transformée de Laplace de la fonction f (t) = 1 (pour t ≥ 0).
[2] Calculez la transformée de Laplace de la fonction de Dirac δ(t). La fonction de Dirac est
δ(t) = lim→0 δ (t), où δ est la fonction qui vaut 1/ sur [0; ] et 0 partout ailleurs.
[3] Calculez la transformée de Laplace de la fonction f (t) = tn .
[4] Calculez la transformée de Laplace de f (t) = cos(ωt) (rappel : cos(ωt) = 12 (eiωt + e−iωt ).
[5] En déduite la transformée de Laplace de f (t) = sin(ωt).
E XERCICE 5.3 : R ADIOACTIVITÉ
Un principe fondamental de physique nucléaire énonce que le nombre n d’atomes radioactifs diminue de manière proportionnel à ce nombre. En d’autres termes, on a l’équation :
dn
= −λn
dt
où λ est la constante de décroissance radioactive.
[1] Résoudre cette équation différentielle à l’aide de la transformation de Laplace.
E XERCICE 5.4 : R ÉSOLUTION D ’ UNE ÉQUATION DIFFÉRENTIELLE
[1] Résoudre y 0 (t) + b y(t) = a u(t), avec y(0+ ) = 0. u(t) est la fonction de Heaviside : u(t) = 1 si
t ≥ 0 et u(t) = 0 sinon.
Grenoble INP – Génie Industriel, 1A, 2016–2017
Outils pour l’ingénieur
40
5.5. Exercices
E XERCICE 5.5 : M OUVEMENT D ’ UN SYSTÈME MASSE - RESSORT- AMORTISSEUR
y0
y(t)
Mass M
F
On considère un système formé d’une masse
M ; d’un ressort de constante de dureté k et de
longueur à vide y0 ; d’un amortisseur de résistance f (voir figure ci-contre).
La loi fondamentale de la dynamique exprimée pour la masse M donne :
M y 00 (t) + f y 0 (t) + k y(t) = F
La masse est poussée sur la gauche puis relâchée : à l’instant 0, on a y(0+ ) = −1m,
y 0 (0+ ) = 0 et F = 0N.
[1] Pour M = 1000kg, f = 3000N/m/s et k = 2000N/m, déterminez l’équation du mouvement
y(t).
[2] Même question pour f = 2000N/m/s.
Outils pour l’ingénieur
Grenoble INP – Génie Industriel, 1A, 2016–2017
Deuxième partie
Outils informatiques
41
C HAPITRE 6
GNU R
6.1
Une brève introduction à R
R est un logiciel de calcul à l’origine dédié aux probabilités et aux statistiques mais qui
permet également du calcul numérique de grande qualité (contrairement à des logiciels
comme Maple, toutefois, il ne permet pas de calcul formel).
6.1.1
L’interpréteur de commandes
R lui-même est avant tout un interpréteur de commandes : on tape un «calcul», R effectue
l’opération demandée, et renvoie le résultat (comme une calculatrice). Plus particulièrement,
R affiche une invite de commande :
1
>
indiquant qu’il attend une commande de l’utilisateur 1 . L’utilisateur tape alors sa commande
et appuie sur la touche Entrée pour la valider. R évalue alors, et affiche, le résultat. Voici un
exemple de commandes R avec leurs résultats :
1
2
3
4
5
6
> 5+7
[1] 12
> sum (1 ,2 ,4 ,8 ,16 ,32 ,64)
[1] 127
> integrate ( function ( x ) sin ( x ) , lower =0 , upper =10)
1.839072 with absolute error < 9.9 e -12
Astuces de saisie
— Les flèches haut et bas permettent de naviguer de retrouver des commandes précédemment tapées pour les réutiliser, éventuellement en les modifiant.
— La touche de tabulation permet de compléter automatiquement la ligne en cours de
saisie. Ainsi, si vous tapez integr puis une tabulation, R complètera de lui-même en
integrate (si R connaît plusieurs fonctions commençant par «integr», il complètera
pour ce qui est commun à tous, et affichera les différentes possibilités). La tabulation
permet aussi de compléter facilement les paramètres des fonctions.
— On peut interrompre l’exécution d’une commande avec la combinaison de touches
Ctrl+C.
1. Parfois, R affiche une invite de commande sous la forme d’un + : cela signifie que la ligne précédente
n’est pas complète, et qu’il faut la terminer (typiquement lorsqu’une parenthèse n’a pas été fermée).
43
6.1. Une brève introduction à R
44
6.1.2
Types et variables
On peut définir des variables en R. Il n’y a pas besoin de les déclarer, il suffit d’y stocker
une valeur avec l’opérateur d’affectations -> (ou <-, le nom de la variable étant du côté de
la flèche).
On peut créer des variables de tout type (nombre, chaînes de caractères, vecteurs, matrices, fonction, tableau de données, etc. ). Le type d’une variable et celui ... de son contenu.
Ainsi, une variable peut changer de type, comme dans l’exemple suivant où x est tour à tour
un entier, une chaîne de caractères, un vecteur de booléens :
1
2
3
> x <- 10
> x <- " Bonjour ! "
> x <- c( TRUE , FALSE , FALSE , TRUE )
Noms des variables. Un nom de variable (ou de fonction) est une combinaison quelconque
de lettres (sans accents), de chiffres et du caractère . (point). Il ne faut jamais que le premier
caractère soit un . (point) ou un chiffre. R fait la différence entre majuscules et minuscules :
x et X sont deux variables différentes.
Types primitifs. Les principaux types primitifs connus par R sont :
— Les nombres («numeric»). Pour R, les nombres sont a priori des réels (nombre à virgule flottante double précision). On peut utiliser l’écriture «décimale» (par exemple :
123.45) ou l’écriture «scientifique» (par exemple : 1.2345e2).
Les nombres complexes se reconnaissent au i dans leur écriture, par exemple : 2-3i
et 1i (un nombre devant le i est indispensable, et aucun espace ne doit les séparer).
— Les chaînes de caractères. Elles s’écrivent indifféremment entre guillemets doubles
(") ou simples ('). Ne pas confondre x (un nom de variable) et "x" (un texte).
— Les booléens. Les deux valeurs s’écrivent TRUE et FALSE (en majuscules) et peuvent
être abrégées en T et F.
Ces types peuvent êtres utilisés pour faire des vecteurs de réels, des matrices de booléens,
etc.
6.1.3
Particularités du calcul vectoriel et matriciel
R a une manière particulière et très pratique de faire les calculs avec des vecteurs ou des
matrices, mais celle-ci peut paraître déroutante, notamment en permettant d’effectuer des
calculs «incorrects» à première vue.
Operations composante par composante. Les opérateurs classiques (+, -, *, /, %%, ^, &, |,) sont
appliqués composantes par composante. Aussi, si A et B sont des matrices, A+B correspond
bien à la somme au sens matriciel, mais A*B est la matrice des produits des composantes
(pour le produit matriciel, il faut utiliser A%*%B).
Recyclage. R «recyle» les vecteurs et matrices qu’il utilise afin de rendre possible des opérations normalement impossibles : s’il manque des composantes l’élément le plus petit est
répliqué autant de fois que nécessaire pour obtenir deux éléments de même taille.
Outils pour l’ingénieur
Grenoble INP – Génie Industriel, 1A, 2016–2017
Chapitre 6. GNU R
45
On peut ainsi facilement ajouter 1 à toutes les composantes d’un vecteur, ou ajouter alternativement 10 et 20, comme dans l’exemple suivant :
1
2
3
4
5
6
> x
[1] 1 2 3 4 5 6 7 8 9 10
> x + 1
[1] 2 3 4 5 6 7 8 9 10 11
> x + c (10 ,20)
[1] 11 22 13 24 15 26 17 28 19 30
On peut de même ajouter un même vecteur à toutes les colonnes d’une matrice, etc. .
Attention, dans l’exemple ci-dessous :
1
2
3
4
5
6
7
> x + c (10 ,20 ,30)
[1] 11 22 33 14 25 36
[1] 11 22 33 14 25 36
Message d ' avis :
In x + c (10 , 20 , 30) :
la taille d ' un objet
la taille d ' un objet
17 28 39 20
17 28 39 20
plus long n ' est pas multiple de
plus court
on remarque que le recyclage est appliqué même si l’objet le plus grand n’a pas une taille
multiple du plus petit (la dernière réplication étant alors tronquée). Il est toutefois déconseillé de faire de telles opérations.
Application des fonctions. A peu près toutes les fonctions définies dans R sont utilisables avec
des vecteurs. Lorsque la fonction est normalement une fonction de R dans R, le résultat est
simplement le vecteur des applications de la fonction à chaque composante du vecteur :
1
2
3
4
> x
[1] 1 2 3 4 5
> sqrt ( x )
[1] 1.0000 1.4142 1.7321 2.0000 2.2361
Le mécanisme peut être «cassé» par vos propres fonctions, si vous utilisez des structures
de contrôles (if, for, ...). La fonction sapply permet toutefois de réparer cela.
Indexation. R permet un mécanisme d’indexation extrêmement flexible, valable aussi bien
pour les vecteurs que pour les matrices. Il y a trois façon de sélectionner des composantes :
— si rien n’est précisé, on garde tout (le vecteur, la matrice, la colonne, ...) ;
— si on précise un vecteur d’indices, alors seuls ces indices sont conservés (si les indices
sont négatifs, alors ils correspondent aux indices qui ne sont pas conservés) ; à noter
que les composantes sont conservés dans l’ordre des indices et qu’un même indice
peut être sélectionné plusieurs fois ;
— si on précise un vecteur de booléen, alors seuls les indices à TRUE sont conservés (le
recyclage s’applique).
Ainsi pour un vecteur x : x est le vecteur complet ; x[2] est le deuxième élément ; x[2:6]
sont les élements 2 à 6. Pour une une matrice A : A est la matrice complète ; A[2,3] est le
composante de la deuxième ligne et troisième colonne ; A[2,] est la deuxième ligne ; A[,3]
Grenoble INP – Génie Industriel, 1A, 2016–2017
Outils pour l’ingénieur
6.1. Une brève introduction à R
46
est la troisième colonne ; A[2:6,3:6] est la sous-matrice extraite des lignes 2 à 6, colonnes 3
à 6.
Quelques exemples un peu particulier :
1
2
3
4
5
6
7
8
9
10
6.1.4
> x
[1] 10 6 1 5 9
> x [ c (1 ,3 ,1)]
[1] 10 1 10
> x [ c ( -1 , -4 , -10)]
[1] 6 1 9 4 2 3 8
> x [ c (T , F )]
[1] 10 1 9 2 8
> x [ x %% 3 == 0]
[1] 6 9 3
4 2 3 8 7
# element 1 , 3 et 1 ( en double )
# tout sauf elements 1 , 4 et 10
# on conserve un element sur deux
# on conserve les multiples de 3
Fonctions et éléments de programmation en R
R fournit un nombre impressionnant de fonctions et vous pouvez créer les vôtres.
Lorsque vous «appelez» une fonction en omettant les parenthèses (par exemple «ls»
au lieu de «ls()»), R affiche le code de la fonction, au lieu de l’exécuter. Vous pouvez ainsi
savoir comment une fonction est programmée (vous remarquerez toutefois que beaucoup de
fonctions pré-définies font appel à des fonctions définies ailleurs : primitives du langages,
bibliothèques logiciels, ...).
Définition de fonctions. Une fonction est créée par function. Par exemple :
1
f <- function ( x) x ^2
définit la fonction f : x → x2 . Les paramètres formels sont indiqués entre parenthèses, suivis
du corps de la fonction (si le corps est composé de plusieurs instructions, il faut les regrouper
dans un bloc { ... }). La valeur d’une fonction est la valeur de la dernière ligne évaluée
lors de son exécution ; elle peut être explicitée par return(valeur).
Paramètres : ordre et valeurs par défaut. Une fonction peut avoir un nombre quelconque de
paramètres, chacun ayant un nom. Lors de l’appel, on peut soit respecter l’ordre des paramètres (comme en mathématiques), soit les donner dans un ordre quelconque sous la forme
«nom=valeur». De plus, des paramètres peuvent avoir des valeurs par défaut (et deviennent
alors facultatifs lors de l’appel) en indiquant «nom=valeur» dans la définition de la fonction.
Ainsi la définition et les appels suivants sont corrects :
1
2
3
4
f <- function (x ,y , z =10)
f (1 ,2 ,3)
# appel avec
f (1 ,2)
# appel avec
f ( y =2 , x =3) # appel avec
Outils pour l’ingénieur
{ x + 2*y
x =1 , y =2 ,
x =1 , y =2 ,
x =3 , y =2 ,
+ 3*z }
z =3 ( ordre de definition )
z =10 ( valeur par defaut )
z =10 ( parametres nommes )
Grenoble INP – Génie Industriel, 1A, 2016–2017
Chapitre 6. GNU R
47
if ... then ... else. La structure «if (condition) instr1 else instr2» exécute instr1 si la
condition est vraie, et instr2 sinon.
Les instructions instr1 et instr2 sont des instructions (ou des blocs d’instructions, délimités par {...}) quelconques. Si les instructions se terminent par une valeur, c’est cette
valeur qui est «renvoyée» par l’instruction if. La partie else est facultative. La condition est
une expression booléean quelconque ; elle peut être composée avec les opérateurs && (et), ||
(ou) et ! (non).
Il existe aussi une fonction ifelse : ifelse(b,v1,v2), qui vaut v1 si b est vrai et v2 sinon.
Cette fonction est préférable pour la définition de fonctions conditionnelles.
for(...). La structure «for(x in xs){ instructions }» exécute les instructions spécifiées,
itérativement pour chaque valeur x de xs. Il existe d’autres boucles en R.
6.1.5
Ressources complémentaires
Il existe de très nombreuses ressources sur R. Dans la plupart des cas, les tutoriaux ou
livres dédiés à R abordent les fonctionnalités du langage pour les probabilités et statistiques
(à découvrir lors de ces cours) mais aussi pour la manipulation de données (cela dépasse ce
que l’on fait en 1A).
Quelques ressources particulièrement intéressantes :
— Statistiques avec R. Pierre-André Cornillon et al., Presses Universitaires de Rennes,
2012 (disponible à la bibliothèque).
— Try R, http://tryr.codeschool.com/levels/1/challenges/1, visité le 17 septembre
2014 (introduction interactive toute à douceur).
— R Tutorial, http://www.cyclismo.org/tutorial/R/, visité le 17 septembre 2014 (faire
le tri ; en première lecture se limiter aux chapitres 1 (sauf 1.2), 2 (sauf 2.1.3, 2.1.4, 2.2),
3 (sauf 3.2), 5 et 6 (lecture rapide), 7, 15 ; les autres chapitres pourront servir pour le
cours de Probabilités ou d’autres cours dans la suite de votre scolarité).
— Quick-R, http://www.statmethods.net/, visité le 17 septembre 2014 (trucs et astuces
en R).
Grenoble INP – Génie Industriel, 1A, 2016–2017
Outils pour l’ingénieur
6.1. Une brève introduction à R
48
6.1.6
Aide mémoire R
variables
> x <- 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
opérateur d’affectation ; met la valeur spécifiée dans la variable indiquée.
> 2 -> x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (syntaxe alternative du précédent.)
> ls() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . affiche la liste des variables existantes.
> rm(x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . efface la variable x.
opérateurs
> (2^3 + 3) *5 / (7 - 2) . . . . . . . . . . . . . . . . les 4 opérations arithmétiques (+, -, *, /) et
l’opération puissance (), dans l’ensemble des
réels (ou des complexes).
> 5 %/% 2 ; 5 %%2 . . . . . . . . . . . . . . . . . . . . . . . . quotient et reste de la division euclidienne.
> x <= 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . comparaison ; les opérateurs de comparaison
sont <, <=, >, >=, == et !=.
> T & F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . et logique ; les opérateurs logiques sont & (et),
| (ou), ! (non).
vecteurs
> c(1,2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vecteur 1 .
2
> cbind(1,2,3,4) . . . . . . . . . . . . . . . . . . . . . . . .
> rbind(1,2,3,4) . . . . . . . . . . . . . . . . . . . . . . . .
vecteur colonne [ 1; 2; 3; 4 ]> .
vecteur ligne [ 1; 2; 3; 4 ] 2 .
> v[2] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . deuxième élément du vecteur v.
> x + y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . addition composante par composante (similaire pour les autres opérateurs y compris *)
> x %*% y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . produit scalaire de x et y.
> length(v) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . longueur (nombre d’éléments) du vecteur v.
> t(v) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . transposée du vecteur v.
> 2:5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . raccourci pour c(2,3,4,5) 3 .
> seq(2, 3, by=0.1) . . . . . . . . . . . . . . . . . . . . . séquence (sous forme de vecteur) dont les élements vont de 2 à 3 par pas de 0,1.
2. cbind(c(...)) (ou rbind(c(...))) permet de lever l’ambiguïté de c(...) en imposant clairement que
le vecteur soit colonne (ou ligne) ; en fait, le résultat est une matrice à une colonne (ou une ligne). Les fonctions
cbind et rbind sont à utiliser avec précaution car elles permettent de faire bien plus que simplement créer des
vecteurs.
3. Attention : 2:5+1 équivaut à (2:5)+1 et non pas à 2:6.
Outils pour l’ingénieur
Grenoble INP – Génie Industriel, 1A, 2016–2017
Chapitre 6. GNU R
49
> seq(2, 3, length.out=10) . . . . . . . . . . . . . séquence (sous forme de vecteur) de 10 élements équi-répartis de 2 à 3 (inclus).
matrices
> matrix(c(1,2,3,4),nrow=2) . . . . . . . . . . .
> matrix(c(1,2,3,4),nrow=2,byrow=T) . .
> matrix(c(1,2,3,4,5,6),ncol=3) . . . . . . .
1 3
.
2 4
1 2
matrice 3 4 .
1 3 5
matrice
.
2 4 6
matrice
> A[1,2] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . l’élément de la ligne 1, colonne 2 de A.
> A[1,] ; A[,2] . . . . . . . . . . . . . . . . . . . . . . . . .
la ligne 1, la colonne 2 de A.
> dim(A) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . les dimensions de A ; dim(A)[1] est le nombre
de lignes, dim(A)[2] est le nombre de colonnes.
> A + B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . addition composante par composante (similaire pour les autres opérateurs y compris *)
> A %*% B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
produit matriciel de la matrice A par la matrice
B (ne pas confondre avec A*B).
> x %*% A %*% x . . . . . . . . . . . . . . . . . . . . . . . . . . . forme quadatrique (x> Ax) pour un vecteur x
et une matrice A.
> t(A) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . transposée de la matrice A.
> det(A) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . déterminant de la matrice A.
> solve(A) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
inverse de la matrice A.
> solve(A,b) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vecteur solution du système A %*% x == b.
> eigen(A) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
éléments propres de la matrice A.
> eigen(A)$values . . . . . . . . . . . . . . . . . . . . . . . vecteur des valeurs propres de A (par module
décroissant).
> eigen(A)$vectors . . . . . . . . . . . . . . . . . . . . . . matrice des vecteurs propres associés (dans le
même ordre) 4 .
fonctions mathématiques usuelles
> cos ; sin ; tan . . . . . . . . . . . . . . . . . . . . . . . fonctions trigonométriques usuelles 5 .
> acos ; asin ; atan . . . . . . . . . . . . . . . . . . . . leurs réciproques.
> atan2(y,x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . angle entre l’axe des abscisses et le point de
coordonnées (x, y).
> sqrt ; exp ; abs . . . . . . . . . . . . . . . . . . . . . . racine-carrée, exponentielle, valeur absolue.
> log(x) ; log2(x) ; log10(x) . . . . . . . . . logarithmes de x (resp. base e, 2 et 10).
4. Ainsi eigen(A)$values[2] est la deuxième valeur propre, avec pour vecteur propre associé
eigen(A)$vectors[,2].
Grenoble INP – Génie Industriel, 1A, 2016–2017
Outils pour l’ingénieur
50
6.1. Une brève introduction à R
calculs analytiques
> integrate(f,lower=a,upper=b) . . . . . . . . intégrale de f sur [a; b].
> optimize(f,lower=a,upper=b) . . . . . . . . . minimum de f sur [a; b] (f : R → R).
> nlm(f,z) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
minimum de f à partir de z (f : Rn → R).
fonctions sur les vecteurs (ou séquences)
> max(v) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . plus grand élément de v.
> min(v) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . plus petit élément de v.
> which.min(v) . . . . . . . . . . . . . . . . . . . . . . . . . . . indice du plus petit élément de v.
> which.max(v) . . . . . . . . . . . . . . . . . . . . . . . . . . . indice du plus grand élément de v.
> which(v) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
indice des éléments TRUE de v.
> mean(v) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
moyenne des éléments de v.
> sum(v) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . somme des éléments de v.
> sort(v) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
éléments de v triés par ordre croissant.
> order(v) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
indices de v dans l’ordre croissant des éléments.
> sapply(x,f) . . . . . . . . . . . . . . . . . . . . . . . . . . . . applique à chaque élément du vecteur x la
fonction f (et renvoie le résultat sous forme
de vecteur).
graphiques
> plot(x,y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . trace y en fonction de x (x et y sont deux vecteurs de même longueur).
> plot(x,y, type="l", col="red") . . . . .
trace y en fonction de x, avec des lignes rouges
(les principaux types de tracé sont : "l" (lines),
"p" (points), "b" (both)).
> plot(sqrt, 0, 10) . . . . . . . . . . . . . . . . . . . . . trace la fonction racine-carrée sur [1 : 10].
Remarque : la fonction plot admet de très nombreux paramètres, dont :
— sub="Titre" pour définir un titre.
— xlab="x" et ylab="y" pour définir le nom des axes.
— xlim=c(10,20) et ylim=c(1,5.3) pour définir les intervalles sur chaque axe.
— add=T pour ajouter une courbe à un graphique existant.
Outils pour l’ingénieur
Grenoble INP – Génie Industriel, 1A, 2016–2017
Chapitre 6. GNU R
51
définition de fonctions et structures de contrôle
> f <- function(x){ x + 2 } . . . . . . . . . . . .
définit la fonction f : x 7→ x + 2.
> f(3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . renvoie la valeur de f en 3.
> g <- function(x,y){ x*y + 2 } . . . . . . .
définit la fonction g : (x, y) 7→ xy + 2.
> if (x < 0) 1 else 2 . . . . . . . . . . . . . . . . . .
vaut 1 si x est négatif, 2 sinon
> for(i in xs) f(i) . . . . . . . . . . . . . . . . . . . . . pour chaque élément i du vecteur xs, faire
f(i).
interactions avec l’environnement
> q() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . quitte R.
> q("yes") . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
quitte R en sauvegardant la session de travail.
> help("truc") . . . . . . . . . . . . . . . . . . . . . . . . . . . affiche l’aide sur truc (si l’aide est installée et
qu’une aide est associée à truc).
> ?truc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (idem)
> source("script.R") . . . . . . . . . . . . . . . . . . . . lit le fichier script.R et exécute chacune de
ses lignes comme autant de commandes.
> load("session.Rdata") . . . . . . . . . . . . . . . . charge le fichier session.Rdata, sauvegarde
d’une session R précédente.
> save.image("session.Rdata") . . . . . . . . . enregistre sa session (tous les objets existants)
dans le fichier session.Rdata.
> getwd() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
renvoie le nom du répertoire de travail.
> setwd("P:") . . . . . . . . . . . . . . . . . . . . . . . . . . . . définit P: comme répertoire de travail (si ce
répertoire est valide).
6.2
Prise en main de R (et RStudio)
À GI, nous utilisons R via le logiciel RStudio, un environnement de développement pour
R qui simplifie les interactions avec ce dernier. Pour lancer RStudio à partir du «menu démarrer» : choisir Tous les programmes puis Logiciels pédagogiques puis RStudio. RStudio se présente
comme ceci :
Grenoble INP – Génie Industriel, 1A, 2016–2017
Outils pour l’ingénieur
.
52
6.2. Prise en main de R (et RStudio)
La «zone d’interaction avec R» (ou «console») est l’endroit où s’exécute R ; c’est là qu’il
faut taper les calculs et autres commandes, lire les résultats, etc.
La zone «variables» indique toutes les variables connues avec leurs valeurs.
La zone «affichage de l’aide, des graphiques, ...» permet, comme son nom l’indique, d’afficher l’aide, les graphiques, etc.
E XERCICE 6.1 : P REMIERS
√ CALCULS
7
[1] Calculez (3 + 4 − 6)/2, 67 et sin( 3π
).
4
[2] Définissez x = tan(3), et y = cos(x). Que vaut y ?
[3] Définissez une variable b valant vrai, et une variable mot valant «bonjour».
[4] Affichez la liste de toutes les variables existantes.
[5] Supprimez mot.
[6] Échangez le contenu de x et y.
E XERCICE 6.2 : I NTERACTIONS AVEC L’ ENVIRONNEMENT
[1] La valeur NaN est un «nombre» très particulier. Quelle est sa signification (lire l’aide) ?
[2] Que fait la fonction diag ?
Téléchargez (de Chamilo) le fichier exemple.R et enregistrez-le dans un dossier approprié
(typiquement, P:\AnalyseNumerique).
[3] Ouvrez ce fichier (avec le bloc-notes ou un quelconque éditeur de texte). Quel est son contenu ?
Copier-coller le dans R. L’exécution est-elle conforme à vos attentes ?
). Le fichier s’ouvre au dessus
[4] Ouvrez ce fichier avec RStudio (File puis Open File ; ou icône
de la console.
[5] Exécutez le contenu de ce fichier (bouton
en haut à droite du contenu du fichier).
Notez que l’exécution du fichier est effectuée, dans R, par la commande
Outils pour l’ingénieur
Grenoble INP – Génie Industriel, 1A, 2016–2017
Chapitre 6. GNU R
1
53
source ( 'P :\ AnalyseNumerique \ exemple . R ')
Cette fonction source permet de charger le contenu d’un fichier de commandes R (en exécutant ces commandes).
À côté de
, remarquez le bouton
: celui-ci permet d’exécuter les lignes
sélectionnées du fichier de commandes (ou la ligne avec le curseur en l’absence de sélection).
[6] Ajoutez la commande 5*7 au fichier de commandes, et exécutez cette ligne (seulement).
Dans vos diverses utilisations de R, vous serez amenés à charger des fichiers de commandes (fichier textes .R, chargés avec source), des sessions (fichiers binaires .Rdata, chargés avec load), des fichiers de données, etc. Pour manipuler facilement ces fichiers, il est
pratique de savoir dans quel dossier (ou répertoire) R les cherche...
[7] Affichez votre répertoire de travail (getwd(), get working directory), puis changez-le pour
votre répertoire d’analyse numérique (setwd(), set working directory).
[8] Enregistrez votre session (save.image) ; faîtes bien attention à pouvoir retrouver ce fichier.
Le fichier crée est une copie de la «mémoire» de R que vous pouvez recharger plus tard
(load) pour continuer le travail commencé. Attention : lorsqu’on charge une session, celle-ci
est ajoutée à la session en cours, ce qui peut donner un ensemble confus ; de plus, s’il y a des
variables de même nom, celles de la session chargée remplacent les autres.
Lorsque vous quittez RStudio, ce dernier vous propose d’enregistrer la session en cours.
Vous êtes maintenant capable d’une utilisation basique mais suffisante de RStudio. Pratiquez
pour que tout devienne simple, et n’hésitez pas à explorer le logiciel pour découvrir tout ce qu’il
peut faire pour vous. Pensez à utiliser la touche tabulation (pour compléter les noms de fonctions
et variables, mais aussi les noms de fichiers) qui permet de gagner beaucoup de temps et d’éviter
beaucoup de fautes de frappes.
Chaque fois que vous utilisez R, il est fortement recommandé de taper vos commandes dans un
fichier de commandes (typiquement au nom de l’exercice) afin de garder une trace de ce que vous faîtes
et de commenter ce fichier (#...). N’hésitez pas, non plus, à enregistrer vos sessions pour pouvoir
poursuivre votre travail plus tard.
E XERCICE 6.3 :M ANIPULATION

 DE
 VECTEURS
1
6
[1] Définissez ~x =  5  et ~y =  −2 .
−2
0
[2] Calculez ~x + ~y , kxk2 (norme euclidienne) et ~x> ~y (produit scalaire).
[3] Soit ~z = [ 1; 2; 3; . . . ; 100 ]> . Calculez k~zk2 .
? [4] Calculez le produit scalaire de et [ 1; 4; 9; 16; . . . ; 121 ]> (vecteurs des 11 premiers carrés) et
[ 2; 4; 8; . . . 2048 ]> (vecteurs des 11 premières puissances de 2).
? [5] Générez deux vecteurs ~x et ~y, aléatoires, de longeur 50 (la fonction runif(n,a,b) génère
un vecteur de longueur n avec des nombres tirés uniformément entre a et b) et déterminez
l’ensemble et le nombre d’indices tels que ~x est plus grand que ~y .
[6] Déterminez le nombre de multiples de 7 pairs entre 1 et 100.
[7] La somme [ 1; 2; 3; 4; 5; 6 ]+[ 10; 20 ] n’est pas définie mathématiquement ... que vaut-elle avec
R?
Grenoble INP – Génie Industriel, 1A, 2016–2017
Outils pour l’ingénieur
6.2. Prise en main de R (et RStudio)
54
E XERCICE 6.4 : C ALCUL MATRICIEL
Soient la matrice M, et le vecteurs ~v suivant :


1
3 0
M =  −5 2 3 
1 −2 4


1
~v =  −1 
3
[1] Calculez 2A et A2 . Quel est le résultat des commandes M*M et M^2 ?
[2] Quelle valeur R donne-t-il à la somme M+v ? et au produit M*v ?
[3] Calculez l’inverse M.
[4] Résolvez
A~x = ~v .

−1
−1
1
[5] Soit A =  −4, 5 2, 5 4, 5 . Déterminez ses valeurs propres. Ses vecteurs propres sont-ils
−3, 5 3, 5 3, 5
orthogonaux ? La matrice est-elle inversible ?
[6] Extrayez de la matrice A la sous-matrice obtenue en supprimant la première ligne et la
deuxième colonne.
E XERCICE 6.5 : G RAPHIQUES
[1] Tracez la fonction sinus entre 0 et 5. La courbe doit être rouge, les axes doivent s’appeler «x»
et «sin(x)», et le graphique «Fonction sinus entre 0 et 5».
[2] Ajoutez la fonction cosinus, en vert, sur le graphique précédent.
[3] Tracez le nuage de points correspondant aux données suivantes :
âge (années) 0 1 2
4
6
9 12 15 18 21
taille (cm)
49 73 84 100 112 129 148 161 163 163
Nommez votre graphique et les axes.
Remarque : R propose une variété de graphiques impressionnante et une très grande flexibilité
dans leur conception. Nous nous limitons ici au strict minimum.
E XERCICE 6.6 : F ONCTIONS ET PREMIERS PAS DE PROGRAMMATION EN R
Remarque : si un calcul ne s’arrête pas, cliquez sur le panneau «STOP» en haut à droite
de la console !
[1] Définissez f : x 7→ cos(x2 + 1) et tracez-la sur l’intervalle [−5; 5]. Que vaut f (3) ?
[2] Déterminez le minimum de f sur [0; 2] (utilisez optimize). La réponse est-t-elle correcte ?
[3] Calculez l’intégrale de f sur [0; 2] (utilisez integrate).
[4] Définissez g : (x; y) ∈ R2 7→ 2x2 + y 2 − 4xy.
[5] Définissez h : ~z ∈ R2 7→ 2z12 + z22 − 4z1 z2 .
[6] Déterminez le minimum de h sur R2 (utilisez nlm avec un point de départ de votre choix).
La réponse vous semble-t-elle juste ? Pourquoi ne peut-on pas utiliser nlm pour trouver un
minimum de g ?
Outils pour l’ingénieur
Grenoble INP – Génie Industriel, 1A, 2016–2017
Chapitre 6. GNU R
55

si x < 0
 −2x
2
x +3
si x ∈ [0; 3] et tracez-là sur [−5; 5].
[7] Définissez A : x 7→
 3
(x − x2 − x)/10 si x > 3
[8] Utilisez sapply pour calculer le vecteur [ A(−5); A(−4); . . . ; A(4); A(5) ].
? [9] Définissez une fonction fact(n) qui calcule la factorielle de n (supposé entier positif), en
utilisant une boucle for.
? [10] Soit la suite définie par u1 = 1 et un+1 =
3+un
.
2
Calculez le vecteur [ u1 , u2 , . . . , u20 ] (utiliser
une boucle for ; de plus, il est possible de rajouter des éléments à un vecteur, simplement en
donnant une valeur à cet élément).
n
? [11] Même question pour la suite définie par u1 = 1 et un+1 = 1+u
.
n
? [12] Définissez une fonction suite(f,u1,n) qui renvoie le vecteur [ u1 ; u2 ; . . . ; un ] pour une suite
définie par u1 = u1 et un+1 = f (un ), où f est une fonction de la forme f (n, un ) pour plus de
généralité.
u /2
si n est pair
?? [13] Soit la suite définie par un+1 = 3un + 1 si n est impair . Une conjecture célèbre (dite
n
Conjecture de Collatz ou de Syracuse) énonce que, quelque soit u1 ∈ N∗ , il existe n tel que
un = 1. Vérifiez expérimentalement cette conjecture pour u1 ≤ 100.
[14] On appelle «temps de vol» le plus petit indice tel que un = 1 (en partant de u1 = 15, le temps
de vol est de 18 ; pour u1 = 127, il est de 47). Pour quel u1 ≤ 1000 le temps de vol est-il le
plus grand ?
Pour plus d’information sur cette suite mathématiquement surprenante, voir par exemple
http://fr.wikipedia.org/wiki/Conjecture_de_Syracuse.
Grenoble INP – Génie Industriel, 1A, 2016–2017
Outils pour l’ingénieur
C HAPITRE 7
Traitement de texte
Un traitement de texte est un logiciel permettant de faire la mise en forme typographique
d’un texte. Il existe de nombreux traitements de texte et il ne s’agit pas d’apprendre à s’en
servir d’un en particulier, mais de connaître les fonctionnalités que l’on peut attendre d’un
tel logiciel 1 .
7.1
Un mot sur les formats de documents
Avant de commencer à se servir d’un traitement de texte, il est important d’avoir en tête
une limite importante des fichiers produits par les traitements de texte.
Un traitement de texte n’est pas un éditeur de texte : il permet, certes, la saisie, mais cette
saisie est nécessairement formatée. En particulier chaque logiciel (voire chaque version d’un
logiciel) utilise son propre format ce qui peut poser des problèmes d’interopérabilité. Ainsi
un document ne sera pas toujours interprété de la même façon et la forme pourra changer
d’une personne à l’autre ; il est même possible que tout ou partie du document ne soit pas
lisible si l’autre personne/ordinateur n’est pas équipé du bon logiciel dans la bonne version.
Ceci est particulièrement vrai si votre document comporte des schémas, graphiques et autres
équations. De ce fait, un document enregistré dans un format propre à un traitement de texte
n’est pas adapté à une diffusion ; ce n’est qu’un document de travail.
Pour diffuser un document, il est donc impératif de l’enregistrer en un format standard et ouvert
(PDF, HTML, ...), ce que permettent tous les traitements de texte modernes 2 . En ne le faisant
pas, vous courrez le risque que votre correspondant ne puisse pas lire votre document, ou le
découvre dans une forme dégradée impropre à une lecture agréable mais propice à donne
une première impression mauvaise de votre travail.
7.2
Structure logique et mises en forme
Un traitement de texte a deux finalités :
1. permettre une mise en forme qui mette en évidence la structure d’un document ;
2. faciliter toutes les tâches liées à l’écriture d’un document.
La première finalité est la raison d’être d’un traitement de texte. Cela signifie qu’il faut
distinguer la structure logique de sa mise en forme 3 . Ainsi, d’une part, pour chaque élément,
1. Les traitements de texte n’ont pas l’exclusivité de la mise en forme de documents ; des logiciels de composition, par exemple TEX/LATEX (qui a servi à composer le présent document), permettent de faire cela également.
2. L’avis engagé de Richard Stallman sur le sujet apporte un regard complémentaire qui pose le problème en des termes qui vont bien au delà de l’aspect technique. https://www.gnu.org/philosophy/
no-word-attachments.html
3. Ceux qui connaissent HTML/CSS savent déjà cela.
57
58
7.3. Mise en œuvre
on indique simplement sa nature logique (titre de niveau 1, titre de niveau 2, texte normal,
légende de figure...). D’autre part, on décrit comment chaque nature doit être mise en forme.
Par exemple, pour préparer le présent document j’ai simplement indiqué que «Un mot sur
les formats de documents» et «Structure logique et mises en forme» étaient des titres de
niveau 2. J’ai, par ailleurs, défini pour l’ensemble du document que les titres de niveau 2
devaient être numérotés, en bleu, dans une police de taille moyenne.
Cette séparation structure/mise en forme est essentielle : non seulement elle simplifie
beaucoup la préparation d’un document, mais elle seule permet de garantir que tous les
éléments de même nature sont représentés de même. Il permet aussi de changer d’avis quant
à la mise en forme : ainsi, il me suffit de dire que les titres de niveau 2 sont rouges pour que
tous le deviennent. En pratique, cette structuration passe par l’usage (obligatoire) des styles.
À noter que cette structuration ne se limite pas aux titres, mais s’applique à tout élément
du document. On définit ainsi un style pour le texte normal, mais on peut aussi en définir
un pour les mots importants, pour les extraits de code
Pour la deuxième finalité, faciliter la production du document, il faut toujours avoir en
tête que le rôle du rédacteur est uniquement de produire le contenu en indiquant la structure. Le reste doit être fait par le logiciel. En particulier, c’est le logiciel qui doit gérer les
numérotations (de titre, de listes...) et les renvois (en faisant des liens hypertextes), créer les
tables des matières, placer les figures...
En plus de cette aide à la composition, la plupart des logiciels incorporent également des
fonctionnalités de correction syntaxique 4 , de suivi des modifications, ou autres, qui sont très
pratiques et méritent qu’on les découvre.
7.3
Mise en œuvre
E XERCICE 7.1 :
À vous de jouer ! Créez un document dont la finalité est de découvrir ce qu’on peut
faire avec le traitement de texte de votre choix. Pour le contenu du document, vous pouvez
simplement noter vos trucs et astuces de bureautique.
Afin de produire des documents décents et sans erreurs, vous devez impérativement
savoir utiliser les styles, les numérotations et renvois automatiques et générer des tables.
Dans un deuxième temps, afin de produire des documents d’une bonne qualité visuelle,
explorez la gestion des figures, tables et autres objets flottants, la création de bibliographie,
et le formatage des en-têtes et des pieds-de-page. Lorsque vous envisagerez de faire un
document collaboratif, le suivi des modifications deviendra naturellement votre ami...
N’hésitez pas à vous inspirer du présent document pour avoir des idées de ce qu’on peut
attendre d’un traitement de texte.Vous trouverez sur CaseInE un autre exemple de mise en
forme, aux formats PDF (pour le résultat attendu) et au format ODT (pour découvrir comment faire pour certains, et les déconvenues du manque d’interopérabilité pour d’autres).
Sur CaseInE, vous trouverez également un Wiki où vous pouvez noter, pour le bénéfice
de chacun, vos trucs, astuces, liens utiles, etc.
4. Il est donc inexcusable d’utiliser des mots mal orthographiés qui n’existent pas ; se méfier par contre des
correcteurs grammaticaux qui peuvent rajouter plus de fautes qu’ils n’en enlèvent.
Outils pour l’ingénieur
Grenoble INP – Génie Industriel, 1A, 2016–2017
C HAPITRE 8
Tableur
Un tableur est un logiciel permettant d’effectuer des calculs sur des tableaux de données
et de mettre en forme ces données et résultats. Les tableurs sont des outils très pratiques
et suffisamment génériques pour être utilisés dans des contextes très variés, d’autant plus
que la plupart incorporent un langage de programmation qui permet d’étendre encore leurs
possibilités.
8.1
Usage et limites des tableurs
On peut faire beaucoup de choses avec un tableur et, en pratique, beaucoup trop de tâches
sont effectuées avec un tableur qui devient un outil universel non pas parce qu’il permet de
tout faire, mais parce que tout le monde en a un 1 . Les tableurs sont d’excellents choix pour
développer de petits outils individuels ou faire des prototypes. Lorsqu’il s’agit d’industrialiser un outil (automatisations, partage des données et résultats, interfaces multi-utilisateurs,
déploiement massif), il est a peu près toujours préférable d’utiliser d’autres outils adaptés,
le tableur n’ayant servi qu’à définir les spécifications et à prouver l’intérêt et la faisabilité (ce
qui est déjà énorme).
Lors de votre vie professionnelle, et en particulier lors de vos stages, vous aurez l’occasion d’utiliser beaucoup de tableurs, et on vous demandera souvent d’en faire. Il est donc
indispensable d’avoir une compétence technique permettant de faire des traitements évolués avec de tels outils. Il est également nécessaire de bien garder en tête les limites d’un
tableur et de ses usages et de se poser la question des alternatives. Parmi les limites des
tableurs, notons :
— on ne traite, par définition, que des tableaux de données. Certes, la plupart des tableurs permettent d’ajouter des boutons, des cadres... mais les interfaces restent relativement pauvres.
— il n’y a pas d’accès concurrent et partagé 2 et un tableur n’est pas une base de données.
— les traitements évolués sont difficiles à mettre en place et sont surtout très difficiles à
maintenir.
— les fichiers produits par les tableurs dépendent fortement du logiciel (y compris la
version) qui les a enregistrés et on a, comme pour les traitements de texte (voir section 7.1) des problèmes de compatibilité et d’interoperabilité dès qu’on n’utilise pas
des fonctionnalités standards.
1. Selon la même logique que, si on ne dispose que d’un marteau, alors chaque problème est un clou.
2. Des tableurs en ligne permettent cela... avec d’autres problèmes.
59
60
8.2
8.2. Fonctionnalités d’un tableur
Fonctionnalités d’un tableur
Un tableur permet de stocker des informations sous forme de tableaux, de faire des traitements sur ces données et de mettre en forme les résultats (graphiques, mises en évidences).
En particulier, on trouve dans un tableur :
— différents types de données : nombre, texte, date...
— de très nombreuses fonctions
— mathématiques (sin, cos, log...)
— statistiques (moyenne, min, max, écart-type, tests d’hypothèses...)
— probabilistes (nombres aléatoires, densités...)
— traitement de texte (sous-chaînes, remplacement, recherche...)
— recherche dans des ensembles de données
— ...
— des mises en formes (couleur, fond, cadres) qui peuvent être conditionnées au contenu
de la case.
8.3
Mise en œuvre
E XERCICE 8.1 :
Deux tableurs sont proposés sur CaseInE, ouvrez-les et étudiez leur comportement...
Saurez-vous refaire leurs fonctionnalités à partir des tableurs ne contenant que les données ?
Au passage, vous devez apprendre à vous servir des fonctions de base (somme, min...),
du caractère $, mettre en forme des cellules. Vous devez aussi apprendre à naviguer efficacement avec les flèches et les touches de modifications, faire des copier/glisser efficaces et
des copier/coller adaptés (avec seulement valeur ou contenu ou format).
Dans un deuxième temps, explorez les possibilités des graphiques, les fonctions avancées
(notamment de recherche), les formats conditionnels. Apprenez à verrouiller des cellules,
protéger ou cacher des feuilles, valider des données. Il faudra aussi apprendre à importer et
exporter des données, faire des tableaux croisés dynamiques...
Sur CaseInE, vous trouverez également un Wiki où vous pouvez noter, pour le bénéfice
de chacun, vos trucs, astuces, liens utiles, etc.
E XERCICE 8.2 : T RAITEMENT DE DONNÉES
Lors d’un traitement de données, les données initiales sont souvent modifiées (corrections de valeur, uniformisations...) aussi est-il très important de garder une copie des données originales d’un part, et de noter les modifications effectuées d’autre part.
Sur CaseInE, vous trouverez un jeu de données auto-mpg.dat. Il contient des données 3
sur 398 voitures :
3. Ce jeu de données est une adaptation de «Auto+MPG» de UCI Machine Learning Repository. Les attributs ne sont pas décrits précisément et ont été devinés à partir des données.
Outils pour l’ingénieur
Grenoble INP – Génie Industriel, 1A, 2016–2017
Chapitre 8. Tableur
61
— mpg (miles per galon) : consommation du véhicule, exprimée en miles effectués par
galon d’essence ;
— cylinders : nombre de cylindres ;
— horsepower : puissance, en chevaux ;
— weight : poids (livres) ;
— acceleration : accélaration (en secondes pour atteindre 100 miles/h) ;
— model year : année ;
— origin : origine (1-États-Unis, 2-Europe, 3-Japon) ;
— car name : nom.
[1] Récupérer importez-le dans un tableur (il s’agit de données au format «texte seul», où les
champs sont séparés par des ; et les nombres ont comme séparateur décimal la virgule ,).
[2] Déterminez, pour chaque champs, le type de données attendu (texte, nombre, date...). Trouvez les erreurs de données, en vous servant de fonctions de type ESTTEXTE, ESTNUM, ESTVIDE...,
et en utilisant la mise en forme conditionnelle.
[3] Dans une nouvelle feuille, créez un tableau récapitulant les informations suivantes (utiliser
des formules) :
— le nombre de véhicules ;
— les moyenne, min, max et écart-type de la consommation ;
— le mode de la cylindrée ;
— le premier quartile, la médiane et le dernier quartile du poids ;
— le nombre de véhicules de chaque origine ;
— la consommation moyenne des véhicules pour chaque origine ;
— le nombre de Renault ;
— la voiture qui a la meilleure accélération.
[4] Dans une nouvelle feuille, construisez les graphiques suivants :
— Un camembert présentant la répartition des véhicules par origine.
— Un nuage de points représentant la consommation en fonction du poids. À ce nuage
de points, ajoutez une courbe de tendance et son équation ; quelle est la meilleure
courbe de tendance que vous arrivez à obtenir ?
— Un diagramme en barres représentant, pour chaque origine, la consommation moyenne
selon l’année.
[5] Refaire la même chose... avec R !
Grenoble INP – Génie Industriel, 1A, 2016–2017
Outils pour l’ingénieur
C HAPITRE 9
Communication numérique
Ce chapitre présente succinctement quelques concepts incontournables de notre vie numérique : tout d’abord les protocoles de communications, puis les documents web ou pages
HTML.
9.1
Protocoles de communication
Internet, c’est des milliards de machines qui communiquent entre elles pour des raisons
et selon des modalités très variées. Ces machines doivent se comprendre et l’on a définit
pour cela des protocoles de communication. Voici les plus courants.
9.1.1
IP (Internet Protocol)
IP est le protocole fondamental internet, celui qui permet à n’importe quelle information
d’atteindre la bonne machine. Tous les autres protocoles sont des couches rajoutées par dessus. Ainsi, pour transiter sur Internet, l’information est découpée en petits paquets et IP n’a
pas d’autre fonction que d’acheminer ces paquets à destination sans se préoccuper le moins
du monde du contenu de ces paquets 1 .
La notion fondamentale liée au protocole IP est l’adresse IP : c’est un numéro d’identification unique, associée de manière permanente ou provisoire, à chaque appareil connecté à
un réseau informatique, par exemple : 130.190.227.184.
À noter qu’Internet est structuré en réseau de réseaux, il n’est donc pas rare qu’une machine est une IP locale qui lui permet de communiquer avec une machine qui fait la passerelle vers Internet proprement dit ; dans ce cas, du point de vue extérieur, l’adresse IP de la
machine est celle de la passerelle.
En pratique, l’utilisateur humain va souvent préférer des noms de domaines plutôt que
des adresses IP, mais vous pouvez essayer de voir où vous mène le lien http://130.190.
227.184. La correspondance entre adresses IP et noms de domaine est faite grâce à des serveurs de noms de manière transparente.
9.1.2
TCP (Transmission Control Protocol)
TCP n’est pas visible pour l’utilisateur standard, car il se situe entre IP, qui identifie les
machines, et les protocoles de plus haut niveau visibles au niveau des applications. TCP n’en
1. IP a ainsi d’intéressantes propriétés : le chemin prit par les paquets est défini en temps réel à chaque
nœud et est donc imprévisible ; de ce fait, les paquets de données peuvent arriver dans n’importe quel ordre,
voire pas du tout. C’est aux autres protocoles de s’assurer que l’information est complète et non corrompue.
63
64
9.2. Documents web
est pas moins un protocole fondamental d’Internet : c’est lui qui s’assure que les données
sont bien transmises par IP.
9.1.3
HTTP (HyperText Transfert Protocol)
HTTP est le protocole de communication du World Wide Web, celui qui permet de récupérer les pages web. C’est un protocole de communication asymétrique entre un client qui
demande une page et un serveur qui fournit cette page.
Dans le protocole HTTP l’information circule en clair (toute machine faisant transiter la
communication peut savoir quelles sont les demandes et les réponses). On peut envelopper HTTP dans une connexion sécurisée en utilisant le protocole HTTPS ; dans ce cas, les
données sont chiffrées et ne sont donc pas comprises par un intermédiaire.
9.1.4
FTP (File Transfert Protocol)
FTP est le protocole de communication destiné au transfert de fichiers. Comme HTTP,
c’est un protocole de communication entre un client et un serveur, mais les fichiers peuvent
être transférés dans les deux sens. Comme HTTP, il peut être envelopper dans une connexion
sécurisée, donnant alors le protocole FTPS.
9.1.5
Courrier électronique
Le courrier électronique n’est pas à proprement parler un protocole, mais repose sur des
protocoles d’envoi et des protocoles de récupération de messages.
Le protocole d’envoi le plus commun est SMTP (Simple Mail Transfert Protocol). Il a pour
rôle d’acheminer les messages jusqu’à la bonne boîte aux lettres. La boîte aux lettres est identifiée par une adresse électronique, de la forme [email protected].
Les adresses électroniques sont insensibles à la casse 2 et peuvent être redirigées par des
alias éventuellement vers de multiples adresses.
Une fois le courrier électronique dans la bonne boîte aux lettres, il faut le récupérer avec
un client de messagerie. Les protocoles de récupération de message les plus communs sont
POP (Post Office Protocol), qui permet de récupérer et effacer des messages d’un serveur
de messagerie électronique, et IMAP (Internet Message Access Protocol) qui permet une
gestion plus complète des messages sur le serveur.
À noter qu’un courrier électronique est assimilable à une carte postale : d’une part son
contenu est visible de tous les intermédiaires qui assurent sa distribution, et d’autre part il
n’est pas fait pour transporter des fichiers, même si «ça marche».
9.2
Documents web
L’un des usages les plus connu et spectaculaire d’Internet est le World Wide Web. Les
multiples documents qui le constituent doivent pouvoir être lues avec n’importe quels navigateurs. Pour permettre cela, presque toutes les pages sont définies avec les mêmes outils :
2. La spécification officielle ne dit pas cela, mais c’est l’usage universel.
Outils pour l’ingénieur
Grenoble INP – Génie Industriel, 1A, 2016–2017
Chapitre 9. Communication numérique
65
HTML pour les décrire, CSS pour les mettre en forme et JavaScript pour les animer. Nous
allons maintenant découvrir ces trois langages.
9.2.1
HTML
HTML (HyperText Markup Language est le langage conçu pour décrire des pages web. Il
a été créé par Tim Berners-Lee en 1991 et est maintenant défini par le W3C (World Wide Web
Consortium) ; la version courante est HTML5.
Deux concepts essentiels 3 sont présents dans ce langage :
— les balises (Markup) : une page web est décrite par des balises qui indiquent la nature
de chaque élément : corps de document, titre, paragraphe, etc.
— les hyperliens, qui font que le document est un hypertexte (HyperText), qui permettent
de dépasser la linéarité d’un texte en faisant passer directement d’un élément à un
autre.
Envie d’essayer ? le W3C propose un tutorial en ligne, et je vous invite à faire les premières leçons de Editors jusqu’à Formatting, ainsi que Links et Images. N’hésitez pas à aller
découvrir le reste plus tard...
9.2.2
CSS
Vous aurez sans doute remarqué que HTML décrit une structure, mais ne dit rien quant
à la mise en forme de cette structure. Cela peut se faire, localement, par l’attribut style des
balises HTML. Mais c’est surtout le rôle, globalement, des Cascading Style Sheets, ou feuilles
de styles en cascade.
Le principe est simple : une feuille de style décrit la manière dont doivent être représentés
certains éléments, selon la même logique que les styles d’un traitement de texte. On pourra
ainsi dire qu’un titre <h1> doit être écrit en gris, gras et gros. Au fait, pourquoi cascade ?
parce qu’on peut définir des styles en cascades, les uns à la suite ou dans les autres, et que
le rendu final correspond à l’agrégation de toutes les spécifications.
Un intérêt des feuilles de style est de pouvoir changer complètement la présentation
d’un document sans en changer le contenu ; un usage sera par exemple d’adapter la mise en
forme au média utilisé (ordinateur, téléphone...). Pour voir ce que ça donne, allez faire un
tour sur le CSS Zen Garden (il n’y a qu’une page, mais des centaines de façons de la voir !).
Envie d’essayer ? le W3C propose un tutorial en ligne, et je vous invite à en faire les
premières leçons. N’hésitez pas à aller découvrir le reste plus tard...
9.2.3
JavaScript
Tout ceci est bien statique, non ? Pour mettre un peu de mouvements ou d’actions dans
une page web, rien de tel que JavaScript, ou ECMAScript, ou JScript. Ce sont tous des dialectes d’un même langage : à l’origine, on trouve JavaScript qui a été standardisé sous le
nom de ECMAScript, JavaScript restant l’implémentation du standard par Mozilla, JScript
l’implémentation par Microsoft. Vous suivez ? Le préfixe indique une filiation assez confuse
3. À noter qu’aucun de ces deux concepts est propres à HTML, et on les retrouve dans de nombreux autres
langages et documents.
Grenoble INP – Génie Industriel, 1A, 2016–2017
Outils pour l’ingénieur
66
9.3. En guise de conclusion
avec Java mais il faut surtout savoir que le rejeton a bien grandit et que, après une adolescence houleuse 4 , il vit maintenant sa vie sans trop se préoccuper de ses vieux parents. On
retrouvera tout de même certaines syntaxes comme celles des conditions ou des boucles.
Vous avez envie d’essayer ? Et oui, vous avez deviné : le W3C propose un tutorial en
ligne, et je vous invite à en faire les premières leçons. Pour aujourd’hui, on se contentera de
l’introduction, mais n’hésitez pas à aller découvrir le reste plus tard...
9.2.4
Au delà ?
Les trois quarts d’heures passés à faire des pages web ne font pas de vous des experts,
mais vous avez les points d’entrée, il ne manque plus que la pratique... Ah, au fait : vous
trouvez une page jolie et vous voudriez avoir la même ? Pas de souci, il suffit de regarder
son code ! Tous les navigateurs permettent cela 5 . C’est très utile pour pomper du code apprendre des bonnes pratiques — ou de mauvaises, le code étant parfois infâme.
Il resterait beaucoup à dire... que la plupart des pages sont en fait générées par les serveurs (avec des langages comme PHP), que JavaScript a été étendu par des langages comme
AJAX ou JSON qui facilitent les interactions... et que dans la plupart des cas, on utilise des
systèmes de gestion de contenu (SGC ou CMS) qui font tout ce travail à notre place.
9.3
En guise de conclusion
La communication sur Internet est une com-munication : si on reçoit de l’information
c’est qu’on en a transmis. Nous reviendrons sur ce point, mais vous pouvez d’ores et déjà
découvrir certaines de vos traces sur http://www.kamick.org/z/giem/trace-me.html.
4. JavaScript est maintenant relativement bien défini et surtout uniformément supporté ; dans les années
2000, il y avait au contraire une véritable bataille entre navigateurs pour imposer sa version, chacun cherchant
à proposer des fonctionnalités propres.
5. Avec Firefox : Ctrl+U ou clic-droit puis «Code source de la page».
Outils pour l’ingénieur
Grenoble INP – Génie Industriel, 1A, 2016–2017
Téléchargement