5 Définir et appliquer une fonction
\[ \newcommand{\Nombre}{\mathbf{Nombre}} \newcommand{\Longueur}{\mathbf{Longueur}} \newcommand{\Aire}{\mathbf{Aire}} \newcommand{\aire}{\mathcal{A}} \newcommand{\metre}{\mathtt{m}} \newcommand{\addi}{\mathtt{add}} \newcommand{\multi}{\mathtt{mult}} \newcommand{\oppo}{\mathtt{opp}} \newcommand{\inve}{\mathtt{inv}} \newcommand{\subst}[2]{#1 \textrm{ remplacé par } #2} \newcommand{\defFctn}[3]{#1\ :\ #2 \mapsto #3} \newcommand{\fctn}[3]{#1\ :\ #2 \rightarrow #3} \]
Notation : par la suite, la multiplication est toujours notée \(\times\). Traditionnellement, en Mathématiques, elle peut être notée par un point (\(.\)) pour abréger ou peut même être omise. Nous ne le ferons jamais pour éviter toute confusion et bien mettre en avant les opérations appliquées. Enfin, en Informatique, la multiplication est notée \(\ast\) au lieu de \(\times\).
5.1 Fonction comme méthode de calcul
Une fonction définit une méthode de calcul qui produit à partir d’une valeur en entrée (au départ) une valeur en sortie (à l’arrivée). Elle est utile parce qu’elle permet de réutiliser la même méthode de calcul pour toutes les valeurs possibles en entrée. Grâce aux ordinateurs et à leur programmation par les langages informatiques, nous disposons désormais de machines capables de réaliser concrètement les fonctions mathématiques : il devient possible de calculer les valeurs en sortie d’une fonction pour des millions de valeurs en entrée en quelques secondes.
Définition 5.1 (Définition d’une fonction à un paramètre) Une fonction \(f\) de l’ensemble de départ \(D\) vers l’ensemble d’arrivée \(A\) se définit ainsi :
\[ \begin{array}{rcrcl} f & : & D & \rightarrow & A \\ && x & \mapsto & e_x. \\ \end{array} \]
- \(f\) : le nom de la fonction,
- \(D\) : ensemble de départ précisant la nature des valeurs admissibles en entrée,
- \(A\) : ensemble d’arrivée précisant la nature des valeurs produites en sortie,
- \(D \rightarrow A\) : type de la fonction, lu “\(D\) flèche \(A\)”,
- \(x\) : variable représentant le paramètre de la fonction,
- \(e_x\) : expression associée à \(x\) et pouvant contenir \(x\), qui représente la méthode de calcul.
Cette définition est identique à celle obtenue après tout renommage du paramètre \(x\) en un nouveau paramètre \(y\) :
\[ \begin{array}{rcrcl} f & : & D & \rightarrow & A \\ && y & \mapsto & e_y,\\ \end{array} \]
où \(e_y\) est égal à \(e_x[\subst{x}{y}]\), soit le résultat du remplacement de \(x\) par \(y\) dans \(e_x\).
Par exemple, la fonction \(\aire{}_\mathrm{C}\) qui donne l’aire d’un carré en fonction de la longueur de son côté peut être définie ainsi, après le choix d’une unité, par exemple le mètre (\(\metre{}\)).
\[ \begin{array}{rcrcl} \aire{}_\mathrm{C} & : & \Longueur{}(\metre{}) & \rightarrow & \Aire{}(\metre{}^2) \\ && x & \mapsto & x \times x. \\ \end{array} \] Les ensembles \(\Longueur{}(\metre{})\) et \(\Aire{}(\metre{}^2)\) désignent l’ensemble des valeurs possibles pour des longueurs en mètre et des aires en mètre carré respectivement.
Le renommage du paramètre \(x\) en \(y\) produit la définition identique suivante :
\[ \begin{array}{rcrcl} \aire{}_\mathrm{C} & : & \Longueur{}(\metre{}) & \rightarrow & \Aire{}(\metre{}^2) \\ && y & \mapsto & y \times y. \\ \end{array} \]
Il est possible de généraliser la définition d’une fonction en admettant plusieurs paramètres au lieu d’un. Par exemple, si nous nous intéressons à l’aire d’un rectangle, nous aimerions définir la fonction \(\aire{}_\mathrm{R}\) donnant l’aire d’un rectangle en fonction des deux longueurs de ses côtés adjacents, de la manière suivante :
\[ \begin{array}{rcrcl} \aire{}_\mathrm{R} & : & \Longueur{}(\metre{}), \Longueur{}(\metre{}) & \rightarrow & \Aire{}(\metre{}^2) \\ && x, y & \mapsto & x \times y. \\ \end{array} \]
Voici la formulation générale.
Définition 5.2 (Définition d’une fonction à plusieurs paramètres) Une fonction \(f\) des ensembles de départ \(D_1, D_2, \ldots\) vers l’ensemble d’arrivée \(A\) se définit ainsi :
\[ \begin{array}{rcrcl} f & : & D_1, D_2, \ldots & \rightarrow & A \\ && x_1, x_2, \ldots & \mapsto & e_{x_1, x_2, \ldots}. \\ \end{array} \]
- \(f\) : le nom de la fonction,
- \(D_1, D_2, \ldots\) : ensembles de départ précisant la nature des valeurs admissibles en entrée pour le premier paramètre, pour le second, etc.,
- \(A\) : ensemble d’arrivée précisant la nature des valeurs produites en sortie,
- \(D_1, D_2, \ldots \rightarrow A\) : type de la fonction, lu “\(D_1, D_2, \ldots\) flèche \(A\)”,
- \(x_1, x_2, \ldots\) : variables représentant les paramètres de la fonction,
- \(e_{x_1, x_2, \ldots}\) : expression associée à \(x_1, x_2, \ldots\) et pouvant contenir \(x_1, x_2, \ldots\), qui représente la méthode de calcul.
Cette définition est identique à celle obtenue après tout renommage des paramètres \(x_1, x_2, \ldots\) en de nouveaux paramètres \(y_1, y_2, \ldots\) :
\[ \begin{array}{rcrcl} f & : & D_1, D_2, \ldots & \rightarrow & A \\ && y_1, y_2, \ldots & \mapsto & e_{y_1, y_2, \ldots}. \\ \end{array} \]
où \(e_{y_1, y_2, \ldots}\) est égal à \(e_{x_1, x_2, \ldots}[\subst{x_1}{y_1}, \subst{x_2}{y_2}, \ldots]\), soit le résultat du remplacement de \(x_1\) par \(y_1\), de \(x_2\) par \(y_2\), etc. dans \(e_{x_1, x_2, \ldots}\).
Dans le cas de notre fonction \(\aire{}_\mathrm{R}\), le renommage des paramètres \(x\) et \(y\) en \(a\) et \(b\) produit la définition identique suivante :
\[ \begin{array}{rcrcl} \aire{}_\mathrm{R} & : & \Longueur{}(\metre{}), \Longueur{}(\metre{}) & \rightarrow & \Aire{}(\metre{}^2) \\ && a, b & \mapsto & a \times b. \\ \end{array} \]
Très souvent on rencontre des définitions beaucoup plus informelles que celles données dans la Définition 5.1 et la Définition 5.2. Par exemple, la définition peut se présenter ainsi :
soit \(C\) la fonction numérique qui à \(x\) associe \(x \times x\),
ou
soit \(C\) la fonction numérique telle que \(f(x) = x \times x\).
Ce sont deux descriptions informelles de la fonction suivante, dite carrée :
\[ \begin{array}{rcrcl} C & : & \Nombre{} & \rightarrow & \Nombre{} \\ && x & \mapsto & x \times x. \\ \end{array} \]
Le type \(\Nombre{} \rightarrow \Nombre{}\) traduit le fait que la fonction est numérique : elle associe à un nombre en entrée un nombre en sortie. Par nombre, on peut entendre un entier naturel (comme \(5\)), ou relatif (comme \(-5\)), un nombre décimal (comme \(5,25\)), un nombre rationnel (une fraction comme \(5/3\)) ou un nombre réel (comme \(\sqrt{2}\) ou \(\pi\)). Comme nous ne distinguerons pas entre ces différentes possibilités, nous utilisons un ensemble générique \(\Nombre{}\) pour désigner les nombres, sans détailler plus. C’est au lycée qu’on apprend les distinctions.
Parfois il semble inutile de nommer la fonction car elle n’est utilisée que localement, sans référence ultérieure : il est alors possible de définir la fonction anonymement par la seule association \((x \mapsto e_x)\) en laissant implicites les ensembles de départ et d’arrivée s’ils peuvent être devinés sans ambiguïté. Par exemple, la fonction carrée \((x \mapsto x \times x)\) est exactement la même fonction que celle appelée \(C\) ci-dessus, mais elle est anonyme, sans nom. Elle est aussi sans type, mais il peut être deviné comme on fait une multiplication : \(x\) doit être un nombre.
5.2 Application d’une fonction
Comment utiliser une fonction ? Il suffit de l’appliquer à des valeurs, autant de valeurs que de paramètres. Ces valeurs sont appelées les arguments de la fonction. Il existe une notation particulière pour l’application : on fait suivre le nom de la fonction par ses arguments entre parenthèses. Par exemple, si \(f\) est une fonction à un paramètre, et \(v\) une valeur admissible en entrée, alors \(f(v)\) représente l’application de la fonction \(f\) à l’argument \(v\). Lorsque la fonction \(f\) possède deux paramètres, pour l’appliquer à deux valeurs \(v_1\) et \(v_2\), on écrit simplement \(f(v_1, v_2)\), pour signifier l’application de \(f\) aux deux arguments \(v_1\) et \(v_2\), et ainsi de suite s’il y a d’autres paramètres. C’est la notation la plus usuelle en Mathématiques et la seule que nous utiliserons. Il existe cependant d’autres notations, comme \((f\ v)\) ou \((v\ f)\)1, ou encore \(@(f, v)\), qui a l’avantage de représenter l’application par un nouvel opérateur, \(@\). Comme pour toute nouvelle notation, il faut bien comprendre la convention choisie, et associer à la notation retenue la bonne interprétation. Pour bien interpréter la nouvelle notation \(f(v)\), il est ainsi fortement recommandé de la lire ainsi :
- version complète : “application de la fonction \(f\) à l’argument \(v\)”,
- versions incomplètes permettant d’abréger à mesure que la compréhension de l’application se consolide:
- version longue : “fonction \(f\) appliquée à l’argument \(v\)”,
- version intermédiaire : “\(f\) appliquée à \(v\)”,
- version courte : “\(f\) de \(v\)”.
Il nous reste à définir l’interprétation de l’application. Lorsqu’on définit une fonction, on fournit une nouvelle méthode de calcul, si bien qu’on peut dire qu’on crée une nouvelle opération, sa propre opération. L’application devient alors le mécanisme qui permet d’utiliser sa nouvelle opération, pour produire une valeur à partir de valeurs en entrée. Si \(f\) est la fonction qui à \(x\) associe l’expression \(e_x\), alors l’application de \(f\) à un argument \(v\) revient à calculer la valeur de \(e_x\), après le remplacement de \(x\) par \(v\). Ainsi nous avons une loi fondamentale pour l’application des fonctions, la loi du remplacement des paramètres par les arguments :
\[ f(v) = e_x [\subst{x}{v}]. \]
Par exemple, soit \(C\) la fonction carrée définie par \((x \mapsto x \times x)\). Alors
\[ \begin{array}{rcl} C(5) & = & (x \times x)[\subst{x}{5}],\\ & = & 5 \times 5,\\ & = & 25.\\ C(-3) & = & (x \times x)[\subst{x}{(-3)}],\\ & = & (-3) \times (-3),\\ & = & 9.\\ \end{array} \]
En résumé, voici la définition de l’application d’une fonction.
Définition 5.3 (Application d’une fonction - Cas à un ou deux paramètres) Considérons une fonction \(f\) de l’ensemble de départ \(D\) vers l’ensemble d’arrivée \(A\) définie ainsi :
\[ \begin{array}{rcrcl} f & : & D & \rightarrow & A \\ && x & \mapsto & e_x. \\ \end{array} \]
Alors si \(v\) est une valeur appartenant à \(D\), l’application de la fonction \(f\) à l’argument \(v\), notée \(f(v)\), est égale à l’expression \(e_x\), où le paramètre \(x\) a été remplacé par \(v\) :
\[ f(v) = e_x [\subst{x}{v}]. \]
Considérons une fonction \(g\) des ensembles de départ \(D_1, D_2\) vers l’ensemble d’arrivée \(A\) définie ainsi :
\[ \begin{array}{rcrcl} g & : & D_1, D_2 & \rightarrow & A \\ && x_1, x_2 & \mapsto & e_{x_1, x_2}. \\ \end{array} \]
Alors si \(v_1\) est une valeur appartenant à \(D_1\) et \(v_2\) est une valeur appartenant à \(D_2\), l’application de la fonction \(g\) aux arguments \(v_1\) et \(v_2\), notée \(g(v_1, v_2)\), est égale à l’expression \(e_{x_1, x_2}\), où le paramètre \(x_1\) a été remplacé par \(v_1\) et le paramètre \(x_2\) par \(v_2\) :
\[ g(v_1, v_2) = e_{x_1, x_2} [\subst{x_1}{v_1}, \subst{x_2}{v_2}]. \]
Bien sûr, on pourrait étendre cette définition à plus de deux paramètres.
Une fois que l’application est définie, il est possible de discuter de l’égalité de deux fonctions. Considérons les fonctions \((\defFctn{f}{x}{(x+1)^2})\) et \((\defFctn{g}{x}{}{(x^2 + 2 \times x + 1)})\). Sont-elles égales ? À première vue, on pourrait dire qu’elles ne le sont pas puisque leurs expressions sont distinctes. Cependant, pour toute valeur \(v\), l’application de \(f\) à \(v\) est égale à l’application de \(g\) à \(v\) : \(f(v) = g(v)\) car \[ (v+1)^2 = (v^2 + 2 \times v + 1). \]
C’est le critère retenu pour l’égalité de fonctions : l’impossibilité de les distinguer par application.
Définition 5.4 (Egalité de fonctions) Considérons deux fonctions \((\fctn{f}{D}{A})\) et \((\fctn{g}{D}{A})\) de l’ensemble de départ \(D\) vers l’ensemble d’arrivée \(A\). Alors les fonctions \(f\) et \(g\) sont égales si pour toute valeur \(v\) appartenant à \(D\), on a l’égalité \(f(v) = g(v)\).
Cette définition se généralise au cas de fonctions à plusieurs paramètres.
5.3 Des exemples de fonctions
Toute opération numérique connue peut être vue comme une fonction. En effet, les quatre opérations fondamentales sont fondamentalement des fonctions puisqu’elles peuvent être exprimées sous une forme fonctionnelle :
\[ \begin{array}{lcrcrcl} \mathrm{addition} & \quad & \addi{} & : & \Nombre{}, \Nombre{} & \rightarrow & \Nombre{} \\ &&&& x, y & \mapsto & x + y, \\ \mathrm{multiplication} & \quad & \multi{} & : & \Nombre{}, \Nombre{} & \rightarrow & \Nombre{} \\ &&&& x, y & \mapsto & x \times y, \\ \mathrm{opposition} & \quad & \oppo{} & : & \Nombre{} & \rightarrow & \Nombre{} \\ &&&& x & \mapsto & -x, \\ \mathrm{inversion} & \quad & \inve{} & : & \Nombre{} & \rightarrow & \Nombre{} \\ &&&& x & \mapsto & 1/x. \\ \end{array} \]
AFFAIRE(
- opération prédéfinie puis fonction à partir de l’opération
- alternative : opération comme notation, et définition de fonctions fondamentales
- comment ? exemples de l’addition et de la multiplication
)
Ainsi une expression comme \((x + y)\) peut être vue comme une nouvelle notation pour l’application de la fonction
- l’addition : $
- la multiplication,
- l’opposition,
- l’inversion.
En voici les formes fonctionnelles :
5.4 AFFAIRE Représentations de fonctions
- table
- graphe
Pour les curieux, en notation polonaise et en notation polonaise inversée respectivement.↩︎