diff --git a/01_rappel.md b/01_rappel.md index a19017f133e278b5d9f251c9a578916f7b216dc8..799a22d5ebe94a36f0927bfe3f9b4a4581f144dd 100644 --- a/01_rappel.md +++ b/01_rappel.md @@ -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 diff --git a/02_optimisation.md b/02_optimisation.md index 72c2851acfedd75ad5010a19650bf4bef98d9ecb..fe19250c9f9ca105982101367c134b4ce052bdf9 100644 --- a/02_optimisation.md +++ b/02_optimisation.md @@ -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). @@ -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)$? @@ -740,7 +740,7 @@ peut se voir dans la @fig:gradient. --- -#### Exemple (quelques itérations) {-} +Illustration (quelques itérations) # Prenons la fonction objectif $f(x,y)$ suivante $$ diff --git a/03_integrales.md b/03_integrales.md index aec8390a150802f9de43894615c7ef274b6a3971..1fc29f49f90205530508098fb6056ab683393dd2 100644 --- a/03_integrales.md +++ b/03_integrales.md @@ -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 diff --git a/04_edo.md b/04_edo.md index 3606bf93283c2562eea66b5f6c1a7c2a3002b5b6..cef10024c3aa3d9bb57ca9c44d47dd1fd8670ea5 100644 --- a/04_edo.md +++ b/04_edo.md @@ -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. diff --git a/05_fourier.md b/05_fourier.md index 3eb3223da9b698dd735ab0769dc8e77ecea02e7c..acf52b784566b618c30fcc68abd6614ccccf6d0d 100644 --- a/05_fourier.md +++ b/05_fourier.md @@ -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. diff --git a/06_probas_stats.md b/06_probas_stats.md index 4401c7a0f10f042196313a9861b396256a700c69..37ea415bde9ad9739951a60064f9366b8480a3e3 100644 --- a/06_probas_stats.md +++ b/06_probas_stats.md @@ -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) -{#fig:salaires width="50.00000%"} +{#fig:salaires width="50.00000%"} ou d’un histogramme pour le temps d’exécution de l’application (voir Fig. @fig:exec). -{#fig:exec width="50.00000%"} +{#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). -{#fig:arbre width="\textwidth"} +{#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}.$$ -{#fig:arbre2 width="\textwidth"} +{#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). -{#fig:arbre3 width="\textwidth"} +{#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. -{#fig:loto height="1.8truecm"} +{#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}$. -{#fig:loto2 height="1.8truecm"} +{#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). -{#fig:loto3 height="1.8truecm"} +{#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). -{#fig:loto4 height="1.8truecm"} +{#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 diff --git a/Makefile b/Makefile index ff4d473331d9a4eaaac3d654e5263ce08d578954..d77f9a9b0d620eb2c18233ed73de02cfac6c6492 100644 --- a/Makefile +++ b/Makefile @@ -4,6 +4,7 @@ STYLES := css/tufte-css/tufte.css \ css/tufte-extra.css OPTIONS = --toc +OPTIONS += --filter=pandoc-numbering OPTIONS += --filter=pandoc-crossref PDFOPTIONS = --highlight-style kate @@ -17,50 +18,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 $@ $< -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 diff --git a/travaux_pratiques/tpChaos/Makefile b/travaux_pratiques/tpChaos/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..0dc6aae930eec4712c3d264a170368d18338272c --- /dev/null +++ b/travaux_pratiques/tpChaos/Makefile @@ -0,0 +1,13 @@ +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) diff --git a/travaux_pratiques/tpChaos/gfx.c b/travaux_pratiques/tpChaos/gfx.c new file mode 100644 index 0000000000000000000000000000000000000000..aca1933358386e2b4c3e2c0dd05bcc20f06373c1 --- /dev/null +++ b/travaux_pratiques/tpChaos/gfx.c @@ -0,0 +1,95 @@ +/// @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; +} + diff --git a/travaux_pratiques/tpChaos/gfx.h b/travaux_pratiques/tpChaos/gfx.h new file mode 100644 index 0000000000000000000000000000000000000000..72bbdc3906e7aac7eef073259807379c6a27d4a8 --- /dev/null +++ b/travaux_pratiques/tpChaos/gfx.h @@ -0,0 +1,41 @@ +#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 diff --git a/travaux_pratiques/tpChaos/map.c b/travaux_pratiques/tpChaos/map.c new file mode 100644 index 0000000000000000000000000000000000000000..2f0bbe39f9b46d884fde375d641f41db19262ae4 --- /dev/null +++ b/travaux_pratiques/tpChaos/map.c @@ -0,0 +1,68 @@ +#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; +} diff --git a/travaux_pratiques/tpIntegrales/tp_integrales_conv.md b/travaux_pratiques/tpIntegrales/tp_integrales_conv.md index ebee1b4b3c22cbf62f77bebac20a835564d2c51e..d9090adbfd1aa4f73dcd0d6a73f51f4f3b0c5497 100644 --- a/travaux_pratiques/tpIntegrales/tp_integrales_conv.md +++ b/travaux_pratiques/tpIntegrales/tp_integrales_conv.md @@ -36,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). - -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 +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 (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é). @@ -66,27 +70,34 @@ 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 @@ -107,12 +118,14 @@ 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 @@ -130,7 +143,7 @@ Voyez-vous des différences? ### 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 dimmensions, nous pouvons utiliser des matrices. Par exemple : +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} @@ -147,7 +160,7 @@ b_{2,-2} & b_{2,-1} & b_{2,0} & b_{2,1} & b_{2,2} \end{pmatrix} \end{equation} -Une image matricielle peut être interpétée comme un signal discret en deux dimmensions. +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 : @@ -155,7 +168,7 @@ Pour rappel, la formule du produit de convolution en 1 dimension d'un signal dis (s\ast u)[t] =\sum_{n=-N}^{+N} s[n]\cdot u[t-n] \end{equation} -Lorsque l'on rajoute une nouvelle dimmension 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 : +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] @@ -178,9 +191,15 @@ Si l'on essaye de calculer $(\mat{A}\ast \mat{B})[2,2]$, on découvre qu'il nous ### Exercice -Vous allez devoir implémenter une solution de traitement d'images en nuances de gris basé sur la convolution de signal en deux dimmensions. Le language imposé est le C. Vous devrez rendre le code ainsi qu'un rapport succint (moins de 8 pages par groupe). +Au risque de se répéter, rappelons quelques contraintes administratives. -Pour commencer, vous devrez implémenter un outil permettant de lire des images au format PGM. 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)). +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). @@ -204,7 +223,7 @@ Calculez à la main le produit de convolution de ces deux matrices, en utilisant #### 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'énnoncé. Expliquez avec vos mots l'effet de ces filtres, est essayant d'être le plus descriptif possible (évitez les phrases de 3 mots). +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} @@ -241,9 +260,10 @@ Appliquez les 5 filtres ci-dessous en faisant le produit $\mat{F_n}\ast \mat{\ma \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. +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}