diff --git a/01_rappel.md b/01_rappel.md index daa08a5b46d1c46ea904b9a8b92879719da09970..b836992ed0480b12ec92bfd7238ed2fa39c09bd2 100644 --- a/01_rappel.md +++ b/01_rappel.md @@ -179,7 +179,7 @@ $f(x)=3x^3+1$, $g(x)=4x^3+2x^2+x$ $$ \lim_{x\rightarrow \infty}\frac{f(x)}{g(x)}=\lim_{x\rightarrow \infty}\frac{3x^3(1+1/3x^3)}{4x^3(1+1/2x^+1/4x^2)}=\frac{3}{4}.$$ -Ce genre d’estimations est imporant en informatique lors de l’analyse de +Ce genre d’estimations est important en informatique lors de l’analyse de performance des algorithmes. On peut prendre l’exemple des algorithmes de tri “bubble sort†et “quick sortâ€. Leur complexité respective moyenne est de $n^2$ et de $n\log(n)$, quand $n$ est le nombre d’éléments de la diff --git a/02_integrales.md b/02_integrales.md index 560a76ab0966b3d56f175b579f3b4f9c120b9ef3..53db1402f0096f824086cfebbe6a4dcd5d8ffca2 100644 --- a/02_integrales.md +++ b/02_integrales.md @@ -532,7 +532,7 @@ Indication: utiliser la substitution $\tau=x-t$. --- -Afin de pouvoir interpêter un peu +Afin de pouvoir interpréter un peu ce que cela veut dire, il est intéressant de faire un calcul "simple" pour se faire une idée. diff --git a/03_optimisation.md b/03_optimisation.md index f19a34c9b473a6b94b1917d44ac815fe34a20783..585deeb1e40c265c9a1ced8e33252e89d7d1bd3c 100644 --- a/03_optimisation.md +++ b/03_optimisation.md @@ -9,7 +9,7 @@ $i=1,...,N$ (voir @fig:reg). <https://bit.ly/2SfiLzb>](figs/Linear_regression.svg){#fig:reg width=70%} Pour déterminer l'équation de cette droite, nous devons donc trouver les coefficients $a$ et $b$ tels que la droite -passe au plus proche des points. Nous devons d'abord définir ce que signifie mathématiquement "passe au mieux par au travaers du nuage de points". +passe au plus proche des points. Nous devons d'abord définir ce que signifie mathématiquement "passe au mieux par au travers du nuage de points". Une façon de mesurer la "qualité" d'une droite est de mesurer la somme des distances au carré entre les points $(x_i,y_i)$ et la droite $y(x)=a\cdot x + b$ pour des valeurs de $a$ et $b$ données, soit $$ @@ -71,25 +71,25 @@ Ce genre de problème, bien que possédant un espace de recherche infini, est bien souvent plus simple à résoudre que les problèmes d'optimisation discrets, car il possède un cadre théorique mieux défini. Pour le résoudre, nous avons commencé par construire un modèle mathématique. -Nous avons défini une fonction à minimiser, $E(a)$, et ajouté une contraite, la forme de $y(x)$. Puis, il a suffi de trouver le minimum de $E(a)$ +Nous avons défini une fonction à minimiser, $E(a)$, et ajouté une contrainte, la forme de $y(x)$. Puis, il a suffi de trouver le minimum de $E(a)$ sous la contrainte et le tour était joué. ## L'optimisation mathématique Suite à ces deux exemples, nous allons essayer de définir de façon assez théorique comment formuler mathématiquement un problème d'optimisation. -Il existe deux types disctincts de problèmes d'optimisation: +Il existe deux types distincts de problèmes d'optimisation: 1. L'optimisation continue. 2. L'optimisation discrète (souvent appelée optimisation combinatoire). -Dans ce chapitre nous ne parlerons que del'optimisation continue. +Dans ce chapitre nous ne parlerons que de l'optimisation continue. ### L'optimisation continue L'optimisation continue ou *programme mathématique continu* est un programme d'optimisation soumis à certaines contraintes. On peut l'exprimer de la façon suivante. -Soit $f:\real^n\rightarrow\real$ une fonction objectif (ou fontion de coût), on cherche $\vec x_0\in\real^n$, tel que $f(\vec x_0)\leq f(\vec x)$ pour $\vec x$ certaines conditions: **les contraintes**. Celles-ci sont en général des égalités strictes ou des inégalités qui peuvent s'exprimer de la façon suivante. +Soit $f:\real^n\rightarrow\real$ une fonction objectif (ou fonction de coût), on cherche $\vec x_0\in\real^n$, tel que $f(\vec x_0)\leq f(\vec x)$ pour $\vec x$ certaines conditions: **les contraintes**. Celles-ci sont en général des égalités strictes ou des inégalités qui peuvent s'exprimer de la façon suivante. Soient $m$ fonctions $g_i:\real^n\rightarrow\real$ \begin{align} &g_i(\vec x)\leq 0,\quad i=1,...,m. @@ -119,7 +119,7 @@ optimiser les poids des réseaux de neurones. ## Optimisation continue Dans cette section, nous allons considérer des problèmes purement continus. -Nous allons dans un premier temps considérer une fonction opbjectif, $f$, +Nous allons dans un premier temps considérer une fonction objectif, $f$, $$ f:D\rightarrow\real,\quad D\subseteq \real, $$ @@ -144,8 +144,8 @@ $$ Les cas où $f''(x)=0$ est un point d'inflexion et $f''(x)<0$ est un maximum. Un autre problème beaucoup plus compliqué à résoudre est de déterminer un minimum **global**. -En effet, comme pour la fonction de Ackley (voir la @fig:ackley), une fonction peut posséder un grand nombre de minimam **locaux** (où -$f'(x)=0$ et $f''(x)>0$) mais qui n'est pas un mimumum global. +En effet, comme pour la fonction de Ackley (voir la @fig:ackley), une fonction peut posséder un grand nombre de minima **locaux** (où +$f'(x)=0$ et $f''(x)>0$) mais qui n'est pas un minimum global. Mathématiquement un *minimum local* se définit comme $x^\ast$ tel qu'il existe $\delta>0$ et que $f(x^\ast)\leq f(x)$, pour $x\in[x^\ast-\delta,x^\ast+delta]$. Un *minimum global* est un $x^\ast$ tel que $\forall x\in D$, $f(x^\ast)\leq f(x)$. @@ -166,7 +166,7 @@ analytiquement les zéros. En revanche, pour des fonctions plus complexes, ou "i l'équation $g(x)=0$ sous la forme $x=...$) la détermination des zéros est beaucoup plus difficile et nécessite l'utilisation de **méthodes itératives**. Nous allons en voir quelques unes. -## Méthodes par raffienement d'intervalles +## Méthodes par raffinement d'intervalles ### Méthode de la bissection @@ -175,7 +175,7 @@ de **méthodes itératives**. Nous allons en voir quelques unes. Afin de déterminer le zéro d'une fonction, une des méthodes les plus simple est la méthode de la bissection. Il s'agit de choisir deux points, $a_1$ et $b_1$, $b_1>a_1$, tels que le signe de $g(a_1)$ et $g(b_1)$ est différent. -Si cela est le cas, nous aommes assurés de l'existence d'au moins un zéro si la fonction $g(x)$ est continue +Si cela est le cas, nous sommes assurés de l'existence d'au moins un zéro si la fonction $g(x)$ est continue (en vertu du théorème de la valeur intermédiaire). Ensuite, nous allons calculer la valeur se situant "au milieu" entre $a_1$ et $b_1$ $$ @@ -183,7 +183,7 @@ c_1=\frac{b_1+a_1}{2}. $$ Puis, nous évaluons $g(c_1)$ et si ce n'est pas un zéro, étudions son signe. Si le signe $g(c_1)$ est différent de celui de $g(a_1)$, nous remplaçons $b_1$ par $c_1$ et recommençons. Si le signe de $g(c_1)$ est différent de celui de $g(b_1)$, nous remplaçons $a_1$ par $c_1$. -Nous itérons cette méthode jusqu'à ce que nous ayons atteint une valeur "siffisamment proche" (nous vons une précision acceptable pour nous) +Nous itérons cette méthode jusqu'à ce que nous ayons atteint une valeur "suffisamment proche" (nous avons une précision acceptable pour nous) de zéro. Une façon d'exprimer "proche" est de considérer la taille de l'intervalle $b_1-a_1$ et de le comparer avec une précision $\varepsilon>0$ que nous aurons choisie $$ @@ -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 (Racice 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). @@ -271,7 +271,7 @@ $$ --- -### Recherche de la fourchette intiale +### Recherche de la fourchette initiale Dans les méthodes ci-dessus, nous avons supposé que nous avions une fonction $g(x)$ continue, ainsi qu'un intervalle, $[a,b]$, avec @@ -304,7 +304,7 @@ Si $f(b)>0$, on a terminé. Sinon on recommence avec $k\rightarrow 2\cdot k$ et ## Méthodes de descentes locales L'idée de ce type de méthodes est, contrairement aux méthodes de la section précédente, d'utiliser des -connaissances *locales* que nous pouvons avoir sur la fonction. Cette connsaissance loale +connaissances *locales* que nous pouvons avoir sur la fonction. Cette connaissance locale a en général comme effet une *convergence* plus rapide de l'algorithme de recherche de zéros. ### Méthode de Newton (ou *Newton-Raphson*) @@ -338,7 +338,7 @@ $$ |g(x_n)| < \varepsilon,\quad |x_n-x_{n-1}| < \varepsilon. $$ -Lorsque qu'elle converge la mtéhode de Newton est la plus efficace de toutes celles que nous avons vues. On dit qu'elle est d'ordre $2$. +Lorsque qu'elle converge la méthode de Newton est la plus efficace de toutes celles que nous avons vues. On dit qu'elle est d'ordre $2$. En revanche les contraintes pour sa convergence sont plus strictes que pour les méthodes vues précédemment. --- @@ -377,7 +377,7 @@ Il suffit de remplacer $g(x)$ par $f'(x)$ et le tour est joué. #### Exercice {-} -Écrire l'algorithme de Newton pour le cas de la minimisation d'une fonction $f(x)$ quelconque, mais continuement dérivable 2 fois. +Écrire l'algorithme de Newton pour le cas de la minimisation d'une fonction $f(x)$ quelconque, mais continûment dérivable 2 fois. --- @@ -417,7 +417,7 @@ f'(a)=\frac{\dd f}{\dd x}(a)=\lim_{\dd x\rightarrow 0}\frac{f(a+\dd x)-f(a)}{\dd \end{equation} La notation ici n'est pas tout à fait usuelle. L'idée est de se rappeler que ce $\dd x$ est une toute petite variation de $x$, et $\dd f$, une toute petite variation de $f$ en $a$. On voit immédiatement que cette quantité est la pente -de $f$ en $a$. Lorsque nous étudions une fonction à plusieurs variables, nous pouvons faire le même raisonnement pour chaque variable indépendemment. +de $f$ en $a$. Lorsque nous étudions une fonction à plusieurs variables, nous pouvons faire le même raisonnement pour chaque variable indépendamment. Ainsi, nous calculons sa dérivée dans chacune des directions $x$, $y$, ... Cette vision de la dérivée comme une variation de $f$, $\dd f$, divisée par une petite variation de $x$, $\dd x$, permet @@ -556,7 +556,7 @@ $$ \vec \nabla f=\left(2x, -2y\right)^\mathrm{T}. $$ -Graphiquement, ceci est un *champds de vecteur* est peut se représenter comme +Graphiquement, ceci est un *champs de vecteur* est peut se représenter comme {width="50%"}