Fonctionnel-toutes-fonctions

Programmes Algobox pour l’étude de fonctions
dimanche 23 septembre 2012
par  Michel SAAD

Premier en son genre dans l’historique d’AlgoBox, ce programme sera un outil pédagogique appréciable entre les mains des élèves et des professeurs tant pour les thèmes abordés, la vitesse et la précision des résultats, que pour les méthodes utilisées pour les obtenir.

1. Intérêt du programme

Mis au point à l’intention des élèves des lycées, ce programme propose une étude numérique détaillée des fonctions.

Les élèves de seconde auront sous les yeux les tableaux de valeurs ou de variations, suivront point par point le tracé de leur courbe. Ceux de première vérifieront les limites, les directions asymptotiques, les équations des tangentes. Ceux de terminale estimeront l’aire des zones colorées avant de s’intéresser à la structure du programme.

Dans un intérêt pédagogique, justement, ce programme ne cache pas son jeu, au contraire, il annonce les étapes de ses recherches, présente la méthode qui a le mieux réussi, justifie les résultats en se basant sur les formules apprises en cours. Sa seule ambition est de faire tout en un :

  • La résolution numérique des équations du type f(x) = 0
  • Celle de f(x) = g(x), en partant de f(x) – g(x)
  • Celle de f ’(x) = 0, où f ’ représente la dérivée de f
  • Tableau de variations avec signe de f ’ et flèches de f
  • La présentation développée du tableau de variations
  • Limites aux infinis et aux bornes de l’intervalle d’étude
  • Limites de part et d’autre des valeurs interdites
  • Présentation du tableau de valeurs et tracé des points
  • Équations et tracé des tangentes (répétitif)
  • Équations et tracé des asymptotes
  • Représentation graphique des fonctions dans un repère adapté
  • Calcul et coloration des aires situées entre la courbe et une droite (répétitif).

L’utilisateur devra taper sa fonction à l’emplacement prévu, tout en bas de la première page du programme, juste à droite de F1x = …, comme 2*x + 1 – 3/(x – 2), et suivre scrupuleusement les indications du programme.

REMARQUE : AlgoBox ignore le symbole exposant « ^ », il le confond avec « + ». Pour entrer x^2 ou x^3, il faudra taper x*x ou x*x*x. Au delà de x^4, il serait préférable d’utiliser la fonction pow(x,n).

Une fois lancé, le programme cherche les valeurs remarquables de x, repère les points où la courbe coupe l’axe des abscisses, trace les tangentes aux extremums, les asymptotes verticales ou obliques, place les points, trace la courbe, colorie les zones des aires demandées… Que ne fait-il pas pour aider l’élève à raisonner, à deviner les variations de sa fonction, à en imaginer les limites, à estimer l’aire qu’il va devoir calculer !

Premier en son genre dans l’historique d’AlgoBox, ce programme en état de perfectionnement continuel sera un outil pédagogique appréciable entre les mains des élèves et des professeurs tant par les thèmes abordés, la présentation, la vitesse et la précision des résultats, que par les méthodes utilisées pour les obtenir.

2. Conception du programme… Si cela vous intéresse !

Algorithme de l’algorithme : Partageant l’ensemble d’étude en n intervalles, n > 1000, le programme repère les intervalles où |f(x)| change de sens. Ensuite, il les réduit pour aboutir aux valeurs remarquables de la variable x qu’il précise, compte et classe chacun selon leur rôle.

L’ensemble de définition : N’ayant aucune information sur le dénominateur de la fonction choisie par l’utilisateur, (AlgoBox n’a qu’une fonction, indivisible par ailleurs, comme un atome !) ce n’est pas tant les zéros du dénominateur qui importent mais l’intervalle, s’il existe, où |f(x)| change de sens. Or c’est dans un même intervalle que |f(x)| et 1/|f(x)| changent de sens et pour les mêmes valeurs de x, valeurs qu’il va falloir trouver et interpréter dans la partie « Dépouillement des résultats » du programme.

Méthode : Si f(x) change de signe pour une ou plusieurs valeurs de x, résoudre l’équation f(x) = 0 serait un jeu d’enfants ! Cette idée fut vite abandonnée : il est des fonctions, telle (3x + 2)², qui ne changent pas de signe mais qui peuvent s’annuler. L’utilisation de |f(x)| aura été la meilleure solution : en effet, que f(x) change de signe ou pas, les équations |f(x)| = 0 et f(x) = 0 ont mêmes solutions.

Précautions :
On découpe l’ensemble d’étude [a, b] en n intervalles d’amplitude h = (b – a)/n. Pour éviter de tomber dans le piège d’une valeur interdite, n ne sera pas un entier, la partie décimale de h se termine par des chiffres pris au hasard. D’autre part, pour éviter que le programme se bloque dès son lancement sur une valeur interdite choisie inconsciemment par l’utilisateur, l’intervalle [a, b] est légèrement élargi à sa huitième décimale.

Solutions ou variations : Considérant x1, x2, x3 trois valeurs consécutives de x évoluant dans l’intervalle [a,b], x1 < x2 < x3, le programme calcule f(x1), f(x2), f(x3), et, par un jeu-des-tests, il détermine xo, valeur de x pour laquelle |f(x)| change de sens. À son tour, lors du dépouillement des résultats, xo subit plusieurs tests pour savoir s’il est une valeur interdite, une solution de l’équation f ’(x) = 0, ou de f(x) = 0, ou des deux à la fois, ou d’aucune.

Classement des solutions : Il arrive que la liste des valeurs particulières de x ainsi obtenues comprenne des doublons. Mieux vaut encore en avoir mille plutôt qu’il lui en manque une qui fausserait le tableau de variations. Le programme classe ces valeurs par ordre croissant et retire les doublons.

Le zéro et l’infini : Nous voici arrivés aux points faibles du programme : comment distinguer entre un grand nombre et l’infini. La limite de f(x) quand x tend vers l’infini est d’autant plus précise que x est infiniment grand. Or, Algobox plafonne à l’exponentielle exp(705) soit environ 1.5 x 10^306, ce qui n’est pas mal pour f(x), mais avec ses 705, x est encore bien loin de l’infini. S’appuyant sur la monotonie de f(x) dans un intervalle, le programme prolonge cette intention de f(x) et se prononce sur la limite. Toutefois, compte tenu du fait que l’utilisateur pourrait utiliser une fonction exp(x*x), x sera limité à 25, pour garder une marge de sûreté : 25*25 < 705.

Autant dire de zéro… avec une démarche similaire, partant de |f(x)| < 0.01, le programme s’appuie sur la monotonie de f(x) pour se prononcer sur une limite nulle.

Le tableau de variations : Rangées par ordre croissant, les k valeurs remarquables de x forment k – 1 intervalles consécutifs où la fonction est monotone dans tout un chacun. Le programme s’appuie sur les conditions x1 < x2, f(x1) < f(x2), ou f(x1) > f(x2), et poursuit le sens de variation jusqu’au bout de l’intervalle.

Le calcul d’aires : Pour la clarté de l’exposé, un considère un intervalle où f(x) est positive.
On peut trouver une explication analogue dans la première leçon sur les intégrales :
On découpe l’intervalle [a, b] en n bandes verticales de largeur h = (b – a)/n. Une bande, de base [ai ; ai + h] sur x’Ox, de hauteur f(ai) et d’aire f(ai).h, (pour ne pas dire f(x).dx), se trouve en partie sous la courbe Cf. Si la hauteur de cette bande était f(ai + h), son aire serait f(ai + h).h, et une partie de la bande serait au-dessus de Cf. On peut conclure que l’aire élémentaire σi d’une bande trapézoïdale comprise entre l’axe des abscisses et la courbe Cf et les droites d’équation x = ai et x = ai + h est telle que f(ai ).h < σi < f(ai + h).h, et qu’elle est numériquement égale à la demi-somme : σ = |[f(ai) + f(ai + h)].h/2|
En étendant ce procédé à tout l’intervalle [a, b], on trouve A = Σσi = |Σ[f(ai) + f(ai + h)].h/2|.

Remarque 1 : On peut procéder de la même façon pour déterminer l’aire située entre la courbe Cf et la droite D d’équation y = mx + p : le programme remplace f(x) par f(x) – (mx + p), après avoir demandé les valeurs de m et p.
Si la droite D est une asymptote, oblique ou horizontale, l’utilisateur pourra remonter les résultats affichés et retrouver les valeurs de m et p de D.

Remarque 2 : Si f(x) change de signe dans l’intervalle [a, b], la zone colorée a la forme d’un papillon, le résultat affiché par le programme est égal à la valeur absolue de la différence des aires situées de part et d’autre de l’axe des abscisses ou de part et d’autre de la droite D.

Évolution du programme : Dans sa première version, Fonctionnel n’acceptait pas les fonctions ln(u(x)) ni √(u(x)), fonctions où u(x) serait positive pour l’un, positive ou nulle pour l’autre. Car, dans son algorithme, le programme Fonctionnel donne à x des valeurs variant entre –5 et 5, il est vite bloqué si u(x) venait à être négative.

Désormais, ETUDE de FONCTION sait faire beaucoup de choses : résoudre des équations, des inéquations, afficher le tableau de variations, comme en classe, avec le signe de f ’ et les flèches de f, colorer les aires demandées, traiter des fonctions telles f(x) = √(x^2 – 1) + ln(x + 2), ce que son « ancêtre » Fonctionnel ne pouvait faire.

Nouveau procédé : L’ensemble d’étude de f(x) peut être donné par un ou plusieurs intervalles, disjoints ou adjacents. Peu importe donc que f : x → 1/(x – 2) soit donnée sur [–5, 2[ U ]2, 5] ou tout simplement sur [–5, 5], le programme se chargera de trouver la valeur interdite.

Par contre, pour des fonctions telle f(x) = √(x^2 – 1) + ln(x + 2), l’utilisateur devra résoudre le système d’inéquations x^2 – 1 ≥ 0 et x + 2 > 0, et donner les intervalles-solutions au programme.

Mais le programme ne s’arrête pas là. Après avoir entamé l’étude de la fonction donnée, si complexe soit-elle, il propose de passer à l’étude de sa racine carrée ou de son logarithme népérien, ce qui lui confère encore plus de possibilités.
Imaginez √[√(x^2 – 1) + ln(x + 2)] ou ln[√(x^2 – 1) + ln(x + 2)] !

D’autre part, la présentation est plus soignée, le calcul des aires plus riche en couleurs, la fenêtre métamorphosée tant elle affiche le signe de la dérivée, le tableau de variations fléchées, avec les lettres F et F’ ainsi que les barres pour les valeurs interdites.

Apologie : les utilisateurs me pardonneront la longueur du programme qui a été repris maintes fois décalées dans le temps, la lenteur du téléchargement, les quelques confusions des grands nombres avec l’infini ou des petits nombres avec zéro,

3. Donnez votre avis

Se voulant complet et fiable, mon programme n’est pas à l’abri d’une fonction « bien mal intentionnée » qui briserait ses intentions. Je compte sur ceux qui l’utiliseront, soient-ils élèves, enseignants ou amateurs, de me signaler toute anomalie ou mauvais fonctionnement : je resterai à l’écoute de leurs conseils et de leurs critiques.

4. Foire Aux Questions

Peut-on choisir [–100, 100] comme ensemble d’étude ?
Il est conseillé de commencer par des intervalles inclus dans [–5, 5], puis d’élargir progressivement cet intervalle si le programme le permet. Ne pas dépasser [–25, 25] en cas d’exponentielles.

Les résultats affichés sont-ils fiables ?
Satisfaisants tant qu’on se trouve dans un intervalle où la fonction est définie et continue. Le plus souvent, la précision peut aller au delà de la 4e décimale. Cependant, situation peu courante rencontrée au lycée, si l’on cherche à piéger intentionnellement ce programme en donnant deux nombres très rapprochés, comme dans f(x) = (x² - 4)/(x - 2.0001), il risque de les confondre, alors qu’il les distingue facilement dans (x² - 4)/(x - 2.001).

Que faire si le programme se bloque toujours au même endroit ?
Relancer le programme, lire et respecter méticuleusement les conditions. Si l’erreur persiste, utilisez vos connaissances en Algobox et essayez de corriger le programme. Si vous réussissez, bravo ! Dans tous les cas mettez-moi au courant !

Si c’était à refaire ?
Ce serait évidemment plus court, maintenant que je connais les reliefs ! J’éviterais les arrondis et les troncatures qui faussent les résultats, je règlerais mieux le problème du zéro et de l’infini, je… je ferais un peu mieux, voilà !

Combien de temps avez-vous mis pour mettre au point ce programme ?
Beaucoup plus que pour écrire un roman. Ce n’était pas tant l’écriture qui était longue mais les tests et les re-tests imposés à des centaines de fonctions. En effet, ce qui plaît à l’une n’est pas toujours du goût de l’autre.

J’aimerais programmer en Algobox, qu’apprendrai-je avec Fonctionnel ?
Des astuces de programmation : comment résoudre une équation, présenter un résultat, fondre plusieurs listes en une, classer des nombres, sortir d’une boucle, supprimer les doublons, placer cinq éléments par ligne, tracer une courbe, dessiner des flèches, écrire des lettres F et F’… c’est indiqué dans le programme. Allez-y en douceur, plus tard vous me dépasserez.

Que pensez-vous d’Algobox ?
Pour moi, programmer en Algobox c’est comme construire une pyramide avec des grains de sable. Quand j’ai commencé les fondations, je me suis dit : « C’est nul, il y a mieux ! comment ferai-je sans le Goto » ? Plus tard, je me suis rendu compte qu’Algobox était source d’imagination, d’astuces, de ténacité et de créativité : on doit inventer avec presque rien, et c’est là que réside toute sa portée pédagogique. Les jeunes qui veulent les choses toutes faites et tout de suite apprendront que tout n’est pas donné. Quant à moi, après 42 pages de programmation et des centaines de « Si-Alors-Sinon », de « Tant que » et de « Pour », un travail de titans, sinon, de tue-temps, je n’ai pas rencontré un seul hiatus… Algobox soit loué !

Puisque le programme ETUDE de FONCTION est plus complet que FONCTIONNEL, qu’attendez-vous pour retirer son « ancêtre » devenu obsolète ?

Je répondrai par une autre question : pourquoi continue-t-on à utiliser le théorème de Pythagore alors que le théorème d’Al Kashi est plus complet ?


Documents joints

Fonctionnel 5
Etude des fonctions usuelles, sauf la racine carrée et le logarithme népérien.
Fonctionnel toutes-fonctions-5
Etude de fonctions usuelles, y compris racine carrée et logarithme népérien.
Fonctionnel 5
Etude de fonctions usuelles, sauf la racine carrée et le logarithme népérien.
Fonctionnel toutes-fonctions-5
Etude de fonctions usuelles, y compris racine carrée et logarithme népérien.
Etude de fonctions-6
Ce programme AlgoBox étudie des fonctions définies sur un ou plusieurs intervalles.
Etude de fonctions (instructions)
Listing du programme AlgoBox

Commentaires

Logo de ipranipa1974
dimanche 16 juin 2013 à 01h54 - par  ipranipa1974

Developing backlinks to your website is also vital. I’ll address most people today on the web business terms in the up coming lesson.
pozycjonowanie stron Łódź

Logo de righzborliepref1977
vendredi 31 mai 2013 à 12h12 - par  righzborliepref1977

The best HEPA vacuums maintain airborne allergen to a bare bare minimum. To lower the risk, keep away from driving or hold it to a bare minimum.
look at this