Tutoriel Python : Tracer la courbe d'une fonction

Tables de matières

Introduction

  1. Bibliothèque Numpy
  2. Package Matplotlib.pyplot
  3. Tracer la courbe d’une fonction simple
  4. Personnaliserune courbe
  5. Tracer une fonction cubique
  6. Fonctions trigonométriques
  7. Tracer une fonction exponentielle
  8. Tracer une fonction polynomiale en Python
  9. Tracer plusieurs courbes
  10. Exercices

10.1 Exercice 1

10.2 Exercice 2

10.3 Exercice 3

  1. Solution des exercices

11.1 Exercice 1

11.2 Exercice 2

11.3 Exercice 3

Conclusion

Introduction

La fonction, en mathématiques, est une loi qui définit une relation entre une variable et une autre. Les fonctions sont omniprésentes en mathématiques et sont importantes pour visualiser les relations physiques en science.

La visualisation d'une fonction f (x) se fait en dessinant la courbe y = f (x) dans un repère xy. Lorsque nous utilisons un ordinateur pour effectuer cette tâche, nous mentionnons à la machine que nous dessinons la courbe. En d'autres termes, nous dessinons une courbe en traçant des lignes droites entre n points sur la courbe. Plus nous utilisons de points, plus la courbe apparaît lisse.

Dans ce tutoriel, tout en utilisant numpy et matplotlib vous apprendrez les sujets suivants:

  • Tracer les différents types de fonctions.
  • Personnaliser la courbe d'une fonction.
  • Tracer la courbe de deux fonctions dans la même figure.

1. Bibliothèque Numpy

Numpy est le package indispensable pour le calcul scientifique en Python. C’est une bibliothèque Python qui nous donne un objet de tableau multidimensionnel, divers objets dérivés (tels que des tableaux et des matrices cachées), et un assortiment de routines pour des opérations rapides sur des tableaux, y compris des opérations mathématiques et logiques, façonner, trier, sélectionner, E / S, transformées de Fourier discrètes, algèbre linéaire de base, opérations statistiques de base, simulation aléatoire… Pour plus d’informations sur cette bibliothèque, consultez le tutoriel suivant : Tutoriel Python : La librairie Numpy.

2. Package Matplotlib.pyplot

Matplotlib.pyplot est un package python qui contient des fonctions de style de commande qui rendent matplotlib efficace. Chaque fonction pyplot modifie une figure, par exemple : créer une figure, créer une zone de tracé dans une figure, dessiner des lignes dans une zone de tracé, décorer le tracé avec des étiquettes, ajouter des titres et des couleurs, etc.

3. Tracer la courbe d’une fonction simple

Nous commençons par tracer l'équation quadratique la plus simple y=x².

Fonction quadratique

Les fonctions quadratiques sont des équations polynomiales du second ordre de type ax²+ bx + c = 0. Vous trouverez ci-dessous le code Matplotlib pour tracer la fonction y = x² :

Syntaxe :

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-2, 2, 70)
y = x ** 2
fig = plt.figure(figsize = (10, 5))
plt.plot(x, y)
plt.show()

Résultat d’exécution :

4. Personnaliser une courbe

Il existe de nombreuses fonctions pyplot disponibles pour la personnalisation des tracés, ainsi que des styles de lignes et des styles de marqueurs pour styliser le tracé. Le tableau ci-dessous regroupe les fonctions les plus importantes :

Fonction

Description

plt.xlim()

définit les limites de l'axe X

plt.ylim()

définit les limites de l'axe Y

plt.grid()

ajoute des lignes de quadrillage dans le tracé

plt.title()

ajoute un titre

plt.xlabel()

ajoute une étiquette à l'axe horizontal

plt.ylabel()

ajoute une étiquette à l'axe vertical

plt.axis()

définit les propriétés de l'axe (égal, désactivé, mis à l'échelle, etc.)

plt.xticks()

définit les emplacements des graduations sur l'axe horizontal

plt.yticks()

définit les emplacements des graduations sur l'axe vertical

plt.legend()

utilisé pour afficher les légendes de plusieurs lignes dans la même figure

plt.savefig()

enregistre la figure (au format .png, .pdf, etc.) dans le répertoire de travail

plt.figure()

utilisé pour définir de nouvelles propriétés de figure

 Styles de ligne

Caractère

Style de ligne

style de ligne continue

style de ligne en pointillé

-.

style de ligne pointillé

:

style de ligne pointillée

Marqueurs

Caractère

Marqueur

.

point

o

cercle

v

triangle

^

triangle

s

Carré

p

pentagone

*

Etoile

+

plus

x

croix

D

diamant

Exemple :

Nous allons utiliser la même fonction de l'exemple précédent et lui appliquer quelques modifications en utilisant les tableaux ci-dessus :

Syntaxe :

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-2, 2, 70)
y = x ** 2
fig = plt.figure(figsize = (14, 8))
plt.plot(x, y, alpha = 0.5, label ='f(x) = X²',
color ='red', linestyle ='dashed',
linewidth = 2 )
plt.title('Courbe de fonction f(x)=x²')
plt.xlabel('x ')
plt.ylabel('f(x)')
fig.text(0.9, 0.15, 'cours-gratuit.com',
fontsize = 12, color ='green',
ha ='right', va ='bottom',
alpha = 0.7)
plt.grid(alpha =.6, linestyle =':')
plt.legend()
plt.show()

Résultat d’exécution :

5. Tracer une fonction cubique

En mathématiques, une fonction cubique est une fonction de la forme où a est différent de zéro; ou en d'autres termes, une fonction définie par un polynôme de degré trois.

Puisque l'exposant en y = x3, la puissance est liée à des valeurs négatives pour les valeurs négatives de x,  nous devons déplacer l'axe des x vers le centre du graphe

Syntaxe :

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-5,5,100)
y = x**3
# mettre les axes au centre
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.spines['left'].set_position('center')
ax.spines['bottom'].set_position('center')
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
plt.title('Courbe du fonction cubique')
#Ajouter un filigrane
fig.text(0.9, 0.15, 'cours-gratuit.com',
fontsize = 12, color ='green',
ha ='right', va ='bottom',
alpha = 0.7)
plt.grid(alpha =.6, linestyle =':')
plt.plot(x,y)
plt.show()

Résultat d’exécution:

6. Fonctions trigonométriques

Les fonctions trigonométriques sont des fonctions élémentaires dont l'argument est un angle. Les fonctions trigonométriques décrivent la relation entre les côtés et les angles d'un triangle rectangle. Les applications des fonctions trigonométriques sont extrêmement diverses. Ces fonctions apparaissent souvent dans la solution d'équations différentielles et d'équations fonctionnelles. Les fonctions trigonométriques comprennent les fonction suivantes : sinus, cosinus, tangente, cotangente. Pour chacune de ces fonctions, il existe une fonction trigonométrique inverse.

On trace ici la fonction trigonométrique y = sin (x), pour les valeurs de x entre ?? et ?. Nous allons utiliser la méthode linespace

Syntaxe:

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-np.pi,np.pi,100)
fig = plt.figure(figsize = (16, 7))
y = np.sin(x)
plt.plot(x, y, 'b', label ='sin(x)')
#Ajouter des spécifications a notre figure
plt.legend()
plt.grid(True, linestyle =':')
plt.xlim([-6, 6])
plt.ylim([-4, 4])
plt.title('Courbe de foncion sin(x)')
plt.xlabel('x')
plt.ylabel('f(x)')
plt.show()

Résultat d’exécution :

Remarque: nous pouvons utiliser la même syntaxe pour tracer la courbe de cos (x)

7. Tracer une fonction exponentielle

Une fonction exponentielle est une fonction mathématique de la forme suivante: f (x) =  ax. Où x est une variable et a est une constante appelée la base de la fonction. La base de fonction exponentielle la plus fréquemment rencontrée est le nombre transcendantal e, qui est égal à environ 2,71828. Ainsi, l'expression de cette function devient: f (x) = e x

La fonction exponentielle y = en'aurait jamais de valeurs négatives pour une valeur de x en mettant ax.spines ['bottom'] à zéro et on le trace sur l'intervalle ?2 ? à 2 :

Syntaxe :

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-2,2,100)
y = np.exp(x)
plt.title('Courbe d\' une fonction exponentielle')
plt.xlabel('x')
plt.ylabel('f(x)')
plt.plot(x, y, alpha = 0.4,
color ='yellow', linestyle ='dashed',
linewidth = 2)
plt.grid(alpha =.6, linestyle ='-')
plt.plot(x,y, 'y', label='f(x)=e^x')
#Placer la lagénde
plt.legend(loc='upper left')
plt.show()

Résultat d’exécution :

8. Tracer une fonction polynomiale en Python

Les fonctions polynomiales sont parmi les fonctions mathématiques les plus simples, les plus importantes et les plus couramment utilisées. Ces fonctions consistent en un ou plusieurs termes de variables avec des exposants entiers.

Une fonction polynomiale est une fonction telle qu'une quadratique, une cubique, une quartique, etc., n'impliquant que des puissances entières non négatives de x. On peut donner une définition générale d'un polynôme, et définir son degré

Exemple : f (x) = 4x³ - 3x² + 2

Cette fonction appelée polynôme cubique car polynôme de degré 3, car 3 est la puissance la plus élevée de la formule x. Traçons alors cette simple fonction polynomiale en utilisant python :  f (x) = x ² - 2x + 7

Syntaxe :

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-10,10,100)
fx = []
for i in range (len(x)):
fx.append(x[i]**2-2*x[i]+7)
plt.title('Courbe d\' une fonction polynomiales')
plt.xlabel('x')
plt.ylabel('f(x)')
plt.plot(fx,x, label='f (x) = x ² - 2x + 7')
plt.legend(loc='upper left')
plt.grid()
plt.axvline()
plt.axhline()

Résultat d’exécution :

Voyons une autre fonction polynomiale plus complexe :

f(x) = x ³— 3x³ — 45x²-69x + 80

Syntaxe :

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-10,10,100)
fx = []
for i in range (len(x)):
fx.append(x[i]**3-3*x[i]**2-45*x[i]**2-69*x[i]+80)
plt.title('Courbe d\' une fonction polynomiale')
plt.xlabel('x')
plt.ylabel('f(x)')
plt.plot(fx,x, label='f(x) = x ³— 3x³ — 45x²-69x + 80 ')
plt.legend(loc='upper right')
plt.grid()
plt.axvline()
plt.axhline()

Résultat d’exécution:

9. Tracer plusieurs courbes

Une tâche de tracé courante consiste à comparer deux courbes ou plus, ce qui nécessite que plusieurs courbes soient dessinées dans le même tracé. Supposons que nous voulons tracer les deux fonctions f1 (x) = x2exp (?x2) et f2(x) = x4exp (?x2). Nous pouvons alors simplement émettre deux commandes de tracé, une pour chaque fonction. Pour que la syntaxe ressemble à MATLAB, nous appelons hold ('on') après la première commande de tracé pour indiquer que les commandes de tracé suivantes doivent dessiner les courbes dans le premier tracé :

Syntaxe :

import matplotlib.pyplot as plt
import numpy as np
def f1(x):
return x**2*np.exp(-x**2)
def f2(x):
return x**2*f1(x)
x= np.linspace(0, 3, 51)
y1 = f1(x)
y2 = f2(x)
plt.plot(x, y1, 'r-')
plt.plot(x, y2, 'bo')
plt.xlabel('x')
plt.ylabel('y')
plt.legend(['x^2*exp(-x^2)', 'x^4*exp(-x^2)'])
plt.title('Tracer deux courbes dans le même tracé')
plt.show()

Résultat d’exécution :

Dans ces commandes de tracé, nous avons également spécifié le type de ligne: r- signifie ligne rouge (r) (-), tandis que bo signifie un cercle bleu (b) (o) à chaque point de données. Les légendes de chaque courbe sont spécifiées dans une liste où la séquence de chaînes correspond à la séquence de commandes de tracé.

10.Exercices

10.1 Exercice 1

Considérons la fonction suivante f (x) = x² + 7

En utilisant matplotlib et numpy, essayez de tracer une courbe avec les spécifications suivantes:

  • linespace: (-10,10)
  • title: Ma première courbe d'une fonction utilisant python
  • x étiquette: x
  • étiquette y: f (x)
  • couleur de la ligne: rouge
  • légende: f (x) = x² + 7
  • marqueur: diamant
  • et ajoutez une grille

10.2 Exercice 2 

Considérons la fonction suivante f (x) = 4x³ - 3x² + 2

En utilisant matplotlib et numpy, essayez de tracer une courbe avec les spécifications suivantes:

  • Intervalle : (-10,10)
  • Titre: Ma première courbe d'une fonction utilisant python
  • Etiquette x: x
  • Etiquette y: f (x)
  • couleur de la ligne: rouge
  • légende: f (x) = f (x) = 4x³ - 3x² + 2
  • Une grille de 0.4
  • Un filigrant avec le nom de votre université

10.3 Exercice 3

Considérons les deux fonctions suivantes :

f 1(x) = cos (x) et f 2(x) = sin (x)

Tracez les deux courbes de fonctions dans la même figure avec ces spécifications:

  • Intervalle : (-pi, pi)
  • Etiquette x: x
  • Étiquette y: f (x)
  • légendes: f 1(x) = cos (x), f 2(x) = sin (x)
  • Titre : deux courbes dans la même figure
  • Couleur de courbe du f1(x) : rouge
  • Couleur de courbe du f2(x) : bleu

11.Solution des exercices

11.1 Exercice 1 

Syntaxe :

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-10, 10)
y = x ** 2 + 7
fig = plt.figure(figsize = (12, 7))
plt.plot(x, y, alpha = 0.4, label ='f(x) = X² +7',
color ='red',
linewidth = 2, marker ='D',
markersize = 5, markerfacecolor ='blue',
markeredgecolor ='blue')
plt.title('Ma première courbe d\' une fonction à l\'aide python')
plt.xlabel('x ')
plt.ylabel('f(x)')
fig.text(0.9, 0.15, 'nom de votre université',
fontsize = 12, color ='red',
ha ='right', va ='bottom',
alpha = 0.7)
plt.grid(alpha =0.9)
plt.legend()
plt.show()

Résultat d’exécution :

11.2 Exercice 2

Syntaxe :

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-10,10)
fx = []
for i in range (len(x)):
fx.append(4*x[i]**3-3*x[i]**+2)
fig = plt.figure(figsize = (12, 7))
plt.plot(x, y, alpha = 0.4, label ='f(x) = X² +7',
color ='red',)
plt.title('Ma première courbe d'une fonction utilisant python')
plt.xlabel('x')
plt.ylabel('f(x)')
plt.plot(fx,x, label='f (x) = 4x³ - 3x² + 2 ')
plt.legend(loc='upper right')
plt.grid()
plt.axvline()
plt.axhline()

Résultat d’exécution :

11.3 Exercice 3 

Syntaxe :

import matplotlib.pyplot as plt
import numpy as np
def f1(x):
return np.cos(x)
def f2(x):
return np.sin(x)
x = np.linspace(-np.pi,np.pi)
y1 = f1(x)
y2 = f2(x)
plt.plot(x, y1, color ='red')
plt.plot(x, y2, color = 'blue')
plt.xlabel('x')
plt.ylabel('f(x)')
plt.legend(['f1(x)=Cos(x)', ' f2(x)=sin(x)'])
plt.title('deux courbes dans la même figure')
plt.show()

Résultat d’exécution :

Conclusion

Dans ce tutoriel, nous avons appris à tracer des courbes de fonctions à l'aide de la bibliothèque de tracé Python 2D matplotlib qui produit des chiffres de qualité de publication dans une variété de formats papier et d'environnements interactifs. Matplotlib essaie de rendre les choses faciles plus faciles et les choses difficiles possibles. Vous pouvez générer des courbes de tout type de fonctions avec seulement quelques lignes de code.

Article publié le 08 Décembre 2020par Mouhtat Bilal