Grapheur de Fonctions Mathématiques
Notre grapheur utilise le moteur Math.js, une bibliothèque JavaScript performante qui garantit des calculs précis et une compatibilité maximale avec les standards mathématiques internationaux. Idéal pour les lycéens, étudiants en classes préparatoires, enseignants et tout passionné de mathématiques.
Pourquoi Choisir Ce Grapheur ?
⚡ Haute Performance
Rendu optimisé avec Canvas API et RequestAnimationFrame pour un tracé fluide même sur mobile.
🔒 Sécurité Maximale
Système de parsing sécurisé avec validation des expressions et protection contre l’injection de code.
🎨 Interface Moderne
Design responsive avec mode sombre/clair, animations fluides et raccourcis clavier intuitifs.
📊 Multi-Fonctions
Tracez jusqu’à 8 fonctions simultanément avec des couleurs personnalisables pour chaque courbe.
🔍 Zoom Intelligent
Zoom/dézoom avec la molette ou geste pincement + détection automatique des zéros.
💾 Export Professionnel
Téléchargez vos graphiques en PNG haute résolution pour vos rapports et présentations.
Syntaxe Math.js : Guide de Référence
Le grapheur accepte toutes les fonctions compatibles avec la bibliothèque Math.js. Voici un tableau exhaustif des opérations et fonctions supportées :
| Catégorie | Fonction | Syntaxe d’Entrée | Exemple |
|---|---|---|---|
| Opérations de Base | Addition | + | x + 3 |
| Soustraction | - | x - 2 | |
| Multiplication | * | 2*x ou 2x | |
| Division | / | 1/x | |
| Puissance | ^ | x^2, x^3 | |
| Trigonométrie | Sinus / Cosinus / Tangente | sin(x) cos(x) tan(x) | sin(2*x) |
| Arc-fonctions | asin(x) acos(x) atan(x) | asin(x/2) | |
| Hyperboliques | sinh(x) cosh(x) tanh(x) | sinh(x) | |
| Exponentielle & Logarithme | Exponentielle | exp(x) ou e^x | exp(2*x) |
| Logarithme népérien | log(x) ou ln(x) | log(x+1) | |
| Logarithme décimal | log10(x) | log10(x) | |
| Racines | Racine carrée | sqrt(x) | sqrt(x+4) |
| Racine n-ième | x^(1/n) | x^(1/3) | |
| Valeur Absolue | Abs | abs(x) | abs(x-2) |
| Sign (fonction signe) | sign(x) | sign(x) | |
| Constantes | Pi (π) | pi | sin(pi*x) |
| Nombre e | e | e^x |
💡 Astuce : Multiplication Implicite
Le grapheur accepte la notation2xau lieu de2*x. Cependant, pour les fonctions composées, privilégiez toujours la notation explicite :sin(2*x)plutôt quesin2x.
🚀 Guide d’Utilisation : Étape par Étape
1 Saisir Votre Fonction
Dans le champ de saisie principal, entrez l’expression mathématique de votre fonction. La variable doit obligatoirement être x (minuscule ou majuscule).
f(x) = sin(x) * exp(-x/10)
f(x) = 1/(x^2 + 1)
⚠️ Limitation Technique
Les expressions sont limitées à 100 caractères maximum. Si votre fonction dépasse cette limite, simplifiez-la ou décomposez-la en plusieurs sous-fonctions.
2 Choisir une Couleur (Optionnel)
Cliquez sur le sélecteur de couleur pour personnaliser la courbe. Le grapheur propose 6 couleurs prédéfinies qui alternent automatiquement :
- 🔵 Bleu Indigo (
#6366f1) - 🔴 Rose Vif (
#ec4899) - 🟢 Vert Émeraude (
#10b981) - 🟠 Orange Ambré (
#f59e0b) - 🟣 Violet Profond (
#8b5cf6) - 🔷 Cyan (
#06b6d4)
3 Tracer la Courbe
Cliquez sur le bouton « Tracer » ou appuyez sur Entrée. Le moteur de calcul effectue les opérations suivantes :
- Validation : Vérification de la syntaxe et des caractères interdits
- Compilation : Conversion en fonction JavaScript optimisée
- Rendu : Calcul de ~1200 points et tracé vectoriel sur Canvas
- Détection : Identification automatique des zéros (racines)
✨ Raccourci Clavier
Pressez Échap (Esc) pour réinitialiser instantanément le zoom et revenir à la vue par défaut ([-10, 10] × [-10, 10]).
4 Explorer avec le Zoom Interactif
Le grapheur propose 3 méthodes de zoom :
- 🖱️ Molette de souris : Zoom centré sur le pointeur
- 👆 Geste pincement : Sur mobile/tablette (2 doigts)
- 🔘 Boutons +/− : Zoom incrémental (coins bas-droite)
Le déplacement panoramique s’effectue avec un seul doigt (tactile) ou en maintenant le clic gauche (souris).
5 Analyser les Points Clés
Le grapheur détecte et affiche automatiquement :
6 Exporter Votre Graphique
Cliquez sur « 💾 Export PNG » pour télécharger une image haute résolution de votre graphique. Le fichier est automatiquement nommé grapheur-AAAA-MM-JJ.png.
Résolution Optimale
L’export utilise le Device Pixel Ratio de votre écran (généralement ×2 ou ×3 sur Retina/OLED), garantissant une qualité professionnelle pour vos documents et présentations.
Options de Personnalisation
✅ Grille de Référence
Affiche/masque une grille dynamique avec espacement adaptatif. L’intervalle se calcule automatiquement selon le niveau de zoom pour maintenir ~20 graduations visibles.
🎯 Marquage des Zéros
Active/désactive les cercles colorés sur les intersections avec l’axe X. Utilise un algorithme de détection par changement de signe.
📍 Coordonnées en Temps Réel
Affiche les coordonnées (x, y) au survol du graphique avec une précision de 2 décimales. L’info-bulle apparaît en haut à gauche avec effet de fondu.
Comparaison : Avantages & Limitations
✅ Points Forts
- Gratuit et sans inscription : Aucune limitation, aucun compte requis
- Performance native : Rendu fluide à 60 FPS grâce à Canvas API
- Compatibilité maximale : Fonctionne sur tous navigateurs modernes (Chrome, Firefox, Safari, Edge)
- Mode hors-ligne : Une fois chargé, peut fonctionner sans connexion
- Interface intuitive : 10 presets rapides pour démarrer instantanément
- Export professionnel : PNG haute résolution avec transparence
- Multi-appareils : Responsive design adapté desktop/mobile/tablette
- Sécurisé : Validation stricte, aucune exécution de code arbitraire
⚠️ Limitations Techniques
- Maximum 8 fonctions : Volontairement limité pour préserver les performances
- Pas de calcul d’extrema : Les minima/maxima locaux ne sont pas calculés automatiquement
- Pas de dérivées : Pas de tracé automatique de \( f'(x) \)
- Pas d’intégrales : Pas de calcul d’aire sous la courbe
- Fonctions explicites uniquement : \( y = f(x) \) seulement, pas de courbes paramétriques ni polaires
- Limites de précision : Les asymptotes verticales peuvent générer des artefacts visuels
Astuces Pro & Cas d’Usage Avancés
Pour les Étudiants en Lycée
Utilisez les presets pour réviser les fonctions de référence : polynomiales, trigonométriques, exponentielles. Comparez visuellement \( x^2 \) et \( x^3 \) pour comprendre la différence entre croissance quadratique et cubique.
Pour l’Enseignement Supérieur
Tracezsin(x)/xpour étudier la fonction sinus cardinal. Observezexp(-x^2)pour visualiser la courbe de Gauss. Combinezcos(10*x)*exp(-x/5)pour explorer les oscillations amorties.
Gestion des Asymptotes
Pour les fonctions avec discontinuités (ex:1/x,tan(x)), le grapheur détecte les sauts importants et interrompt le tracé. Si vous voyez des traits verticaux parasites, zoomez pour affiner la visualisation.
Questions Fréquentes (FAQ)
Comment tracer plusieurs fonctions en même temps ?
Pourquoi mon expression est refusée ?
( a son ), (3) Fonction inconnue – Math.js ne reconnaît pas la fonction utilisée (consultez le tableau de syntaxe), (4) Caractères interdits – les symboles ; & | $ ` < > sont bloqués pour des raisons de sécurité.Comment zoomer précisément sur une zone ?
Méthode 1 (Souris) : Placez votre curseur sur la zone d’intérêt, puis utilisez la molette. Le zoom se centre automatiquement sur le pointeur. Méthode 2 (Tactile) : Utilisez le geste pincement (2 doigts) – écartez pour zoomer, rapprochez pour dézoomer. Méthode 3 (Boutons) : Les boutons +/− en bas à droite effectuent un zoom centré sur le graphique.
Les points rouges ne s’affichent pas, pourquoi ?
Vérifiez que l’option « Zéros » est cochée dans les options. Si elle l’est et que les points sont absents, cela signifie que la fonction n’a aucune intersection visible avec l’axe X dans la fenêtre actuelle. Essayez de dézoomer ou de déplacer la vue. Note : l’algorithme détecte les zéros avec une précision de ±0.02 en valeur de y.
Peut-on tracer des fonctions trigonométriques en degrés ?
Non, Math.js utilise exclusivement les radians pour les fonctions trigonométriques (norme mathématique internationale). Pour convertir des degrés, utilisez la formule : sin(x * pi / 180). Exemple : pour tracer sin(x) en degrés, entrez sin(x * 3.14159 / 180) ou sin(x * pi / 180).
L’export PNG est flou sur mon écran, que faire ?
Le grapheur utilise automatiquement le Device Pixel Ratio de votre écran (DPR). Sur un écran Retina/4K, cela multiplie la résolution par 2 ou 3. Si l’image reste floue : (1) Vérifiez que votre navigateur n’est pas en mode zoom (Ctrl+0 pour réinitialiser), (2) Essayez un autre navigateur (Chrome/Firefox recommandés), (3) Ouvrez l’image dans un logiciel de retouche pour vérifier sa résolution réelle (elle doit être ≥ 1600×1000 pixels).
Puis-je tracer des fonctions définies par morceaux ?
Pas directement avec une seule expression. Cependant, vous pouvez utiliser les opérateurs conditionnels de Math.js. Exemple : pour tracer f(x) = x² si x < 0, sinon x+1, entrez : (x < 0) ? x^2 : x+1. Ou tracez chaque morceau séparément en ajustant manuellement le zoom pour visualiser les zones pertinentes.
Le grapheur fonctionne-t-il hors ligne ?
Partiellement. Après le premier chargement de la page, le grapheur peut tracer des fonctions même sans connexion Internet car tout le code JavaScript s’exécute localement dans votre navigateur. Cependant, la bibliothèque Math.js (chargée depuis CDN) doit être en cache. Si vous videz votre cache navigateur, une connexion sera nécessaire au prochain chargement.
Personnalisation & Thèmes
🌓 Mode Clair / Sombre
Cliquez sur le bouton en haut à droite (🌙/☀️) pour basculer entre les thèmes. Votre préférence est sauvegardée dans le localStorage du navigateur et persiste entre les sessions. Le mode sombre active :
- Fond d’écran :
#0f172a(bleu nuit) - Surfaces :
#1e293b(ardoise profonde) - Texte :
#f1f5f9(blanc cassé) - Bordures :
#334155(gris sombre)
Le canvas du graphique s’adapte automatiquement : grille atténuée, axes en blanc, et meilleur contraste des courbes colorées.
🔧 Dépannage & Résolution de Problèmes
| Symptôme | Cause Probable | Solution |
|---|---|---|
| Message « Math.js non chargé! » | La bibliothèque Math.js (CDN) n’a pas pu se charger | Vérifiez votre connexion Internet. Attendez 5 secondes et rechargez la page (F5 ou Ctrl+R) |
| Courbe invisible ou hors cadre | Les valeurs de f(x) sont très grandes/petites | Dézoomez avec la molette ou cliquez sur le bouton « ⟲ » pour réinitialiser la vue |
| Traits verticaux parasites | Fonction discontinue (asymptote verticale) | Normal pour 1/x, tan(x), etc. Zoomez pour affiner le tracé |
| Bouton « Tracer » bloqué | Calcul en cours (expressions complexes) | Attendez la fin du calcul (~2-3 secondes max). Si blocage persistant, rechargez la page |
| Export PNG échoue | Bloqueur de pop-ups actif | Autorisez les téléchargements pour ce site dans les paramètres de votre navigateur |
| Coordonnées ne s’affichent pas | Option désactivée | Cochez la case « Coordonnées » dans les options |
Exemples Pratiques par Niveau
🎓 Niveau Seconde / Première
f(x) = 2*x – 3# Parabole (forme canonique)
f(x) = (x – 2)^2 – 4# Valeur absolue
f(x) = abs(x – 1)# Racine carrée
f(x) = sqrt(x + 2)
🎓 Niveau Terminale / Supérieur
f(x) = exp(x – 1) + 2# Fonction logarithme avec domaine
f(x) = log(x + 3)# Trigonométrie modulée
f(x) = 2*sin(3*x) + cos(x)# Fonction homographique
f(x) = (2*x + 1) / (x – 3)
# Gaussienne (courbe en cloche)
f(x) = exp(-x^2 / 2)
🔬 Niveau Avancé (Prépas / Université)
f(x) = sin(x) / x# Oscillations amorties
f(x) = exp(-x/5) * cos(10*x)# Fonction gamma approchée
f(x) = sqrt(2*pi/x) * (x/e)^x# Hyperbole équilatère
f(x) = 1/x + x
# Courbe logistique
f(x) = 1 / (1 + exp(-x))
⚠️ Attention aux Limites Numériques
Pour les expressions avecxau dénominateur (commesin(x)/x), JavaScript renvoieInfinityen x=0. Le grapheur interrompt automatiquement le tracé à ces points. Pour visualiser correctement, zoomez sur la zone x ≠ 0.
Fonctionnalités Avancées (Pour Développeurs)
🔐 Système de Sécurité du Parser
Le grapheur implémente un parseur sécurisé basé sur plusieurs couches de validation :
- Filtrage des caractères dangereux : Blocage de
; & | $ ` < >via regex - Limite de longueur : Maximum 100 caractères (protection DoS)
- Validation AST : Vérification de l’arbre syntaxique par Math.js
- Sandbox d’exécution : Scope isolé avec try-catch pour chaque évaluation
- Cache intelligent : Stockage des 50 dernières fonctions compilées (LRU)
📚 Ressources & Aller Plus Loin
📖 Documentation Math.js
Consultez la référence officielle Math.js pour découvrir toutes les fonctions mathématiques supportées (200+).
💬 Communauté
Posez vos questions sur les forums d’entraide comme Les Mathématiques.net ou Stack Overflow (tag : mathjs).
🎯 Prochaines Évolutions Prévues
Les fonctionnalités suivantes sont en développement : (1) Calcul automatique d’extrema (min/max locaux), (2) Tracé de tangentes en un point, (3) Calcul d’aire sous la courbe (intégrales), (4) Export SVG vectoriel, (5) Sauvegarde de sessions (localStorage), (6) Mode 3D pour les fonctions de 2 variables.