Home ActualitéInitiation au calcul vectoriel avec NumPy et Matplotlib en France

Initiation au calcul vectoriel avec NumPy et Matplotlib en France

by Sara
France

Ce guide présente les notions de base du calcul vectoriel et montre comment manipuler et visualiser des vecteurs en Python à l’aide de NumPy et Matplotlib, avec des exemples concrets et des illustrations pratiques pour un public débutant en France.

Principes et opérations élémentaires sur les vecteurs

Un vecteur est un objet mathématique défini par des composantes suivant les axes d’un repère : dans le plan, un vecteur u se représente par (ux, uy), et dans l’espace par (ux, uy, uz). Les opérations usuelles sont l’addition composante par composante, la multiplication par un scalaire, le produit scalaire et le calcul de la norme.

Schéma représentant des vecteurs en coordonnées

L’addition de deux vecteurs u = (ux, uy) et v = (vx, vy) donne u + v = (ux + vx, uy + vy). La multiplication par un scalaire s traduit par s·u = (s·ux, s·uy). Le produit scalaire u·v vaut uxvx + uyvy, et la norme ||u|| = √(u·u) = √(ux2 + uy2).

Le barycentre G de n points A₁,…,Aₙ de pondérations a₁,…,aₙ vérifie ∑ aᵢ·→GAᵢ = →0 ; si tous les coefficients sont égaux (isobarycentre), →OG = (1/n)∑ →OAᵢ. Le centre de masse d’un ensemble de points pondérés coïncide avec le barycentre correspondant.

Manipuler le calcul vectoriel avec NumPy et Matplotlib

NumPy représente un vecteur par un tableau 1D (numpy.array). Par exemple, u = np.array([3, 2]) définit le vecteur (3, 2). Matplotlib permet de tracer ces vecteurs graphiquement, notamment avec pyplot.quiver() pour dessiner des flèches dans un repère cartésien.

Représentation et tracé d’un vecteur

Avec Matplotlib, on peut tracer un vecteur d’origine (0,0) et de composantes (3, 2) ainsi :

plt.quiver(0, 0, 3, 2, color=’b’, angles=’xy’, scale_units=’xy’, scale=1)

Tracé d'un vecteur NumPy avec Matplotlib

Addition et multiplication par un scalaire

Dans NumPy, l’addition se fait composante par composante : u = np.array([2,3]); v = np.array([3,-1]); u+v donne array([5, 2]). Le tracé peut montrer u en bleu, v en vert (déplacé) et w = u+v en rouge.

Illustration addition de vecteurs numpy

La multiplication par un scalaire est directe : 2*u renvoie array([4, 6]).

Multiplication d'un vecteur par un scalaire

Produit scalaire et norme

Le produit scalaire s’obtient avec np.dot(u, v). Exemple : u = np.array([1, 2]), v = np.array([3, 4]) ; np.dot(u, v) retourne 11 (1×3 + 2×4). La norme se calcule avec np.linalg.norm(u) : u = [3,4] donne 5.

Application de fonctions et vectorisation

NumPy applique une fonction à l’ensemble des composantes sans boucle explicite : u = np.array([4, 9, 16, 25]); np.sqrt(u) renvoie array([2., 3., 4., 5.]). Cette vectorisation facilite la génération de figures, par exemple le cercle unité via θ = np.linspace(0, 2π, 400), x = cos(θ), y = sin(θ).

Cercle unité tracé avec numpy et matplotlib

Isobarycentre de trois points et centre de masse d’un disque

Exemple numérique : pour A(2,2), B(4,5), C(6,2), on construit OA, OB, OC comme tableaux NumPy puis OG = (1/3)*(OA+OB+OC). Le script affiche :

Point A (2, 2) · Point B (4, 5) · Point C (6, 2)

Isobarycentre G (4,0, 3,0) — ce qui correspond ici au point d’intersection des médianes du triangle.

Isobarycentre de trois points dans le plan

Pour vérifier que le barycentre de points uniformément répartis dans un disque coïncide avec son centre, on génère les vecteurs de position des points intérieurs au disque (test ux² + uy² ≤ r²), on calcule OG = (1/n)·∑ OA et on trace les points et OG. Dans l’exemple avec r = 1 et centre (ox, oy) = (1, 1), le calcul renvoie :

Coordonnées du point G : (1,0000000000000835, 1,0)

Centre de masse calculé sur un disque

On constate que G (en rouge) coïncide visuellement avec le centre du disque (en jaune). De légers écarts peuvent apparaître si la répartition des points n’est pas parfaitement uniforme.

Exercice : centre de masse d’un demi‑disque

En appliquant la même méthode au demi‑disque supérieur (partie y ≥ 0 du disque centré en (ox, oy)), la position théorique du centre de masse vaut (ox, oy + 4r/(3π)). Pour l’exemple ox = 1, oy = 1 et r = 1, la valeur théorique est :

Centre de masse du demi‑disque : (1, 1,4244131815783876)

Le calcul numérique approché renvoie :

Coordonnées du point G : (0,99999999999634803, 1,4241421003656138)

Centre de masse d'un demi-disque tracé

Le résultat montre une très bonne concordance entre la formule analytique et l’estimation par barycentre discret.

Perspectives et bonnes pratiques en calcul vectoriel

La combinaison NumPy + Matplotlib permet d’expérimenter rapidement avec le calcul vectoriel : représentation, opérations arithmétiques, produit scalaire, normes, application de fonctions vectorisées et calculs barycentriques. Pour des datasets volumineux, privilégier les fonctions vectorisées (meshgrid, masques booléens) pour des raisons de performance.

Les concepts présentés ici constituent des bases utiles en mathématiques appliquées, statistiques (centroïdes, k‑moyennes) et physique (forces, vitesses). Le code fourni est facilement réutilisable et modifiable pour d’autres figures géométriques ou dimensions.

source:https://denishulo.developpez.com/tutoriels/python/vecteurs-python/

You may also like

Leave a Comment