Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision

Target

Select target project
  • orestis.malaspin/math_tech_info
  • jerome.chetelat/math_tech_info
  • julien.borel/math_tech_info
  • xavier.perret/math_tech_info
  • ilias.nhairi/math_tech_info
  • julien.seemulle/math_tech_info
  • michael.elkharro/math_tech_info
  • fabien.lometti/math_tech_info
  • guillaum.pin/math_tech_info
  • quentin.rod/math_tech_info
  • simon.cirilli/math_tech_info
11 results
Select Git revision
Show changes
Commits on Source (77)
Showing
with 992 additions and 262 deletions
......@@ -2,6 +2,7 @@ image: omalaspinas/pandoc:latest
variables:
GIT_SUBMODULE_STRATEGY: recursive
GIT_SSL_NO_VERIFY: 'true'
before_script:
##
......@@ -36,6 +37,7 @@ build_only:
- make
- make deploy
- rsync -avzz mti ur1bg_malas@ur1bg.ftp.infomaniak.com:web/malaspinas/
build_artifacts:
script:
......
......@@ -10,7 +10,7 @@ Nous pouvons aussi exprimer cette notion de la manière suivante. Considérons d
---
#### Exemple (Fonctions, généralités) {-}
Illustration (Fonctions, généralités) #
1. La tension $U$ est une fonction de la résistance $R$ et du courant
$I$ $$\begin{aligned}
......@@ -33,7 +33,7 @@ $$y=g(f(x)).$$
---
#### Exemple (Fonctions) {-}
Illustration (Fonctions) #
1. Soit $f(x)=2\cdot x$ et $g(x)=\sqrt{x}$, alors la composition des
deux fonctions $$(f\circ g)(x)=f(g(x))=f(\sqrt{x})=2\sqrt{x}.$$
......@@ -50,7 +50,7 @@ la variable de départ $$f(f^{-1}(x))=x.$$
---
#### Exemple (Fonction inverse) {-}
Illustration (Fonction inverse) #
1. Soient $f(x)=2\cdot x$ et $f^{-1}(x)=x/2$, alors la composition des
deux fonctions $$f(f^{-1}(x))=f(x/2)=2x/2=x.$$
......@@ -67,15 +67,18 @@ la variable de départ $$f(f^{-1}(x))=x.$$
## Domaine de définition
---
#### Définition (Domaine de définition) {-}
Définition (Domaine de définition) #
Le domaine de définition, noté $D\subset{\real}$, d’une fonction
$f$, est l’ensemble de valeurs où $f$ admet une image.
---
#### Exemple (Domaine de définition) {-}
---
Illustration (Domaine de définition) #
1. Le domaine de définition de $f(x)=x$ est $D={\real}$.
......@@ -92,7 +95,9 @@ Soit $f$ une fonction et $D\subseteq{\real}$ non-vide et soient $a$ et $b$ deux
### Limite
#### Définition (Limite) {-}
---
Définition (Limite) #
Pour $f$ définie en $D$, on dit que $b$ est la
limite de $x$ en $a$ si si au fur et à mesure que $x$ se rapproche de $a$, $f(x)$ se rapproche de $b$ et nous notons $\lim\limits_{x\rightarrow a}f(x)=b$.
......@@ -107,20 +112,26 @@ Ou encore quand le but est d'écrire ça de la façon la plus compacte possible
$$\forall\varepsilon>0,\exists\delta>0\ |\ \forall x\in D,\ |x-a|<\delta\Rightarrow|f(x)-b|<\varepsilon.$$
#### Remarque {-}
---
---
Remarque #
Il n'est pas nécessaire que $a\in D$. Mais si c'est le cas et donc
$f$ est définie en $a$ alors on a $\lim\limits_{x\rightarrow a}f(x)=f(a)$.
---
#### Exemple (Limite) {-}
---
Illustration (Limite) #
Si $f(x)=x$, alors $\lim\limits_{x\rightarrow 0}f(x)=0$.
---
#### Définition (Limite, asymptote) {-}
Définition (Limite, asymptote) #
Pour $f$ définie en $D$,
on dit que la limite de $f(x)$ en $a$ est égale à l’infini si pour tout $c>0$ l’intervalle
......@@ -129,7 +140,7 @@ $a$. On dit aussi que $f$ tend vers l'infini.
---
#### Exemple (Limite, asymptote) {-}
Illustration (Limite, asymptote) #
Si $f(x)=1/x^2$, alors $\lim\limits_{x\rightarrow 0}f(x)=\infty$.
......@@ -150,11 +161,15 @@ fonction $f$ en $a$.
Si la fonction $f$ admet une limite en $a$, alors les deux limites
sont égales.
#### Exemple (Limite à gauche/droite) {-}
---
Illustration (Limite à gauche/droite) #
Si $f(x)=1/x$, alors $\lim\limits_{x\rightarrow 0^+} f(x)=\infty$ et
$\lim\limits_{x\rightarrow 0^-} f(x)=-\infty$.
---
### Comportement asymptotique
Dans certains cas il peut être intéressant d’étudier le comportement des
......@@ -202,13 +217,19 @@ $$\lim_{n\rightarrow\infty}\frac{n}{\log(n)}=\frac{A}{\log(10)}\cdot\lim_{p\righ
## Continuité
#### Définition (Continuité) {-}
---
Définition (Continuité) #
Soit $f$ une fonction définie sur un intervalle ouvert $D$ contenant
$a$. On dit que $f$ est continue en $a$ si et seulement si
$\lim\limits_{x\rightarrow a}f(x)=f(a)$.
#### Propriétés (Fonctions continues) {-}
---
---
Propriétés (Fonctions continues) #
Soient $f$ et $g$ deux fonctions continues en $a$ et $b$ un réel:
......@@ -220,23 +241,35 @@ Soient $f$ et $g$ deux fonctions continues en $a$ et $b$ un réel:
4. $h=g\circ f$ est continue en $a$.
#### Définition (Continuité sur un intervalle) {-}
---
---
Définition (Continuité sur un intervalle) #
Une fonction $f$ est dite continue dans un intervalle $D=]a;b[$ si et
seulement si elle est continue en tout point de $D$. De plus, elle est
continue sur $D=[a,b]$ si elle est continue sur $]a;b[$ et continue à
droite en $a$ et à gauche en $b$.
#### Théorème (Valeurs intermédiaires) {-}
---
---
Théorème (Valeurs intermédiaires) #
Soit $f$ une fonction continue
sur $D$, et $a,b$ deux points contenus dans $D$ tels que $a<b$ et
$f(a)<f(b)$, alors $$\forall y\in [f(a);f(b)],\ \exists\ c\in [a,b] |f(c)=y.$$
Nous pouvons bien sûr énoncer un résultat similaire dans le cas $f(a9>f(b)$.
---
## Dérivées
#### Définition (Dérivée en un point) {-}
---
Définition (Dérivée en un point) #
Soit $f$ une fonction définie sur $D$ et $a\in D$. On dit que $f$ est
dérivable en $a$ s’il existe un $b$ (appelé la dérivée de $f$ en $a$)
......@@ -244,17 +277,29 @@ tel que $$\begin{aligned}
&\lim\limits_{h\rightarrow 0}\frac{f(a+h)-f(a)}{h}=b,\hbox{ ou}\\
&\lim\limits_{x\rightarrow a}\frac{f(x)-f(a)}{x-a}=b.\end{aligned}$$
#### Définition (Dérivée sur un intervalle) {-}
---
---
Définition (Dérivée sur un intervalle) #
Si $f$ est dérivable en tout point de $D=]a;b[$, alors on définit $f'$
la fonction dérivée de $f$ dans l’intervalle $D$ qui associe en tout
point $x$ de $D$ la valeur dérivée de $f$.
#### Propriété {-}
---
---
Propriété #
Si $f$ est dérivable en $a$ alors $f$ est continue en $a$.
#### Propriétés {-}
---
---
Propriétés #
Soient $f$ et $g$ deux fonctions dérivables sur $D$ (dont les dérivées sont $f'$
et $g'$), et $a\in{\real}$, alors
......@@ -285,14 +330,22 @@ $C\in {\real}$, nous avons
6. $f(x)=\cos(x)$, $f'(x)=-\sin(x$).
#### Définition (Dérivée seconde) {-}
---
---
Définition (Dérivée seconde) #
Si $f'$ est dérivable sur $D$, alors sa dérivée, notée $f''$, est
appelée la dérivée seconde de $f$.
---
### Variation des fonctions
#### Propriétés (Croissance/décroissance) {-}
---
Propriétés (Croissance/décroissance) #
Soit $f'$ la fonction dérivée de $f$ sur $D$
......@@ -302,19 +355,29 @@ Soit $f'$ la fonction dérivée de $f$ sur $D$
3. Si $f'=0$ sur $D$, alors $f$ est constante sur $D$.
#### Définition (Maximum/minimum local) {-}
---
---
Définition (Maximum/minimum local) #
Une fonction admet un maximum local (respectivement minimum local) sur
un intervalle $D=]a;b[$ s’il existe un $x_0\in D$ tel que $f(x_0)\geq f(x)$
(respectivement $f(x_0)\leq f(x)$) pour tout $x\in D$.
#### Propriété (Maximum/minimum) {-}
---
---
Propriété (Maximum/minimum) #
Soient $f$ une fonction dérivable sur $D=]a;b[$ et $x_0\in D$. On dit que $f$
admet un extremum en $x_0$ si $f'(x_0)=0$. De plus si
$f'(x_0)=0$ et $f'$ change de signe en $x_0$ alors $f(x_0)$ est un
maximum ou un minimum de $f$.
---
## Etude de fonction
Effectuer l’étude de fonction de la fonction suivante
......
......@@ -45,7 +45,7 @@ a &= \frac{C}{B}=\frac{\sum_{i=1}^Nx_iy_i}{\sum_{i=1}^Nx_i^2}.
---
#### Exemple {-}
Illustration #
Soient les 4 points $(0, 0.1)$, $(1, 0.3)$, $(2, 0.3)$ et $(3, 0.4)$. La fonction d'erreur $E(a)$ s'écrit
$$
......@@ -196,7 +196,7 @@ distance maximale du zéro de $(b_1+a_1)/2^n$. On dit que cette méthode est d'o
---
#### Exercice (Racine de polynôme) {-}
Exercice (Racine de polynôme) #
Déterminer la racine du polynôme $x^4+x^3+x^2-1$ avec $a_1=0.5$ et $b_1=1$ (faire au maximum 6 itérations).
......@@ -210,7 +210,7 @@ Déterminer la racine du polynôme $x^4+x^3+x^2-1$ avec $a_1=0.5$ et $b_1=1$ (fa
Une méthode un peu plus avancée est la méthode de la fausse position (voir la @fig:false_position_method). Dans cette méthode qui est relativement similaire à celle de la bissection,
mais au lieu de diviser l'intervalle en deux parts égales à chaque itération on va choisir les point $c$, comme étant le point
où la droite reliant $g(a_1)$ et $g(b_1)$ coupe l'axe horizontal (le zéro de la droite entre $g(a_1)$ et $g(b_1)$). Le reste de l'algorithme reste exactement le même.
On choisit deux points, $a_1$ et $b_1$, où le signe de $f$ est différent, puis ont construit la droite passant par $g(a_1)$ et $g(b_1)$
On choisit deux points, $a_1$ et $b_1$, où le signe de $g$ est différent, puis ont construit la droite passant par $g(a_1)$ et $g(b_1)$
$$
y=\frac{g(b_1)-g(a_1)}{b_1-a_1}(x-a_1) + g(a_1).
$$
......@@ -232,7 +232,7 @@ La méthode de la fausse position est plus efficace que la méthode de la bissec
---
#### Exercice {-}
Exercice #
Déterminer le zéro positif de la fonction
$$
......@@ -261,7 +261,7 @@ En revanche elle est plus efficace, lorsque qu'elle converge, que ces deux méth
---
#### Exercice {-}
Exercice #
Déterminer le zéro positif de la fonction
$$
......@@ -282,7 +282,7 @@ Mais, nous n'avons pas encore vu de méthode pour déterminer les valeur de la f
---
#### Remarque {-}
Remarque #
On peut procéder de façon très similaire pour $[a,b]$ tel que
......@@ -343,7 +343,7 @@ En revanche les contraintes pour sa convergence sont plus strictes que pour les
---
#### Remarque (non-convergence ou convergence lente) {-}
Remarque (non-convergence ou convergence lente) #
Il y a un certain nombre de cas où la méthode de Newton ne converge pas.
......@@ -357,7 +357,7 @@ Il y a un certain nombre de cas où la méthode de Newton ne converge pas.
---
#### Exercice {-}
Exercice #
Déterminer le zéro de la fonction
$$
......@@ -375,7 +375,7 @@ Il suffit de remplacer $g(x)$ par $f'(x)$ et le tour est joué.
---
#### Exercice {-}
Exercice #
Écrire l'algorithme de Newton pour le cas de la minimisation d'une fonction $f(x)$ quelconque, mais continûment dérivable 2 fois.
......@@ -398,7 +398,7 @@ f:\real^n\rightarrow \real.
---
#### Exemple (Régression linéaire) {-}
Illustration (Régression linéaire) #
Dans le cas de la régression linéaire, si la droite ne passe pas par l'origine, nous avons que
la fonction de coût qui dépend de deux variables, $a$, et $b$ (et plus uniquement de $a$)
......@@ -445,7 +445,7 @@ Comme on le voit ici, pour chaque dérivée partielle, on ne fait varier qu'une
---
#### Exemple (Dérivée partielle) {-}
Illustration (Dérivée partielle) #
Les dérivée partielles de la fonction
$$
......@@ -468,7 +468,7 @@ $$
---
#### Remarque {-}
Remarque #
Pour une fonction à une seule variable, $f(x)$, on a que
$$
......@@ -488,7 +488,7 @@ pour les façon à une seule variable. Pour une fonction à deux variables, on a
---
#### Remarque {-}
Remarque #
Si $f$ est dérivable en $x$ et $y$, on a que
$$
......@@ -499,7 +499,7 @@ $$
---
#### Exemple (Dérivées partielles deuxièmes) {-}
Illustration (Dérivées partielles deuxièmes) #
Pour la fonction $f(x,y)=x^2-y^2$, on a
\begin{align}
......@@ -549,7 +549,7 @@ $$
---
#### Exemple (Gradient d'une fonction à deux variables) {-}
Illustration (Gradient d'une fonction à deux variables) #
Pour la fonction $f(x,y)=x^2-y^2$, le gradient est donné par
$$
......@@ -610,7 +610,7 @@ Le taux de variation maximal est donc la longueur du vecteur $\vec \nabla f$.
---
#### Remarque (Généralisation) {-}
Remarque (Généralisation) #
Tout ce que nous venons d'écrire ici se généralise à un nombre arbitraire de dimensions.
......@@ -711,7 +711,7 @@ Même si cela ne suffit pas à prouver mathématique que $\vec 0$ est le minimum
---
#### Question {-}
Question #
Avec ce qui précède, voyez-vous une façon de trouver le minimum de la fonction $f(x,y)$?
......@@ -736,11 +736,12 @@ On peut assez facilement se convaincre que si $\lambda$ est suffisamment petit,
peut se voir dans la @fig:gradient.
![Suite d'étapes pour la descente de gradient. En bleu on voit les courbes de niveaux (les courbes où $f(\vec x)$ est constante). Source: Wikipedia
<https://bit.ly/2Fhvn7p>](https://upload.wikimedia.org/wikipedia/commons/f/ff/Gradient_descent.svg){#fig:gradient width=70%}
<https://bit.ly/2Fhvn7p>](figs/Gradient_descent.svg){#fig:gradient
width=70%}
---
#### Exemple (quelques itérations) {-}
Illustration (quelques itérations) #
Prenons la fonction objectif $f(x,y)$ suivante
$$
......
......@@ -38,18 +38,26 @@ L’aire de sous la fonction $f(x)$ est donnée par la limite pour
$n\rightarrow\infty$ de $A^i$ ou $A^s$ (si elle existe). Dans ce cas $n\rightarrow\infty$ $A^R$ (pris en sandwich entre $A^i$ et $A^n$)
nous donne aussi l'aire sous la fonction.
#### Remarque {-}
---
Remarque #
1. Ces sommes peuvent être positives ou négatives en fonction du signe
de $f$.
2. Une implémentation informatique est immédiate, en particulier pour la somme de Riemann.
#### Définition (Intégrabilité au sens de Riemann) {-}
---
---
Définition (Intégrabilité au sens de Riemann) #
Une fonction est dite intégrable au sens de Riemann si
$$\lim\limits_{n\rightarrow\infty}A^i(n)=\lim\limits_{n\rightarrow\infty}A^s(n)=\int_a^b f(x){\mathrm{d}}x.$$
---
Dans la formule
$$\int_a^b f(x){\mathrm{d}}x,$$
$x$ est appelée
......@@ -60,15 +68,11 @@ d’intégration.
---
#### Exemple (Intégration de Riemann) {-}
Exemple (Intégration de Riemann) #
Intégrer de $f(x)=x$ dans intervalle $[0,1]$.
---
---
#### Solution (Intégration de Riemann) {-}
Solution (Intégration de Riemann) #
Il est élémentaire de calculer que cette aire vaut $1/2$ (c’est l’aire d’un
triangle rectangle de côté 1). Néanmoins, évaluons également cette aire
......@@ -89,7 +93,7 @@ $\sup\limits_{[x_i,x_{i+1}]}f(x)=f(x_{i+1})$. On a donc que
---
#### Exemple (Intégration de Riemann de $x^2$) {-}
Exercice (Intégration de Riemann de $x^2$) #
Calculer l’aire sous la courbe de $f(x)=x^2$ dans intervalle $[0,1]$.
......@@ -125,25 +129,33 @@ Si maintenant nous essayons de généraliser le calcul de l’intégrale
d’une fonction, il s’avère que le calcul d’une intégrale est l’inverse
du calcul d’une dérivée.
#### Définition (Primitive) {-}
---
Définition (Primitive) #
Soit $f$ une fonction. On dit que $F$ est une primitive de $f$ sur
l’intervalle $D\subseteq{\real}$ si $F'(x)=f(x)$ $\forall x\in D$.
---
Si $F$ est une primitive de $f$, alors on peut définir la fonction $G$
telle que $G(x)=F(x)+C$, $C\in{\real}$ qui est aussi une
primitive de $f$. On voit que la primitive de $f$ est définie à une
constante additive près. En effet, si $F'=f$ on a
$$G'=F'+\underbrace{C'}_{=0}=F'=f.$$
#### Théorème (Unicité) {-}
---
Théorème (Unicité) #
Pour $a\in D$ et $b\in{\real}$ il existe une unique
primitive $F$ telle que $F(a)=b$.
---
#### Illustration (Unicité) {-}
---
Illustration (Unicité) #
Soit $f(x)=x$, alors l’ensemble de primitives correspondantes est
$G=x^2/2+C$. Si nous cherchons la primitive telle que $G(0)=0$, il vient
......@@ -153,7 +165,7 @@ que $C=0$ et donc la primitive est unique et vaut $F(x)=x^2/2$.
---
#### Exercices (Primitives) {-}
Exercices (Primitives) #
Calculez les primitives suivantes (*indication: il s’agit de trouver les
fonctions $F(x)$ telles que $F'(x)=f(x)$*):
......@@ -186,12 +198,16 @@ pouvons récapituler des formules qui seront importantes pour la suite:
5. $\int \cos(x){\mathrm{d}}x=\sin(x)+C$.
#### Théorème (Théorème fondamental du calcul intégral) {-}
---
Théorème (Théorème fondamental du calcul intégral) #
En définissant à présent l’intégrale à l’aide de la notion
de primitive, nous avons que pour $a,b\in{\real}$ et $a<b$
$$\int_a^b f(x){\mathrm{d}}x=\left.F\right|_a^b=F(b)-F(a).$${#eq:thm_fond}
---
On dit que $x$ est la variable d’intégration. Elle est dite “muette” car
elle disparaît après que l’intégrale ait été effectuée. On peut donc
écrire l’équation ci-dessus de façon équivalente en remplaçant le
......@@ -199,7 +215,7 @@ symbole $x$ par n’importe quelle autre lettre (sauf $a,b,f,F$).
---
#### Remarque {-}
Remarque #
On notera que la constante additive $C$ a disparu de cette formule. En
effet, remplaçons $F$ par $G=F+C$, il vient
......@@ -215,7 +231,9 @@ Nous pouvons à présent définir la fonction $G(x)$ telle que
$$G(x)=\int_a^xf(y){\mathrm{d}}y=F(x)-F(a).$$ Il suit que $G(x)$
est la primitive de $f$ telle que $G(a)=0$.
#### Propriétés {-}
---
Propriétés #
Soient $f$ et $g$ deux fonctions intégrables sur un intervalle
$D=[a,b]\subseteq{\real}$, $c\in[a,b]$, et $\alpha\in{\real}$.
......@@ -240,6 +258,8 @@ On a
6. Si $f$ est impaire alors $$\int_{-a}^a f(x){\mathrm{d}}x = 0.$$
---
### Intégrales impropres
Si une des bornes d’intégration ou si la fonction à intégrer admet une
......@@ -254,12 +274,12 @@ cas de figures suivants $$\begin{aligned}
---
#### Exemple (Intégrale impropre) {-}
Exemple (Intégrale impropre) #
Calculer l’intégrale suivante
$$\int_0^\infty e^{-ax}{\mathrm{d}}x,\quad a>0.$$
#### Solution (Intégrale impropre) {-}
Solution (Intégrale impropre) #
Nous pouvons réécrire
l’intégrale ci-dessus comme
......@@ -269,7 +289,7 @@ $$\int_0^\infty e^{-ax}{\mathrm{d}}x=\lim\limits_{b\rightarrow \infty}\int_0^b e
---
#### Exercice {-}
Exercice #
Calculer l’intégrale suivante
$$\int_1^\infty \frac{1}{x^2}{\mathrm{d}}x.$$
......@@ -280,16 +300,24 @@ Lorsque nous avons une discontinuité dans la fonction $f$ au point
$c\in[a,b]$ nous avons
$$\int_a^b f(x){\mathrm{d}}x = \lim\limits_{\varepsilon\rightarrow 0}\int_a^{c-\varepsilon} f(x){\mathrm{d}}x +\int_{c+\varepsilon}^b f(x){\mathrm{d}}x.$$
#### Exercice {-}
---
Exercice #
Montrer que $$\int_{-1}^2\frac{1}{x}{\mathrm{d}}x=\ln{2}.$$
#### Définition (Valeur moyenne) {-}
---
---
Définition (Valeur moyenne) #
Soit une fonction $f$ admettant une primitive sur $[a,b]$ avec $a<b$,
alors la valeur moyenne $\bar{f}$ de cette fonction sur $[a,b]$, est définie par
$$\bar{f}=\frac{1}{b-a}\int_a^bf(x){\mathrm{d}}x.$$
---
Méthodes d’intégration
----------------------
......@@ -302,7 +330,7 @@ Le calcul d’une primitive ou d’une intégrale n’est en général pas une
chose aisée. Nous connaissons les formules d’intégration pour certaines
fonctions particulières.
#### Polynômes
Polynômes
Les polynômes s’intègrent terme à terme. Pour
$(\{a_i\}_{i=0}^{n}\in{\real}$ $$\begin{aligned}
......@@ -312,14 +340,14 @@ $(\{a_i\}_{i=0}^{n}\in{\real}$ $$\begin{aligned}
---
#### Exercice {-}
Exercice #
Intégrer la fonction suivante
$$\int (x+2)(x^3+3x^2+4x-3){\mathrm{d}}x.$$
---
#### Application de la règle de chaîne pour l’intégration
Application de la règle de chaîne pour l’intégration
Une primitive d'une fonction de la forme $f(x)f'(x)$ se calcule aisément
$$\int f(x)f'(x){\mathrm{d}}x=\frac{1}{2}f(x)^2+c.$$
......@@ -327,21 +355,21 @@ $$\int f(x)f'(x){\mathrm{d}}x=\frac{1}{2}f(x)^2+c.$$
Nous calculons par exemple
$$\int \sin(x)\cos(x){\mathrm{d}}x=\frac{1}{2}\sin^2(x)+c=-\frac{1}{2}\cos^2(x)+c'.$${#eq:sin_cos}
#### Inverse de la dérivation logarithmique
Inverse de la dérivation logarithmique
Une primitive de la forme
$$\int \frac{f'(x)}{f(x)}{\mathrm{d}}x=\ln(f(x))+c.$$
---
#### Exemple {-}
Exemple #
Calculer la primitive suivante
$$
\int \frac{1}{x}{\mathrm{d}}x.
$$
#### Solution {-}
Solution #
Le calcul de la primitive de suivante
$$\int \frac{1}{x}{\mathrm{d}}x=\int \frac{(x)'}{x}{\mathrm{d}}x=\ln(x)+c.$$
......@@ -354,12 +382,16 @@ Une des façons les plus simples de calculer une primitive est
de reconnaître la règle de chaîne dans le terme à intégrer
$$\int g'(f(x))f'(x){\mathrm{d}}x=\int [g(f(x))]' {\mathrm{d}}x=g(f(x))+c.$$
#### Illustration {-}
---
Illustration #
Si $g$ est définie comme $g(x)=x^{-1}$ et $f(x)=3x^2+2$, alors la
primitive
$$\int \frac{f'(x)}{g'(f(x))}{\mathrm{d}}x=\int -\frac{6 x}{(3x^2+2)^2}{\mathrm{d}}x=\frac{1}{3x^2+2}+c.$$
---
### Intégration par parties
La dérivation d’un produit de fonctions $f\cdot g$ s’écrit
......@@ -384,7 +416,7 @@ Des “règles” pour utiliser cette technique seraient que
---
#### Exemple {-}
Exemple #
Calculer les primitives suivantes
......@@ -392,7 +424,7 @@ Calculer les primitives suivantes
2. $\int \cos(x)\sin(x){\mathrm{d}}x$.
#### Solution {-}
Solution #
1. $\int x e^x{\mathrm{d}}x$. $g(x)=x$, $f'(x)=e^x$ et donc $g'(x)=1$,
$f(x)=e^x$. Il vient
......@@ -415,11 +447,11 @@ parties.
---
#### Exemple {-}
Exemple #
Calculer l’intégrale de $\int x^2 e^x{\mathrm{d}}x$.
#### Solution {-}
Solution #
En posant $g(x)=x^2$,
$f'(x)=e^x$ et donc $g'(x)=2x$, $f(x)=e^x$. Il vient
......@@ -432,7 +464,7 @@ $$\int x^2 e^x{\mathrm{d}}x=x^2e^x-2\left(x e^x -\int e^x{\mathrm{d}}x\right)=x^
---
#### Exercice {-}
Exercice #
Calculer les primitives suivantes
......@@ -453,7 +485,9 @@ où $f=F'$. Si nous intégrons cette relation on obtient $$\begin{aligned}
\int_a^b f(g(y))g'(y){\mathrm{d}}y = \int_a^b [F(g(y))]'{\mathrm{d}}y=\left.F(g(y))\right|_a^b=F(g(b))-F(g(a))=\int_{g(a)}^{g(b)}f(x){\mathrm{d}}x.\end{aligned}$$
Cette relation nous mène au théorème suivant.
#### Théorème (Intégration par changement de variables) {-}
---
Théorème (Intégration par changement de variables) #
Soit $f$ une fonction continue presque partout, et $g$ une fonction dont
la dérivée est continue presque partout sur un intervalle $[a,b]$. Soit
......@@ -461,6 +495,8 @@ la dérivée est continue presque partout sur un intervalle $[a,b]$. Soit
Alors
$$\int_a^b f(g(x))g'(x){\mathrm{d}}x = \int_{g(a)}^{g(b)}f(z){\mathrm{d}}z.$$
---
Nous utilisons ce théorème de la façon suivante. L’idée est de remplacer
la fonction $g(x)$ par $z$. Puis il faut également remplacer
${\mathrm{d}}x$ par ${\mathrm{d}}z$ où nous avons que
......@@ -473,11 +509,11 @@ sur la solution.
---
#### Exemple (Changement de variable) {-}
Exemple (Changement de variable) #
Intégrer par changement de variables $\int_1^3 6x\ln(x^2){\mathrm{d}}x$.
#### Solution (Changement de variable) {-}
Solution (Changement de variable) #
En définissant $z=x^2$, nous avons ${\mathrm{d}}x={\mathrm{d}}z/(2x)$.
Les bornes d’intégration deviennent $z(1)=1^2=1$ et $z(3)=3^2=9$. On
......@@ -490,7 +526,7 @@ obtient donc $$\begin{aligned}
---
#### Exercice {-}
Exercice #
Calculer les primitives suivantes par changement de variable
......@@ -521,7 +557,7 @@ Pour chaque valeur de $x=x_0$, on calcule l'intégrale,
---
#### Exercice (Commutativité) {-}
Exercice (Commutativité) #
Démontrer que le produit de convolution est commutatif, soit
\begin{equation}
......@@ -538,7 +574,7 @@ ce que cela veut dire, il est intéressant de faire un calcul
---
#### Exercice {-}
Exercice #
Calculer la convolution du signal $f(t)$
......@@ -553,7 +589,7 @@ Indication: faites un dessin de ce que représente la convolution de ce $f$ avec
---
#### Interprétation avec les mains
Interprétation avec les mains
Afin d'interpréter ce que représente le produit de convolution, introduisons la fonction delta de Dirac, $\delta_a(x)$. Cette fonction est un peu particulière, elle vaut zéro partout sauf en $0$ (où elle est "infinie"), et son
intégrale vaut $1$
......@@ -586,21 +622,21 @@ On voit que de façon générale, qu'on peut interpréter la convolution de deux
---
Exercice (Convolution) {-}
Exercice (Convolution) #
Calculer la convolution de $f(x)$ avec $g(x)$, où $f(x)$ et $g(x)$ sont les fonctions
\begin{align}
f(x)&=\left\{\begin{array}{ll}
$-1,$ & \mbox{ si } -\pi \leq x \leq \pi\\
$0,$ & $\mbox{ sinon.}$
-1, & \mbox{ si } -\pi \leq x \leq \pi\\
0, & \mbox{ sinon.}
\end{array}\right.,\\
g(x)&=\sin(x).
\end{align}
---
#### Le lien avec les filtres
Le lien avec les filtres
Il se trouve que dans le cas où le filtre est linéaire (filtrer la combinaison de deux signaux
est la même chose que de faire la combinaison linéaires des signaux filtrés)
......@@ -642,7 +678,7 @@ dramatiquement la précision de l’intégration.
---
#### Remarque {-}
Remarque #
De façon générale il est difficile de connaître à l’avance la valeur
exacte de $E$. En revanche on est capable de déterminer **l’ordre**
......@@ -652,7 +688,7 @@ de l’erreur.
---
#### Définition (Ordre d'une méthode) {-}
Définition (Ordre d'une méthode) #
On dit qu’une méthode d’intégration est d’ordre $k$, si l’erreur commise
par la méthode varie proportionnellement à $\delta x^k$. On note qu’une
......
......@@ -37,13 +37,17 @@ $$x(t_0)=x_0=v\cdot t_0+B \Leftrightarrow B=x_0-v\cdot t_0.$$
Finalement, la solution du problème différentiel est donnée par
$$x(t)=v\cdot (t-t_0)+x_0.$$
#### Remarque {-}
---
Remarque #
La solution de l’équation différentielle $$x'(t)=v,\ x(t_0)=x_0,$$
revient à calculer $$\begin{aligned}
\int x'(t){\mathrm{d}}t=\int v {\mathrm{d}}t,\\
x(t)=v\cdot t + B.\end{aligned}$$
---
### Mouvement rectiligne uniformément accéléré
Dans le cas du mouvement rectiligne d’un objet dont on le connaît que
......@@ -77,7 +81,9 @@ $$x(t_0)=x_0=\frac{a}{2}\cdot t_0^2+D \Leftrightarrow D=x_0-\frac{a}{2}\cdot t_0
Finalement la solution est donnée par
$$x(t)=\frac{a}{2}\cdot (t^2-t_0^2)+v_0\cdot (t-t_0)+x_0.$$
#### Remarque {-}
---
Remarque #
La solution du problème différentiel peut également se calculer de
la façon suivante $$x''(t)=a,\ x(t_0)=x_0,\ v(t_0)=v_0.$$ revient à
......@@ -85,6 +91,8 @@ calculer $$\begin{aligned}
\int \int x''=\int \int a,\\
x(t)=\frac{a}{2}t^2+C\cdot t + D.\end{aligned}$$
---
### Évolution d’une population
Imaginons une colonie de bactéries dont nous connaissons le taux de
......@@ -257,7 +265,9 @@ ans.](figs/interets.svg){#fig:interets width="50.00000%"}
Définitions et théorèmes principaux
-----------------------------------
#### Définition (Équation différentielle ordinaire) {-}
---
Définition (Équation différentielle ordinaire) #
Soit $y$ une fonction dérivable $n$ fois et dépendant d’une seule
variable. Une **équation différentielle ordinaire** est un équation de
......@@ -267,7 +277,9 @@ $n$-ème de $y$.
---
#### Illustration {-}
---
Illustration #
L’équation suivante est une équation différentielle ordinaire
$$y''+4y'+8y+3x^2+9=0.$$
......@@ -281,24 +293,36 @@ différentielle.
Afin de classifier les équation différentielles, considérons les
définitions suivantes
#### Définition (Ordre) {-}
---
Définition (Ordre) #
L’ordre d’une équation différentielle est l’ordre le plus haut des
dérivées de $y$ qui y apparaissent. L’ordre de l’équation différentielle
$F(x,y,y',y'',...,y^{(n)})=0$ est de $n$, si $n\neq 0$.
#### Illustration {-}
---
---
Illustration #
L’équation différentielle suivante est d’ordre $3$
$$4y'''+x\cdot y'+4y+6x=0.$$
#### Définition (Condition initiale) {-}
---
---
Définition (Condition initiale) #
Une condition initiale pour une équation différentielle d’ordre $n$, est
un ensemble de valeurs, $y_0$, $y_1$, ..., $y_{n-1}$ donnée telles que
pour une valeur $x_0$ donnée on a
$$y(x_0)=y_0,\ y'(x_0)=y_1,\ ...,\ y^{(n-1)}(x_0)=y_{n-1}.$$
---
Nous souhaitons maintenant savoir sous quelles conditions une équation
différentielle admet une solution et si elle est unique. Nous n’allons
pas vraiment écrire ni démontrer le théorème d’existence et d’unicité
......@@ -307,7 +331,7 @@ version approximative et la discuter
---
#### Théorème (Existence et unicité) {-}
Théorème (Existence et unicité) #
Soit $D\subseteq{\real}$ le domaine de définition de la fonction
$y$. Soit $y:D\rightarrow E\subseteq {\real}$ une fonction à valeur
......@@ -345,7 +369,7 @@ peu les équations différentielles en fonction des propriétés de $F$.
---
#### Définition (Linéarité) {-}
Définition (Linéarité) #
Une équation différentielle ordinaire d’ordre $n$ est dite linéaire si
on peut l’écrire sous la forme
......@@ -362,19 +386,29 @@ L’équation ci-dessus a les propriétés suivantes
2. Les $y$ et toutes leur dérivées ont un degré polynomial de 1.
#### Illustration {-}
---
Illustration #
L’équation suivante est linéaire $$y''+4x\cdot y'=e^x.$$
L’équation
suivante n’est pas linéaire $$y\cdot y''+4x\cdot y'=e^x.$$
#### Définition (Homogénéité) {-}
---
---
Définition (Homogénéité) #
Une équation différentielle ordinaire est dite homogène si le terme
dépendant uniquement de $x$ est nul. Dans le cas où nous avons à faire à
une équation différentielle linéaire, cela revient à dire que $b(x)=0$.
#### Illustration (Homogénéité) {-}
---
---
Illustration (Homogénéité) #
Les équations suivantes sont homogènes $$\begin{aligned}
&y''+4x\cdot y\cdot y'+3x^2\cdot y^3=0,\\
......@@ -387,7 +421,9 @@ $$\begin{aligned}
---
#### Exercice (Homogénéité) {-}
---
Exercice (Homogénéité) #
Pour chacune de ces équations différentielles ordinaires
donner tous les qualificatifs possibles. Si l’équation est inhomogène
......@@ -425,7 +461,7 @@ un certain nombre.
---
#### Définition (Équations à variable séparables) {-}
Définition (Équations à variable séparables) #
On dit qu’une équation différentielle d’ordre 1 est à variables
séparables, si elle peut s’écrire sous la forme suivante
......@@ -435,7 +471,7 @@ $$y' a(y)=b(x).$$
---
#### Illustration {-}
Illustration #
L’équation suivante est à variables séparables
$$e^{x^2+y^2(x)}y'(x)=1.$$
......@@ -455,11 +491,11 @@ $a(y)=1$ et il vient $$y=\int b(x){\mathrm{d}}x.$$
---
#### Exemple {-}
Exemple #
Résoudre l’équation différentielle suivante $$n'(t)=r\cdot n(t).$$
#### Solution {-}
Solution #
En
écrivant $n'={\mathrm{d}}n /{\mathrm{d}}t$, on réécrit l’équation
......@@ -474,7 +510,7 @@ n(t)&=e^{r\cdot t+C}=A\cdot e^{r\cdot t},\end{aligned}$$ où $A=e^C$.
---
#### Exercice {-}
Exercice #
1. Résoudre l’équation différentielle suivante $$c'(t)=rc(t)+d.$$
......@@ -526,12 +562,14 @@ Finalement, on a que la solution de l’équation générale de l’équation
inhomogène est
$$y=y_p+y_h=\left(\int \frac{b(x)}{e^{\int a(x){\mathrm{d}}x}}{\mathrm{d}}x+C\right)e^{\int a(x){\mathrm{d}}x}.$$
#### Exemple {-}
---
Exemple #
Résoudre l’équation suivante
$$U_C'(t)+\frac{U_C(t)}{RC}=\frac{U}{RC}.$${#eq:rc_inhom}
#### Solution {-}
Solution #
On
commence par résoudre l’équation homogène
......@@ -546,14 +584,20 @@ $$U_c(t)=\left(U e^{\frac{1}{RC} t}+D+A\right)e^{-\frac{1}{RC}t}=U+(D+A)e^{-\fra
où $C=D+A$. Pour le cas de la charge du condensateur, on a de plus
$U_c(0)=0$. On peut donc fixer la constante $C=-U$.
---
Résoudre les équations différentielles suivantes
#### Exercice {-}
---
Exercice #
1. $$y'+2y=t^2$$
2. $$y'+y=\frac{1}{1+e^t}.$$
---
### Équations de Bernoulli
Il existe des équations particulières qui peuvent se ramener à des
......@@ -574,11 +618,11 @@ de la méthode de la section @sec:eq_lin.
---
#### Exemple {-}
Exemple #
Résoudre l’équation de Bernoulli suivante $$y'-y-x\cdot y^6=0.$$
#### Solution {-}
Solution #
Avec
la substitution $z=y^5$, on obtient $$z'-5z+5x=0.$$ Cette équation se
......@@ -614,7 +658,7 @@ la résoudre.
--
#### Exercice {-}
Exercice #
Résoudre l’équation de Riccati suivante $$y'+y^2-\frac{2}{x^2}=0.$$
Indication: la solution particulière a la forme $y=\frac{a}{x}$, avec
......@@ -660,7 +704,7 @@ l’équation différentielle.
---
#### Propriétés {-}
Propriétés #
Ces propriétés (qui caractérisent le mot "linéaires") sont à démontrer en exercice.
......
......@@ -48,10 +48,14 @@ vérifier la commutativité $$\begin{aligned}
(a,b)\cdot(c,d)&=(a\cdot c-b\cdot d,a\cdot d+b\cdot c)\nonumber\\
&=(c\cdot a-d\cdot b,d\cdot a+c\cdot b)=(c,d)\cdot (a,b).\end{aligned}$$
#### Exercice {-}
---
Exercice #
Vérifier l’associativité du produit sur notre ensemble ${\real}^2$.
---
Regardons à présent ce qui se passe si on étudie les ensemble de
nombres dans ${\real}^2$ où le deuxième nombre du couple est nul tels que $(a,0)$. Si on additionne
deux tels nombres ont obtient $$(a,0)+(b,0)=(a+b,0).$$ On constate donc
......@@ -186,7 +190,7 @@ $${\mathrm{Re}}(z)=\frac{1}{2}(z+{\bar{z}}),\quad {\mathrm{Im}}(z)=\frac{1}{2i}(
---
#### Exercice {-}
Exercice #
Démontrer ces trois relations.
......@@ -199,7 +203,7 @@ $$\begin{aligned}
---
#### Exercice {-}
Exercice #
Démontrer ces relations.
......@@ -213,7 +217,9 @@ allons considérer un ensemble $V$ muni d’une addition et d’une multiplicati
à un ensemble $E$. Dans notre cas $E$
sera ${\real}$ ou ${\mathbb{C}}$ (l'ensemble des nombres complexes) principalement.
#### Définition {-}
---
Définition #
On appelle espace vectoriel sur $E$, un ensemble $V$, dont les éléments
appelés vecteurs et notés $v$, sont sont munis des opérations
......@@ -244,8 +250,11 @@ propriétés suivantes
3. La multiplication par un scalaire admet un élément neutre, noté
$1$, pour la multiplication à gauche $$1 \cdot v=v.$$
---
---
#### Exemple (Espaces vectoriels) {-}
Illustration (Espaces vectoriels) #
1. L’espace nul, $v=0$.
......@@ -286,6 +295,8 @@ propriétés suivantes
&f(\alpha \cdot x)=\alpha \cdot f(x),\quad \forall \alpha\in E,\ \mbox{et}\ x\in W.
\end{aligned}$$
---
### Base
Nous avons introduit la notion très générale d’espace vectoriel et
......@@ -321,7 +332,7 @@ $$w=u+v=u_1\cdot e_1+u_2\cdot e_2+v_1\cdot e_1+v_2\cdot e_2=(u_1+v_1)\cdot e_1+(
---
#### Illustration (Exemples de bases d'espaces vectoriels) {-}
Illustration (Exemples de bases d'espaces vectoriels) #
1. Pour l’espace des fonctions polynomiales $f(x)=\sum_{i=0}^Na_ix^i$
les fonction $e_i=x^i$ forment une base.
......@@ -336,13 +347,19 @@ Plus formellement nous allons introduire un certain nombre de concepts
mathématiques pour définir une base. Considérons toujours $V$ un espace
vectoriel sur $E$.
#### Définition (Famille libre) {-}
---
Définition (Famille libre) #
Soient $\{\alpha_i\}_{i=1}^n\in E$. On dit qu’un ensemble de vecteurs
$\{v_i\}_{i=1}^n\in V$ est une famille libre si
$$\sum_{i=1}^n \alpha_iv_i=0 \Rightarrow \alpha_i=0,\ \forall i.$$
#### Exemple (Famille libre) {-}
---
---
Illustration (Famille libre) #
1. $\{e_1\}$ est une famille libre de ${\real}^2$.
......@@ -357,7 +374,11 @@ $$\sum_{i=1}^n \alpha_iv_i=0 \Rightarrow \alpha_i=0,\ \forall i.$$
relie les deux. La relation est non-linéaire
$\sin(x)=\sqrt{1-\cos^2(x)}$.
#### Définition (Famille génératrice) {-}
---
---
Définition (Famille génératrice) #
On dit qu’un ensemble de vecteurs $\{e_i\}_{i=1}^n\in V$ est une famille
génératrice si
......@@ -365,7 +386,11 @@ $$\forall\ v\in V,\quad \exists \{\alpha_i\}_{i=1}^n\in E,\quad \mbox{t.q.}\quad
En d’autres termes, tout $v\in V$ peut s’exprimer comme une combinaison
linéaire des vecteur $e_i$.
#### Illustration (Familles génératrices) {-}
---
---
Illustration (Familles génératrices) #
1. $\{e_1\}$ n’est pas une famille génératrice de ${\real}^2$. On ne
peut pas représenter les vecteurs de la forme $v=(0,v_2)$,
......@@ -376,7 +401,11 @@ linéaire des vecteur $e_i$.
3. $\{e_1,e_2,v\}$, avec $v=(1,1)$ est une famille génératrice de
${\real}^2$.
#### Définition (Base) {-}
---
---
Définition (Base) #
Un ensemble de vecteurs $B=\{e_i\}_{i=1}^n$ forme une base si c’est une
famille génératrice et une famille libre. En d’autres termes cela
......@@ -386,7 +415,11 @@ est unique
$$\forall v\in V, \quad !\exists \{\alpha_i\}_{i=1}^n\in E,\quad t.q.\quad v=\sum_{i=1}^n\alpha_i v_i.$$
Les $\alpha_i$ sont appelé les coordonnées de $v$ dans la base $B$.
#### Illustration (Base de $\real ^2$) {-}
---
---
Illustration (Base de $\real ^2$) #
1. $\{e_1,e_2\}$ est une base de ${\real}^2$.
......@@ -396,6 +429,8 @@ Les $\alpha_i$ sont appelé les coordonnées de $v$ dans la base $B$.
coordonnées $\alpha=(0,0,0)$ et également les coordonnées
$\beta=(1,1,-1)$.
---
## Introduction générale sur les séries de Fourier
Dans cette sous section, nous allons voir de façon très générale les
......@@ -613,7 +648,7 @@ pouvoir calculer sa transformée de Fourier:
---
#### Exercice {-}
Exercice #
Calculer les transformées de Fourier des fonctions suivantes
......@@ -634,7 +669,7 @@ Calculer les transformées de Fourier des fonctions suivantes
---
#### Exercice {-}
Exercice #
Calculer les transformées de Fourier inverse de la fonction suivante
......@@ -649,7 +684,9 @@ Calculer les transformées de Fourier inverse de la fonction suivante
La transformée de Fourier possède plusieurs propriétés intéressantes.
#### Propriété {-}
---
Propriété #
1. Linéarité. Soit une fonction $h(t)=af(t)+bg(t)$, alors sa
transformée de Fourier est donnée par
......@@ -674,6 +711,8 @@ La transformée de Fourier possède plusieurs propriétés intéressantes.
paire (impaire), alors ${\hat{f}}(\omega)$ sera une fonction paire
(impaire).
---
La transformée de Fourier à temps discret (TFTD)
------------------------------------------------
......@@ -708,8 +747,9 @@ l’intégrale et on a $$\begin{aligned}
&=\frac{1}{2\pi}\left(\sum_{m=-\infty}^\infty f[m] \delta_{mn} 2\pi\right),\nonumber\\
&=f[n].\nonumber\end{aligned}$$
---
#### Exercice {-}
Exercice #
Calculer les transformées de Fourier (inverses quand c’est approprié) en
temps discret des fonctions suivantes
......@@ -724,6 +764,8 @@ temps discret des fonctions suivantes
0,&\mbox{ sinon.}
\end{array}\right.$$
---
Il est intéressant de noter qu’on peut représenter une suite discrète et
infinie de points par une fonction continue et périodique.
......@@ -876,7 +918,7 @@ période $N$ $${\hat{f}}[k]={\hat{f}}[k+N].$$
---
#### Exercice {-}
Exercice #
A démontrer en exercice.
......
......@@ -39,7 +39,7 @@ l’ensemble des valeurs possibles pour le dit caractère.
---
#### Illustration {-}
Illustration #
1. Cas discret: On étudie la distribution de salaires annuels dans une
entreprise. Les salaires possibles sont $40'000$, $50'000$, $60'000$
......@@ -96,14 +96,12 @@ et du benchmark de l’application (voir Tabl. @tbl:exec)
Sous forme de graphique on peut représenter le tableau des salaires sous
la forme d’un graphique bâton (voir Fig. @fig:salaires)
![Nombre salariés en fonction du
salaire.](figs/graph_salaires.svg){#fig:salaires width="50.00000%"}
![Nombre salariés en fonction du salaire.](figs/graph_salaires.svg){#fig:salaires width="50.00000%"}
ou d’un histogramme pour le temps d’exécution de l’application (voir
Fig. @fig:exec).
![Nombre d’exécutions en fonction du temps
d’exécution.](figs/graph_exec.svg){#fig:exec width="50.00000%"}
![Nombre d’exécutions en fonction du temps d’exécution.](figs/graph_exec.svg){#fig:exec width="50.00000%"}
### Fréquences
......@@ -120,7 +118,7 @@ $$f_i=\frac{n_i}{n}.$$
---
#### Exemple (Fréquences) {-}
Illustration (Fréquences) #
Les tableaux de fréquence des deux exemples précédents sont donnés par
......@@ -155,7 +153,7 @@ retrouverons dans les sections suivantes qui sont assez intuitives
---
#### Propriété (Propriétés de la fréquence) {-}
Propriété (Propriétés de la fréquence) #
1. Les fréquences sont toujours dans l’intervalle $[0,1]$
$$0\leq f_i\leq 1.$$
......@@ -190,7 +188,9 @@ tableaux @tbl:salaires et @tbl:exec (voir le
: Tableau des temps d'exécution et la fréquence et fréquences cumulées des temps d'exécution. {#tbl:exec_freqcum}
#### Exercice (Fréquence cumulée) {-}
---
Exercice (Fréquence cumulée) #
1. Tracer les graphes de la fréquence cumulée pour les deux exemples
que nous avons vus.
......@@ -198,6 +198,8 @@ tableaux @tbl:salaires et @tbl:exec (voir le
2. Que pouvons-nous déduire de la forme de la fonction (croissance,
valeur maximale)?
---
### Mesures de tendance centrale
Jusqu’ici le nombre de valeurs étudiées était limité et il est assez
......@@ -214,7 +216,7 @@ $$\bar{x}=\sum_{i=0}^{k-1}f_i\cdot x_i.$$
---
#### Exercice (Propriétés de la moyenne) {-}
Exercice (Propriétés de la moyenne) #
1. Démontrer la relation précédente.
......@@ -224,7 +226,7 @@ $$\bar{x}=\sum_{i=0}^{k-1}f_i\cdot x_i.$$
---
#### Illustration (Moyenne) {-}
Illustration (Moyenne) #
Pour l’exemple des salaires la moyenne est donnée par
$$\bar{x}_{\textrm{salaire}}=\frac{35\cdot40000+20\cdot50000+5\cdot60000+1\cdot1000000}{61}=60656.$$
......@@ -252,12 +254,16 @@ le reste est telle que $x_i\geq\tilde{x}$.
Pour l’exemple des salaires le salaire médian est de $40000 CHF$, ce qui
reflète beaucoup mieux la distribution des salaire de notre population.
#### Exercice (Moyenne, médiane) {-}
---
Exercice (Moyenne, médiane) #
Calculer la moyenne et la médiane pour l’exemple du temps d’exécution
(prendre la borne inférieure des intervalles pour chaque temps
d’exécution[^7]).
---
### Mesures de dispersion
Nous avons vu deux mesures donnant une tendance générale des caractères
......@@ -282,7 +288,7 @@ $$s=\sqrt{v}.$$
---
#### Exercice (Variance, écart-type) {-}
Exercice (Variance, écart-type) #
Démontrer les relations suivantes
......@@ -303,7 +309,7 @@ $$s=\sqrt{v}=121440.$$
---
#### Exercice (Variance, écart-type) {-}
Exercice (Variance, écart-type) #
Calculer la variance et l’écart type à partir des valeurs du benchmark
de l’application.
......@@ -331,7 +337,7 @@ semi-inter-quartile.
---
#### Exercice (Semi-inter quartile) {-}
Exercice (Semi-inter quartile) #
Calculer les intervalles semi-inter-quartiles des exemples que nous
avons vus plus tôt dans le cours.
......@@ -351,7 +357,7 @@ sera utile pour la suite.
---
#### Définition {-}
Définition #
- L’ensemble des résultats possibles du lancer de dé est
$\Omega=\{1,2,3,4,5,6\}$ et cet ensemble est appelé l’*univers* du
......@@ -505,7 +511,7 @@ comme la conséquences des trois axiomes des probabilités suivants
---
#### Définition (Axiomes des probabilités) {-}
Définition (Axiomes des probabilités) #
Soit $\Omega$ un univers. La probabilité de
réaliser un événement $A\subseteq\Omega$ est une fonction $p(A)$ qui
......@@ -527,7 +533,7 @@ De ces axiomes découlent tout un tas de théorèmes
---
#### Théorème {-}
Théorème #
Pour $A,B\subseteq\Omega$ et $\Omega$ un univers et $p$ une probabilité.
......@@ -583,7 +589,7 @@ $p(A|B)$, tel que $$p(A|B)=\frac{p(A\cap B)}{p(B)}.$$
---
#### Exercice (Probabilités conditionnelles) {-}
Exercice (Probabilités conditionnelles) #
Sur une population de 1000 hommes qui naissent, 922 atteignent l’âge de
50 ans et 665 l’âge de 70 ans.
......@@ -626,7 +632,7 @@ résultat de celui de la semaine suivante.
---
#### Exercice (Événements indépendants) {-}
Exercice (Événements indépendants) #
On jette une pièce de monnaie deux fois de
suite. Les résultats possible pour chaque jet sont: $P$, ou $F$.
......@@ -668,8 +674,7 @@ $$p(A)=\frac{1}{36}.$$ Une autre façon de visualiser ce genre de
réalisation est de l’écrire sous forme d’arbre (voir la figure
@fig:arbre).
![Représentation du tirage $26$ sous forme
d’arbre.](figs/arbre.svg){#fig:arbre width="\textwidth"}
![Représentation du tirage $26$ sous forme d’arbre.](figs/arbre.svg){#fig:arbre width="\textwidth"}
Comme pour le cas à un tirage, tout tirage successif de dés est
équiprobable et la probabilité de chaque tirage est de $1/36$.
......@@ -681,8 +686,7 @@ probabilité de cet enchaînement est obtenu en multipliant les événements
élémentaires
$$p(\{26\})=p(\{2\})\cdot p(\{6\})=\frac{1}{6}\cdot\frac{1}{6}.$$
![Représentation du tirage $26$ sous forme d’arbre avec les probabilités
associées.](figs/arbre2.svg){#fig:arbre2 width="\textwidth"}
![Représentation du tirage $26$ sous forme d’arbre avec les probabilités associées.](figs/arbre2.svg){#fig:arbre2 width="\textwidth"}
Afin de calculer la probabilité du tirage $26$ il suffit de suivre le
chemin menant de la racine à la feuille correspondante et de multiplier
......@@ -703,11 +707,7 @@ aussi utiliser la représentation sous forme d’arbre où on somme
simplement les probabilités de chacun des éléments de $A$ (voir figure
@fig:arbre3).
![Représentation de l’événement $A=\{22,24,26,42,44,46\}$ sous forme
d’arbre avec les probabilités associées. Toutes les probabilités et
tirages possibles associés aux branches ne sont pas affichées pour
simplifier
l’affichage.](figs/arbre3.svg){#fig:arbre3 width="\textwidth"}
![Représentation de l’événement $A=\{22,24,26,42,44,46\}$ sous forme d’arbre avec les probabilités associées. Toutes les probabilités et tirages possibles associés aux branches ne sont pas affichées pour simplifier l’affichage.](figs/arbre3.svg){#fig:arbre3 width="\textwidth"}
Comme vu dans la section @sec:disjoints, il suffit de prendre la
somme des probabilités des événements élémentaires $$\begin{aligned}
......@@ -731,7 +731,7 @@ $1/6$. On a donc que $$p(A)=\frac{1}{3}\cdot \frac{1}{6}=\frac{1}{18}.$$
---
#### Exercice {-}
Exercice #
1. Calculer la probabilité d’obtenir $2$ comme la somme des deux
nombres tirés par deux dés.
......@@ -803,7 +803,7 @@ $$p([n_1,...,n_k])=\frac{n!}{n_1!\cdots n_k!}p_1^{n_1}\cdots p_k^{n_k}.$$
---
#### Exercice {-}
Exercice #
On lance un dé parfait 10 fois. Quelle est la probabilité d’obtenir:
......@@ -832,29 +832,25 @@ Afin de calculer cette probabilité le fait qu’on effectue un tirage avec
remise est primordial. En effet considérons le cas initial illustré dans
la @fig:loto.
![Les six numéros présents initialement dans le
sac.](figs/loto.svg){#fig:loto height="1.8truecm"}
![Les six numéros présents initialement dans le sac.](figs/loto.svg){#fig:loto height="1.8truecm"}
Pendant le premier tirage, nous tirons le numéro 2 (voir figure
@fig:loto2). Notons que le tirage du 2 a une probabilité
$\frac{1}{6}$.
![Le numéro 2 est tiré lors du premier
tirage.](figs/loto2.svg){#fig:loto2 height="1.8truecm"}
![Le numéro 2 est tiré lors du premier tirage.](figs/loto2.svg){#fig:loto2 height="1.8truecm"}
Il est donc enlevé du sac et il nous reste uniquement 5 chiffres parmi
lesquels choisir (les chiffres $1$, $3$, $4$, $5$, et $6$, comme dans la
@fig:loto3).
![Il ne reste que 5 chiffres dans le
sac.](figs/loto3.svg){#fig:loto3 height="1.8truecm"}
![Il ne reste que 5 chiffres dans le sac.](figs/loto3.svg){#fig:loto3 height="1.8truecm"}
Comme il ne nous reste que 5 chiffres, la probabilité de tirer un des
nombres restant, disons le $5$, est de $\frac{1}{5}$ (voir la figure
@fig:loto4).
![Il ne reste que 5 chiffres dans le sac et nous tirons le
5.](figs/loto4.svg){#fig:loto4 height="1.8truecm"}
![Il ne reste que 5 chiffres dans le sac et nous tirons le 5.](figs/loto4.svg){#fig:loto4 height="1.8truecm"}
Le 5 sera lui aussi retiré et il ne restera que 4 numéros dans le sac et
ainsi de suite.
......@@ -872,7 +868,7 @@ $p(\{5,2\}\backslash \{2\mbox{ ou }5)=\frac{1}{5}$ pour trouver la probabilité
---
#### Exercice {-}
Exercice #
1. Le jeu Euromillions consiste en un tirage de 5 numéros parmi 50
possible, puis par le tirage de 2 “étoiles” parmi 11 possibles.
......@@ -1002,7 +998,7 @@ On peut noter dans le cas général qu’on a $D=X^{-1}(I)$.
---
#### Définition (Variable aléatoire) {-}
Définition (Variable aléatoire) #
On dit que la fonction $X:\Omega\rightarrow{\real}$ est une
*variable aléatoire* si la préimage de $X$ sur tout intervalle,
......@@ -1014,7 +1010,7 @@ probabilité de réaliser l’événement $A$ $$p(X\in I)=p(A).$$
---
#### Définition (Fonction de répartition) {-}
Définition (Fonction de répartition) #
On dit que la fonction $F:{\real}\rightarrow{\real}$ est une
*fonction de répartition* si $F(x)=p(X\leq x)$ pour tout
......
......@@ -4,5 +4,5 @@ Remerciements
Je voudrais remercier (par ordre alphabétique) les étudiants du cours
qui ont contribué à améliorer ce polycopié. En espérant que cette liste
continuera à s’allonger avec les années. Merci à Messieurs
Borel, El Kharroubi, Gay-Balmaz, Ibanez, Lovino, Seemüller, Sousa, et Sutter. Je voudrais également remercier A. Malaspinas pour sa relecture et ses corrections.
Borel, Cirilli, El Kharroubi, Gay-Balmaz, Ibanez, Lovino, N'Hairi, Perret, Pin, Rod, Seemüller, Sousa, et Sutter. Je voudrais également remercier A. Malaspinas pour sa relecture et ses corrections.
STYLES := css/tufte-css/tufte.css \
css/pandoc.css \
css/pandoc-solarized.css \
css/tufte-extra.css
OPTIONS = --toc
OPTIONS += --filter=pandoc-numbering
OPTIONS += --filter=pandoc-crossref
PDFOPTIONS = --highlight-style kate
......@@ -17,50 +13,31 @@ HTMLOPTIONS += -c css/tufte-css/tufte.css
HTMLOPTIONS += --self-contained
HTMLOPTIONS += --mathjax=MathJax.js
CLASS_SOURCES := $(sort $(filter-out README.md, $(wildcard *.md)))
SOURCES := $(filter-out 00_macros.md, $(CLASS_SOURCES))
SOURCES := $(filter-out 08_notes.md, $(SOURCES))
all: cours.pdf cours.html
# %.tex: %.md
# pandoc -s $(OPTIONS) $(PDFOPTIONS) -o $@ $<
# pandoc -s $(OPTIONS) $(PDFOPTIONS) -o $@ $< --metadata-file metadata.yaml
cours.pdf: 00_macros.md 01_rappel.md 02_optimisation.md 03_integrales.md 04_edo.md 05_fourier.md 06_probas_stats.md 07_remerciements.md 08_notes.md
cours.pdf: $(CLASS_SOURCES)
pandoc -s $(OPTIONS) $(PDFOPTIONS) -o $@ $^ --metadata-file metadata.yaml
cours.html: 00_macros.md 01_rappel.md 02_optimisation.md 03_integrales.md 04_edo.md 05_fourier.md 06_probas_stats.md 07_remerciements.md 08_notes.md
cours.html: $(CLASS_SOURCES)
pandoc -s $(OPTIONS) $(HTMLOPTIONS) -o $@ $^ --metadata-file metadata.yaml
hakyll_gen: 1_Rappel.markdown 2_Optimisation.markdown 3_Integrales.markdown 4_Equation_Differentielles_Ordinaires.markdown 5_Transformees_de_Fourier.markdown 6_Probabilites_et_Statistique.markdown 7_Remerciements.markdown
# macros: 00_macros.md
# sed "1i ---\ndate: $(shell git log --follow -p -1 --format=%cd --date=format:'%Y-%m-%d' -- 02_optimisation.md | head -n 1)\n---" $< > $@
1_Rappel.markdown: 00_macros.md 01_rappel.md 08_notes.md
cat $^ > $@
sed -i "1i ---\ndate: $(shell git log --follow -p -1 --format=%cd --date=format:'%Y-%m-%d' -- 01_rappel.md | head -n 1)\nmathjax: on\n---" $@
2_Optimisation.markdown: 00_macros.md 02_optimisation.md 08_notes.md
cat $^ > $@
sed -i "1i ---\ndate: $(shell git log --follow -p -1 --format=%cd --date=format:'%Y-%m-%d' -- 02_optimisation.md | head -n 1)\nmathjax: on\n---" $@
3_Integrales.markdown: 00_macros.md 03_integrales.md 08_notes.md
cat $^ > $@
sed -i "1i ---\ndate: $(shell git log --follow -p -1 --format=%cd --date=format:'%Y-%m-%d' -- 03_integrales.md | head -n 1)\nmathjax: on\n---" $@
4_Equation_Differentielles_Ordinaires.markdown: 00_macros.md 04_edo.md 08_notes.md
cat $^ > $@
sed -i "1i ---\ndate: $(shell git log --follow -p -1 --format=%cd --date=format:'%Y-%m-%d' -- 04_edo.md | head -n 1)\nmathjax: on\n---" $@
5_Transformees_de_Fourier.markdown: 00_macros.md 05_fourier.md 08_notes.md
cat $^ > $@
sed -i "1i ---\ndate: $(shell git log --follow -p -1 --format=%cd --date=format:'%Y-%m-%d' -- 05_fourier.md | head -n 1)\nmathjax: on\n---" $@
6_Probabilites_et_Statistique.markdown: 00_macros.md 06_probas_stats.md 08_notes.md
cat $^ > $@
sed -i "1i ---\ndate: $(shell git log --follow -p -1 --format=%cd --date=format:'%Y-%m-%d' -- 06_probas_stats.md | head -n 1)\nmathjax: on\n---" $@
MARKDOWN := $(patsubst %.md, %.markdown, $(SOURCES))
7_Remerciements.markdown: 00_macros.md 07_remerciements.md 08_notes.md
cat $^ > $@
sed -i "1i ---\ndate: $(shell git log --follow -p -1 --format=%cd --date=format:'%Y-%m-%d' -- 07_remerciements.md | head -n 1)\nmathjax: on\n---" $@
hakyll_gen: $(MARKDOWN)
$(MARKDOWN): %.markdown: 00_macros.md %.md 08_notes.md
$(file >$@,---)
$(file >>$@,date: $(shell git log --follow -p -1 --format=%cd --date=format:'%Y-%m-%d' -- $(word 2,$^) | head -n 1))
$(file >>$@,mathjax: on)
$(file >>$@,---)
cat $^ >> $@
deploy: all
mkdir -p mti
......
File added
File added
......@@ -52,13 +52,13 @@ Corrigé +.#
On calcule les coefficients de la série de Fourier à l'aide des formules
\begin{align}
b_j&=\frac{2}{T}\int_0^T\cos(j\omega x)f(x){\mathrm{d}}x,\\
a_j&=\frac{2}{T}\int_0^T\sin(j\omega x)f(x){\mathrm{d}}x,
a_j&=\frac{2}{T}\int_0^T\cos(j\omega x)f(x){\mathrm{d}}x,\\
b_j&=\frac{2}{T}\int_0^T\sin(j\omega x)f(x){\mathrm{d}}x,
\end{align}
où $T=2\pi$. On peut donc écrire
\begin{align}
b_j&=\frac{2}{2\pi}\int_{-\pi}^\pi\cos(j x)f(x){\mathrm{d}}x,\\
a_j&=\frac{2}{2\pi}\int_{-\pi}^\pi\sin(j x)f(x){\mathrm{d}}x.
a_j&=\frac{2}{2\pi}\int_{-\pi}^\pi\cos(j x)f(x){\mathrm{d}}x,\\
b_j&=\frac{2}{2\pi}\int_{-\pi}^\pi\sin(j x)f(x){\mathrm{d}}x.
\end{align}
Comme $f(x)$ est paire, on a que les coefficients $a_j$ sont tous nuls.
Il nous reste à calculer
......@@ -74,7 +74,7 @@ Ces deux intégrales se résolvent par partie. Pour la partie $(1)$, on obtient
&=\left.\frac{2}{\pi j^2}\cos(jx)\right|_{-\pi}^0,\nonumber\\
&=\frac{4}{\pi j^2}\left(1-(-1)^j\right).
\end{align}
De même pour la partier (2), on trouve
De même pour la partie (2), on trouve
$$
(2)=\frac{4}{\pi j^2}\left(1-(-1)^j\right).
$$
......@@ -109,7 +109,7 @@ Exercice +.#
Développer en série de Fourier la fonction $2\pi$-périodique suivante
\begin{equation}
f(x)=\sin\left(\frac{x}{2}\right),\ x\in[0,2\pi).
f(x)=\sin\left(\frac{x}{2}\right),\ x\in[-\pi,\pi).
\end{equation}
Corrigé +.#
......@@ -130,7 +130,7 @@ Exercice +.#
Développer en série de Fourier la fonction $2\pi$-périodique suivante
\begin{equation}
f(x)=\cos\left(\frac{x}{2}\right),\ x\in[0,2\pi).
f(x)=\cos\left(\frac{x}{2}\right),\ x\in[-\pi,\pi).
\end{equation}
Corrigé +.#
......@@ -216,7 +216,7 @@ Corrigé +.#
En utilisant la formule
$$
f[n]=\sum_{k=0}^{N-1}\hat f[n]e^{2\pi ink/N},
f[n]=\frac{1}{N}\sum_{k=0}^{N-1}\hat f[k]e^{2\pi ink/N},
$$
on peut calculer la TFD de $\hat f=\{2, -1-i, 0, -1+i\}$ avec $N=4$.
On obtient donc
......@@ -225,7 +225,8 @@ f[0]=\hat f[0]+\hat f[1]+\hat f[2]+\hat f[3]=0.
$$
Et ainsi de suite on obtient
\begin{align}
f[1]&=\hat f[0]+\hat f[1]e^{\pi i/2}+\hat f[2]e^{\pi i}+\hat f[3]e^{3\pi i/2}=2+i(-1-i)+(-i)(-1+i)=4,\\
\hat f[2]&=f[0]+f[1]e^{\pi i}+f[2]e^{2\pi i}+f[3]e^{3\pi i}=2+(-1)(-1-i)-1(-1+i)=4,\\
\hat f[3]&=f[0]+f[1]e^{3\pi i/2}+f[2]e^{3\pi i}+f[3]e^{9\pi i/2}=2-i(-1-i)+i(-1+i)=0.
\end{align}
\ No newline at end of file
f[1]&=\frac{1}{4}(\hat f[0]+\hat f[1]e^{\pi i/2}+\hat f[2]e^{\pi i}+\hat
f[3]e^{3\pi i/2})=\frac{1}{4}(2+i(-1-i)+(-i)(-1+i))=1,\\
\hat f[2]&=\frac{1}{4}(f[0]+f[1]e^{\pi i}+f[2]e^{2\pi i}+f[3]e^{3\pi i})=\frac{1}{4}(2+(-1)(-1-i)-1(-1+i))=1,\\
\hat f[3]&=\frac{1}{4}(f[0]+f[1]e^{3\pi i/2}+f[2]e^{3\pi i}+f[3]e^{9\pi i/2})=\frac{1}{4}(2-i(-1-i)+i(-1+i))=0.
\end{align}
This diff is collapsed.
---
author:
- Orestis Malaspinas
title: Mathématiques en technologie de l'Information
- "Orestis Malaspinas"
title: "Mathématiques en technologie de l'Information"
autoSectionLabels: false
autoEqnLabels: true
eqnPrefix:
......
CC=gcc
CFLAGS=-Wall -Wextra -pedantic -std=c11 -g -O3
# -fsanitize=leak -fsanitize=undefined -fsanitize=address
LFLAGS=-lSDL2
TARGET=map
all: map
map: map.c gfx.c
$(CC) $(CFLAGS) $^ -o $@ $(LFLAGS)
clean:
rm -f *.o $(TARGET)
/// @file gfx.c
/// @author Florent Gluck
/// @date November 6, 2016
/// Helper routines to render pixels in fullscreen graphic mode.
/// Uses the SDL2 library.
#include "gfx.h"
/// Create a fullscreen graphic window.
/// @param title Title of the window.
/// @param width Width of the window in pixels.
/// @param height Height of the window in pixels.
/// @return a pointer to the graphic context or NULL if it failed.
struct gfx_context_t* gfx_create(char *title, uint width, uint height) {
if (SDL_Init(SDL_INIT_VIDEO) != 0) goto error;
SDL_Window *window = SDL_CreateWindow(title, SDL_WINDOWPOS_CENTERED,
SDL_WINDOWPOS_CENTERED, width, height, SDL_WINDOW_RESIZABLE);
SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, 0);
SDL_Texture *texture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_ARGB8888,
SDL_TEXTUREACCESS_STREAMING, width, height);
uint32_t *pixels = malloc(width*height*sizeof(uint32_t));
struct gfx_context_t *ctxt = malloc(sizeof(struct gfx_context_t));
if (!window || !renderer || !texture || !pixels || !ctxt) goto error;
ctxt->renderer = renderer;
ctxt->texture = texture;
ctxt->window = window;
ctxt->width = width;
ctxt->height = height;
ctxt->pixels = pixels;
SDL_ShowCursor(SDL_DISABLE);
gfx_clear(ctxt, COLOR_BLACK);
return ctxt;
error:
return NULL;
}
/// Draw a pixel in the specified graphic context.
/// @param ctxt Graphic context where the pixel is to be drawn.
/// @param x X coordinate of the pixel.
/// @param y Y coordinate of the pixel.
/// @param color Color of the pixel.
void gfx_putpixel(struct gfx_context_t *ctxt, int x, int y, uint32_t color) {
if (x < ctxt->width && y < ctxt->height)
ctxt->pixels[ctxt->width*y+x] = color;
}
/// Clear the specified graphic context.
/// @param ctxt Graphic context to clear.
/// @param color Color to use.
void gfx_clear(struct gfx_context_t *ctxt, uint32_t color) {
int n = ctxt->width*ctxt->height;
while (n)
ctxt->pixels[--n] = color;
}
/// Display the graphic context.
/// @param ctxt Graphic context to clear.
void gfx_present(struct gfx_context_t *ctxt) {
SDL_UpdateTexture(ctxt->texture, NULL, ctxt->pixels, ctxt->width*sizeof(uint32_t));
SDL_RenderCopy(ctxt->renderer, ctxt->texture, NULL, NULL);
SDL_RenderPresent(ctxt->renderer);
}
/// Destroy a graphic window.
/// @param ctxt Graphic context of the window to close.
void gfx_destroy(struct gfx_context_t *ctxt) {
SDL_ShowCursor(SDL_ENABLE);
SDL_DestroyTexture(ctxt->texture);
SDL_DestroyRenderer(ctxt->renderer);
SDL_DestroyWindow(ctxt->window);
free(ctxt->pixels);
ctxt->texture = NULL;
ctxt->renderer = NULL;
ctxt->window = NULL;
ctxt->pixels = NULL;
SDL_Quit();
free(ctxt);
}
/// If a key was pressed, returns its key code (non blocking call).
/// List of key codes: https://wiki.libsdl.org/SDL_Keycode
/// @return the key that was pressed or 0 if none was pressed.
SDL_Keycode gfx_keypressed() {
SDL_Event event;
if (SDL_PollEvent(&event)) {
if (event.type == SDL_KEYDOWN)
return event.key.keysym.sym;
}
return 0;
}
#ifndef _GFX_H_
#define _GFX_H_
#include <stdint.h>
#include <stdbool.h>
#include <SDL2/SDL.h>
#define MAKE_COLOR(r,g,b) ((uint32_t)b|((uint32_t)g<<8)|((uint32_t)r<<16))
#define COLOR_GET_B(color) (color & 0xff)
#define COLOR_GET_G(color) ((color >> 8) & 0xff)
#define COLOR_GET_R(color) ((color >> 16) & 0xff)
#define COLOR_BLACK 0x00000000
#define COLOR_RED 0x00FF0000
#define COLOR_GREEN 0x0000FF00
#define COLOR_BLUE 0x000000FF
#define COLOR_WHITE 0x00FFFFFF
#define COLOR_YELLOW 0x00FFFF00
typedef unsigned int uint;
typedef unsigned long ulong;
typedef unsigned char uchar;
struct gfx_context_t {
SDL_Window *window;
SDL_Renderer *renderer;
SDL_Texture *texture;
uint32_t *pixels;
int width;
int height;
};
extern void gfx_putpixel(struct gfx_context_t *ctxt, int x, int y, uint32_t color);
extern void gfx_clear(struct gfx_context_t *ctxt, uint32_t color);
extern struct gfx_context_t* gfx_create(char *text, uint width, uint height);
extern void gfx_destroy(struct gfx_context_t *ctxt);
extern void gfx_present(struct gfx_context_t *ctxt);
extern SDL_Keycode gfx_keypressed();
#endif
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include "gfx.h"
static void gfx_clear_rect(struct gfx_context_t *ctxt, int x0, int x1, int y0, int y1) {
for (int x = x0; x < x1; ++x) {
for (int y = y0; y < y1; ++y) {
gfx_putpixel(ctxt, x, y, COLOR_BLACK);
}
}
}
static double map(double x, double lambda) {
return lambda * x * (1.0 - x);
}
int main() {
const double lambda_min = 3;
const double lambda_max = 4;
const int N = 1920;
const int M = 1000;
double dl = (lambda_max - lambda_min) / N;
struct gfx_context_t *ctxt = gfx_create("Example", N, M);
if (!ctxt) {
fprintf(stderr, "Graphics initialization failed!\n");
return EXIT_FAILURE;
}
gfx_clear(ctxt, COLOR_BLACK);
double prop = 0.2;
int num_points = M / 10;
int max_iter = 10000;
for (int i_lambda = 0; i_lambda < N; ++i_lambda) {
double x = 0.5;
for (int i = 0; i < max_iter; ++i) {
double lambda = lambda_min + i_lambda * dl;
x = map(x, lambda);
if (i > max_iter - num_points) {
gfx_putpixel(ctxt, i % (num_points / 2), (M - 1) - (M - 1) * x * prop, COLOR_WHITE);
gfx_clear_rect(ctxt, (i + 1) % (num_points / 2), (i + 2) % (num_points / 2), (1 - prop) * (M-1), (M - 1));
gfx_putpixel(ctxt, i_lambda, (M - 1) * (1 - x), COLOR_WHITE);
// printf("x(%d, %g) = %g\n", i, i_lambda * dl, x);
// usleep((unsigned int)1000);
// if (i % 512 == 0) {
// gfx_present(ctxt);
// }
}
}
gfx_clear_rect(ctxt, (num_points / 2 - 1), (num_points / 2) + 2, (1 - prop) * (M-1), (M - 1));
gfx_present(ctxt);
// printf("\n");
}
while (gfx_keypressed() != SDLK_ESCAPE) {
}
gfx_destroy(ctxt);
return EXIT_SUCCESS;
}
---
# author:
# - Orestis Malaspinas
# - Michaël El Kharroubi (update)
title: Travail pratique sur les intégrales
autoSectionLabels: true
autoEqnLabels: false
......@@ -35,20 +36,24 @@ Le but de ce travail pratique est d'implémenter les méthodes numériques de ca
afin de les comprendre de façon un peu plus approfondie. Puis, il faudra utiliser ces méthodes pour calculer
des convolutions afin de filtrer un signal.
Aucun langage particulier n'est imposé. Il est recommandé d'utiliser octave ou python (en particulier les librairies numpy/scipy/matplotlib).
Le noyau de calcul de votre travail pratique doit être réalisé en C et il doit être compilable avec
un `Makefile`. Pour la réalisation de graphiques vous êtes libres d'utiliser
l'outil de votre choix (la librairie matplotlib par exemple). Certaines visualisations
peuvent être faites à l'aide de la librairie SDL pour obtenir un bonus.
Vous devrez rendre un petit rapport (3-4 pages) qui explique ce que vous avez fait et dans quel but. Il devra contenir
une courte introduction théorique (rappelant les formules et le but du travail), une partie expliquant dans les grandes lignes
Vous devrez rendre un petit rapport (environ 10 pages) qui explique ce que vous avez fait et dans quel but. Il devra contenir
en premier lieu une introduction générale à votre travail qui peut être comprise par n'importe qui.
Puis une courte introduction théorique (rappelant les formules et le but du travail), une partie expliquant dans les grandes lignes
des algorithmes (pas de copier-coller du code, pas de captures d'écran non plus sous peine de sanctions terribles).
La partie importante est celle contenant les résultats obtenus et leur discussion. Finalement, il faut inclure
une conclusion résumant votre travail.
Le travail doit être effectué par groupes de deux
(n'oubliez pas de mentionner les deux noms sur le rapport et dans le code si le travail est fait à deux).
Le travail doit être effectué par groupes de deux (oui c'est une obligation).
N'oubliez pas de mentionner les deux noms sur le rapport et dans le code.
Je dois pouvoir exécuter le code
afin de pouvoir reproduire les résultats présentés dans le rapport (un petit *readme* pour les instructions est le bienvenu).
Je dois aussi pouvoir définir ma propre fonction à intégrer de façon simple.
Le rapport et le code doivent être déposés sur cyberlearn.
Le rapport et le code doivent être déposés sur `Cyberlearn` et `gitedu` respectivement.
La note sera une combinaison entre le code rendu et le rapport (moitié/moitié).
......@@ -65,33 +70,42 @@ un nombre de subdivisions $N$. Le code devra rendre la valeur numérique obtenue
I(a,b,N,f(x)) \cong \int_a^bf(x)\dd x
\end{equation}
pour deux méthodes vues en cours (méthode du rectangle à gauche, et méthode du trapèze)[^1].
Dans le cas de la méthode du rectangle à gauche on a
\begin{equation}
I(a,b,N,f(x))=\sum_{i=0}^{N-1} f(a+i\delta x)\delta x,\quad \delta x=\frac{b-a}{N}.
\end{equation}
## Étude de l'erreur
## Validation
Lorsqu'on calcule numériquement une intégrale, on espère que la valeur de celle-ci *converge*, c'est-à-dire
Lorsqu'on calcule numériquement une intégrale, on souhaite que la valeur de celle-ci *converge*. C'est-à-dire
que plus $N$ est grand, plus la valeur de l'approximation est bonne. Pour vérifier que cela se passe avec nos
méthodes d'intégration, vous devrez effectuer une étude de l'erreur de vos méthodes d'intégration numériques.
Pour ce faire, nous choisissons une fonction $f(x)$
dont la primitive est simple à calculer
\begin{equation}
f(x)=-\frac{2x-1}{\exp(x^2-x+2)},
\end{equation}
\end{equation}3
et un intervalle sur lequel la fonction est bien définie. Choisissons ici $[a,b]$ avec $a=1$ et $b=5$.
On peut donc calculer l'intégrale exactement (analytiquement) et on notera ce résultat exact $I_{exact}(a,b,f(x))$.
On peut donc calculer l'intégrale exactement (analytiquement) et on notera ce résultat exact $I$
\begin{equation}
I=\int_a^b-\frac{2x-1}{\exp(x^2-x+2)}\mathrm{d}x.
\end{equation}
Puis, il faut calculer l'erreur commise par l'évaluation de la fonction $I(a,b,N,f(x))$
pour $N=5, 10, 50, 100, 500, 1000$ pour chacune des méthodes que vous avez implémentées ci-dessus.
L'erreur $E(N)$ se calcule de la façon suivante
\begin{equation}
E(N)=\left|\frac{I_{exact}(a,b,f(x))-I(a,b,N,f(x))}{I_{exact}(a,b,f(x))}\right|
E(N)=\left|\frac{I-I(a,b,N,f(x))}{I}\right|
\end{equation}
Ces résultats devront être illustrés sous forme de graphique ($E$ en fonction de $N$ en échelle log-log).
Que constatez-vous? Pouvez-vous mesurer le taux de décroissance de l'erreur?
Que constatez-vous? Pouvez-vous mesurer le taux de décroissance de l'erreur (a.k.a. l'ordre de l'erreur)?
# Convolutions et filtrage
Nous voulons à présent essayer de voir comment utiliser la convolution pour filtrer un signal simple.
## La convolution continue
## Convolution en 1 dimension
### La convolution continue
Le signal que nous souhaitons filtrer est définit par la fonction $s(x)$
\begin{equation}
......@@ -104,15 +118,17 @@ f(x)=\left\{\begin{array}{ll}
0,&\mbox{ sinon.}
\end{array}\right.
\end{equation}
Afin de se familiariser un peu avec ces deux fonctions, ne pas hésiter à les dessiner
Afin de se familiariser un peu avec ces deux fonctions, dessiner les
pour différentes valeur de $\omega_1$, $\omega_2$, et $\psi$.
Puis, calculer analytiquement (à la main avec du papier et un crayon[^2]) la convolution $(f\ast s)(x)$.
A partir du résultat de la convolution, déterminer la relation entre $\psi$ et $\omega_1$ (respectivement $\omega_2$)
pour enlever complètement la composante $\omega_1$ (respectivement $\omega_2$) du signal $s(x)$.
Puis, calculer analytiquement (à la main avec du papier et un crayon[^2]) la convolution $(f\ast s)(x)$ (rappelez vous qu'on
a fait des choses similaires en cours).
Ensuite, on souhaite filtrer $s$ à l'aide de $f$. Pour cela, on veut "enlever" totalement
la partie $\omega_1$ (ou $\omega_2$) de $f\ast s$. En choisissant astucieusement $\psi$
on se rend compte que cela est plus simple qu'il n'y paraît!
Utiliser ces relations pour illustrer le filtrage de $s(x)$ pour différentes valeurs de $\omega_1$ et $\omega_2$.
## La convolution discrète
### La convolution discrète
Utiliser une des méthodes implémentées dans le chapitre précédent pour calculer numériquement
le filtrage de $s(x)$ par la fonction $f(x)$ pour différentes valeurs de $\omega_1$, $\omega_2$ et $\psi$ (essayer par exemple de reproduire
......@@ -123,8 +139,144 @@ h(x)=\frac{1}{\sqrt{2\pi\psi}}\exp(-x^2/(2\psi)).
\end{equation}
Voyez-vous des différences?
## Convolution en 2 dimensions
### Théorie
Dans le cadre de ce tp, nous allons nous concentrer sur la convolution discrète d'un signal discret en deux dimensions. Pour représenter notre signal discret en deux dimensions, nous pouvons utiliser des matrices. Par exemple :
\begin{equation}
\label{eqn:mat_exemple}
\mat{A}=\begin{pmatrix}
a_{-1,-1} & a_{-1,0} & a_{-1,1}\\
a_{0,-1} & a_{0,0} & a_{0,1}\\
a_{1,-1} & a_{1,0} & a_{1,1}
\end{pmatrix} ,\quad \mat{B}=\begin{pmatrix}
b_{-2,-2} & b_{-2,-1} & b_{-2,0} & b_{-2,1} & b_{-2,2}\\
b_{-1,-2} & b_{-1,-1} & b_{-1,0} & b_{-1,1} & b_{-1,2}\\
b_{0,-2} & b_{0,-1} & b_{0,0} & b_{0,1} & b_{0,2}\\
b_{1,-2} & b_{1,-1} & b_{1,0} & b_{1,1} & b_{1,2}\\
b_{2,-2} & b_{2,-1} & b_{2,0} & b_{2,1} & b_{2,2}
\end{pmatrix}
\end{equation}
Une image matricielle peut être interprétée comme un signal discret en deux dimensions.
Pour rappel, la formule du produit de convolution en 1 dimension d'un signal discret est :
\begin{equation}
(s\ast u)[t] =\sum_{n=-N}^{+N} s[n]\cdot u[t-n]
\end{equation}
Lorsque l'on rajoute une nouvelle dimension la formule devient, avec $-M$ l'indice de ligne le plus petit de la matrice $\mat{A}$, et $+M$ le plus grand, ainsi que $-N$, $+N$ pour les indices de colonne :
\begin{equation}
(\mat{A}\ast \mat{B})[i,j] =\sum_{m=-M}^{+M}\sum_{n=-N}^{+N} \mat{A}[m, n]\cdot \mat{B}[i-m,j-n]
\end{equation}
Si on reprend par exemple les matrices $\mat{A}$ et $\mat{B}$ de l'équation \ref{eqn:mat_exemple}, et qu'on choisit le centre (1,1), on obtient :
\begin{equation}
\begin{aligned}
(\mat{A}\ast \mat{B})[1,1] =\sum_{m=-1}^{+1}\sum_{n=-1}^{+1} \mat{A}[m, n]\cdot \mat{B}[1-m,1-n]\\
(\mat{A}\ast \mat{B})[1,1] = a_{-1,-1}\cdot b_{2,2}+\dots +a_{1,1}\cdot b_{0,0}\\
\end{aligned}
\end{equation}
Si l'on essaye de calculer $(\mat{A}\ast \mat{B})[2,2]$, on découvre qu'il nous faut des valeurs qui ne sont pas dans notre matrice, comme par exemple, $b_{3,3}$. Voici 3 solutions différentes pour définir nos valeurs manquantes :
- Les valeurs en dehors de la matrice sont nulles, $b_{3,3} = 0$.
- Recopier la valeur du voisin le plus proche, $b_{3,3} = b_{2,2}$.
- Définir que notre signal est périodique, on a donc $b_{3,3} = b_{-2,-2}$.
### Exercice
Au risque de se répéter, rappelons quelques contraintes administratives.
Vous allez devoir implémenter une solution de traitement d'images en nuances de gris basé sur la convolution de signal en deux dimensions
par groupe de deux. Le language imposé est le C. Vous devrez rendre le code sur `gitedu` ainsi qu'un rapport succinct sur `Cyberlearn` (moins de 10 pages par groupe).
Pour commencer, vous devrez implémenter un outil permettant de lire des images au format PGM
(n'hésitez pas à réutiliser celui que vous avez déjà implémenté en programmation séquentielle).
Vous utiliserez le format binaire pour stocker la valeur de vos pixels.
Votre programme devra respecter les spécifications du format PGM ([http://netpbm.sourceforge.net/doc/pgm.html](http://netpbm.sourceforge.net/doc/pgm.html)).
Pour visualiser votre image, vous pouvez à choix l'afficher avec la librairie SDL (bonus sur la note finale) ou alors la sauvegarder au format PGM, et utiliser un outil compatible (par ex: ImageMagick).
Lorsque vous appliquerez les différents filtres, si vous tombez sur des valeurs inférieures à 0 ou supérieur à votre valeur maximale (par ex: $2^{16}-1$); vous mettrez la valeur cohérente la plus proche, 0 si $<$ 0 et $max$ si $>$ $max$.
#### Partie 1
Calculez à la main le produit de convolution de ces deux matrices, en utilisant la méthode de votre choix pour la gestion des bords :
\begin{equation*}
\mat{A}=\begin{pmatrix}
0 & 1 & 0\\
-1 & 0 & -1\\
0 & 1 & 0
\end{pmatrix} ,\quad \mat{B}=\begin{pmatrix}
1 & 2 & 3\\
4 & 5 & 6\\
7 & 8 & 9
\end{pmatrix}
\end{equation*}
#### Partie 2
Appliquez les 5 filtres ci-dessous en faisant le produit $\mat{F_n}\ast \mat{\mathcal{I}}$, où $\mat{\mathcal{I}}$ est l'image "part2.pgm" jointe à l'énoncé. Expliquez avec vos mots l'effet de ces filtres, est essayant d'être le plus descriptif possible (évitez les phrases de 3 mots).
\begin{equation*}
\mat{F_0} = \begin{pmatrix}
0 & 0 & 0\\
0 & 1 & 0\\
0 & 0 & 0
\end{pmatrix}
\mat{F_1} = \frac{1}{25}\begin{pmatrix}
1 & 1 & 1 & 1 & 1\\
1 & 1 & 1 & 1 & 1\\
1 & 1 & 1 & 1 & 1\\
1 & 1 & 1 & 1 & 1\\
1 & 1 & 1 & 1 & 1
\end{pmatrix}
\mat{F_2} = \frac{1}{256}\begin{pmatrix}
1 & 4 & 6 & 4 & 1\\
4 & 16 & 24 & 16 & 4\\
6 & 24 & 36 & 24 & 6\\
4 & 16 & 24 & 16 & 4\\
1 & 4 & 6 & 4 & 1
\end{pmatrix}
\end{equation*}
\begin{equation*}
\mat{F_3} = \begin{pmatrix}
0 & -1 & 0\\
-1 & 5 & -1\\
0 & -1 & 0
\end{pmatrix}
\mat{F_4} = \begin{pmatrix}
0 & -1 & 0\\
-1 & 4 & -1\\
0 & -1 & 0
\end{pmatrix}
\end{equation*}
\newpage
#### Partie 3
Récupérez sur cyberlearn l'image nommée `part3_<n>.pgm`, où `n` est votre numéro de groupe. Cette image a été fortement bruitée, heureusement (quelle chance vraiment :)), le bruit est périodique, et peut être supprimé à l'aide d'un filtre moyenneur.
\begin{equation*}
\mat{F} = \frac{1}{9}\begin{pmatrix}
1 & 1 & 1\\
1 & 1 & 1\\
1 & 1 & 1
\end{pmatrix}
\end{equation*}
Pour débruiter l'image vous devez lui appliquer le filtre $\mat{F}$. Afin d'éviter les problèmes liés à la gestion des bords, vous n'afficherez que la partie interne de l'image filtrée. Autrement dit, vous supprimerez les 2 premières ainsi que les 2 dernières lignes et colonnes (si votre image fait 100x100, vous garderez le centre de taille 96x96).
Si vous obteniez malgré tout une image totalement grise, vous pourriez utiliser la fonction suivante pour normaliser les valeurs de votre matrice $x'=(2^n-1)\cdot\frac{x-min(\mathcal{I})}{max(\mathcal{I})-min(\mathcal{I})}$[^3] pour obtenir une image n bits. Cette fonction permet de maximiser l'écart entre les différents niveaux de gris qui composent votre image, ce qui a pour effet d'accentuer les différences.
[^1]: Vous retrouverez les formules dans le polycopié.
[^2]: Exceptionnellement un stylo est également toléré.
\ No newline at end of file
[^2]: Exceptionnellement un stylo est également toléré.
[^3]: $x'$ la nouvelle valeur de votre pixel, $x$ l'ancienne valeur de votre pixel, $\mathcal{I}$ la matrice de votre image.
\ No newline at end of file
......@@ -29,9 +29,9 @@ include-before: <script src="css/prism.js"></script>
# Objectif
Réaliser un programme permettant de réaliser une régression linéaire
à une dimension à l'aide de la méthode de la descente de gradient.
Tester ce programme sur des données synthétiques afin de valider
* Réaliser un programme permettant de réaliser une régression linéaire
à l'aide de la méthode de la descente de gradient.
* Tester ce programme sur des données synthétiques (générées aléatoirement) afin de valider
votre implémentation.
# Travail à réaliser
......@@ -45,8 +45,8 @@ Afin de *valider* votre implémentation, il faut d'abord
est aisé.
On va chercher "la meilleure droite"
passant par un ensemble de points $\{(x_j, y_j)\}_{j=1}^N$.
Comme on l'a vu en cours, on cherche à minimiser la fonction
passant par un ensemble de points $\{(x_j, y_j)\}_{j=1}^N$ (Ex pour $N=3\ :\ \{(x_1,y_1), (x_2, y_2), (x_3, y_3)\}_{j=1}^3$).
Comme on l'a vu en cours, on cherche à minimiser la fonction de coût (erreur quadratique)
$$
E(a,b)=\sum_{j=1}^N(a\cdot x_j + b - y_j)^2.
$$
......@@ -58,14 +58,17 @@ on peut trouver la valeur de $a$ et $b$ pour n'importe quel
ensemble de points $\{(x_j, y_j)\}_{j=1}^N$.
Votre premier exercice sera de trouver l'expression de $a$
et $b$ en fonction de $\{(x_j, y_j)\}_{j=1}^N$.
et $b$ en fonction de $\{(x_j, y_j)\}_{j=1}^N$ analytiquement (avec un papier
et un crayon). En d'autres termes, on cherche une formule pour $a$ et une
pour $b$ ne dépendant que des valeurs des points $(x_j, y_j)$.
### Solution numérique
En prenant comme référence la solution ci-dessus,
il faut à présent implémenter la méthode de la descente de gradient
pour minimiser $E(a,b)$.
En partant d'une pente $a_0$ et d'une ordonnée à l'origine $b_0$,
En partant d'une pente $a_0$ et d'une ordonnée à l'origine $b_0$ (choisies aléatoirement),
il faut itérativement construire de meilleures approximations
$$
\vectwo{a_{i+1}}{b_{i+1}}=\vectwo{a_i}{b_i}-\lambda \cdot \vec\nabla E(a_i, b_i),
......@@ -79,18 +82,16 @@ où $\varepsilon>0$ est la précision souhaitée.
### Test
Afin de tester votre programme, vous devez générer un nuage de points.
Pour contrôler au mieux ce qui se passe, il est recommandé
de générer des points aléatoirement le long d'une droite,
et de bruiter un peu le résultat. Vous choisissez
$x_j$ entre deux bornes de votre choix (p.ex. 0 et 10)
puis tirez un certain nombre de $x_j$. A partir de là
vous construisez $y_j$ comme
Afin de tester votre programme, vous devez générer un nuage de points $\{(x_j, y_j)\}_{j=1}^N$ aléatoirement.
Pour contrôler au mieux ce qu'il se passe, il est recommandé
de générer ces points aléatoirement le long d'une droite de pente $c$ et une ordonnée à l'origine $d$ que vous choisirez,
et de bruiter un peu le résultat. Pour générer aléatoirement un point $(x_j, y_j)$, vous choisissez
$x_j$ entre deux bornes de votre choix (p.ex. 0 et 1)
puis, à partir de là vous construisez $y_j$ comme
$$
y_j=c\cdot x_j+d + r_j,
$$
où $|r_j|$ est un "petit" nombre aléatoire devant $(c\cdot x_j+d)$, et $c$ et $d$
(la pente et l'ordonnée à l'origine de votre droite) sont choisis par vos soins.
où $|r_j|$ est un "petit" nombre aléatoire devant $(c\cdot x_j+d)$.
Il faut vous assurer que la solution analytique et la solution numérique
soient très proches (à $\varepsilon$ près) et qu'elles soient également assez proches
......@@ -103,6 +104,16 @@ Faites également varier la valeur maximale de $|r_j|$. Que se passe-t-il
quand $|r_j|$ devient trop grand? N'hésitez pas à représenter
graphiquement vos résultats.
**Important** : Pour des raisons de pertes de précision obtenus après des calculs itératifs sur des nombres à virgule flottante.
Vous devrez choisir des valeurs avec les contraintes suivantes :
$$\begin{aligned}
x_j &\in\ [0,1]\\
c,d &\in\ )0,1]
\end{aligned}
$$
(Note : En pratique le domaine de nos données n'est pas restraint. On effectue donc une normalisation de nos données avant et après le calcul des paramètres de notre modèle.)
## Validation du modèle de régression
Lorsqu'on réalise une régression, on *modélise*
......@@ -117,11 +128,11 @@ Il en existe un grand nombre de variantes, ici nous n'en verrons qu'une.
Il s'agit ici de vérifier si le $a$ et le $b$ que nous avons
déterminés sont des valeurs qui continueraient à être correctes
si on ajoutait de nouveaux points à notre ensemble $\{(x_j, y_j)\}_{j=1}^N$.
si on ajoutait de nouveaux points à notre ensemble $\{(x_j, y_j)\}_{j=1}^N$ (issues du même phénomène).
Il est souvent peu pratique de générer de nouveaux points, on se contente
donc de diviser notre jeu de données en plusieurs partie. Une partie
des points sera utilisée pour *entraîner* notre modèle (déterminer
un $a$ et un $b$) l'autre partie sera utilisée pour tester le modèle,
un $a$ et un $b$) l'autre partie sera utilisée pour *tester* le modèle,
on calculera l'erreur effective $E(a,b)$ par rapport à cette seconde
partie des points.
......@@ -155,11 +166,15 @@ mais n'hésitez pas à développer.
Le code doit être réalisé en C (afin de vous entraîner). La visualisation peut être
faite avec l'outil de votre choix. Python avec la librairie *matplotlib* peut-être un bon choix.
Le rapport doit être écrit en **Markdown** ou **LaTeX** (ou une combinaison des
deux avec Pandoc).
Vous **devez** faire ce travail par groupe de 2 et aucune exception ne sera faite.
Vous devez rendre le rapport sur `cyberlearn`. Le code doit être dans un repo git public
dont vous mettrez l'url sur `cyberlearn`. N'oubliez pas de bien spécifier le nom
des deux membres du groupe dans le rapport et dans le code. Je devrais pouvoir
compiler et exécuter votre projet (pensez évidemment à créer un `Makefile`).
Le travail doit être rendu **au plus tard le 13.12.2021 à 23h59**.
La note est une combinaison de la note du code et du rapport.
......@@ -173,3 +188,4 @@ pendant les séance pour poser des questions et n'attendez pas le dernier moment
La rédaction du rapport est également une tâche complexe et il s'agit de ne pas bâcler
sa réalisation. C'est un exercice qui vous sera utile lorsque vous devrez écrire votre
mémoire pour votre travail de bachelor.