Équations différentielles et champs de vecteurs

mercredi 27 mai 2009
par  Alain BUSSER

Dans cet article, on compare divers outils permettant de dessiner les champs de vecteurs avec des logiciels libres, et on verra que la création de l’outil est d’autant plus aisée que celui-ci est peu dynamique, donc peu intéressant...

Pour une équation différentielle du premier ordre y’=f(x,y), le champ de vecteurs est formé de vecteurs dont le quotient ordonnée/abscisse est égal à f(x,y) où x et y sont les coordonnées de l’origine du vecteur. Alors les solutions de l’équation différentielle « suivent les flèches », ce qui montre immédiatement qu’il y a toujours une solution sauf si
- le vecteur est vertical : Dans ce cas la fonction y(x) n’est pas dérivable
- il n’y a pas de vecteur du tout (singularité), ce qui peut arriver si
— le champ de vecteur s’annule : f(x,y)=0
— l’équation différentielle n’est pas définie : f(x,y) n’existe pas.

Pratiquement tous les logiciels de calcul formel (Maple, Maxima, Derive, Yacas, xcas, etc.) ou matriciel (MatLab, SciLab, Euler Math Toolbox, etc.) permettent de dessiner plus ou moins facilement un champ de vecteurs, mais seuls ceux qui sont libres peuvent être utilisés à domicile par les élèves qui peuvent facilement télécharger n’importe quel logiciel mais n’en ont le droit que si les logiciels en question sont libres...

Les exemples suivants concernent tous la même équation différentielle y’=-2xy vue avec des logiciels divers.


Euler Math Toolbox

Le logiciel Euler Math Toolbox est très facile à utiliser pour dessiner un champ de vecteurs en même temps que la solution numérique de l’équation différentielle. Ainsi, en ajoutant le code suivant à l’exemple qui est fourni avec Euler :

        vectorfield("-2*x*y",-2,2,0,2);
        linewidth(5); color(2);
        t=0:0.05:2; s=heun("-2*x*y",t,1); hold; plot(t,s); hold;
        t=0:-0.05:-2; s=heun("-2*x*y",t,1); hold; plot(t,s); hold;
        linewidth(0); color(1);
        title("Solution de l'équation différentielle");

on obtient la figure suivante :

après avoir exporté en « postscript », format dont la qualité est telle que c’est ce fichier qui figure dans le cours.

En résumé, très bonne qualité, et assez facile d’adapter (changer d’équation différentielle ou de cadrage) mais le résultat est statique : si on veut changer de condition initiale on doit recharger le fichier après modification.


SciLab

Le logiciel SciLab est fourni avec des démos, dont une avec champ de vecteurs : On clique sur « demos » puis « simulation » puis « ODE » [1] et « ODE 1D vector field ». On voit alors un champ de vecteurs où, à chaque clic gauche, se crée un point à partir duquel se dessine la solution. En bougeant ce point à la souris, on voit la solution évoluer ! Comme indiqué sur le texte explicatif du début [2], un clic droit termine l’activité.

Il suffit de récupérer le fichier de démo en question (sous SciLab 5.0 lycée il s’appelle « ode_1dvect.dem.sce ») et de l’enregistrer ailleurs, sous un autre nom, puis le jour du TP, de modifier les lignes suivantes :

deff("yprim=f(t,y)","yprim=-2*t*y")
tmin=-3; tmax=3; ymin=-0.5; ymax=1.5;

pour changer d’équation différentielle [3]. Ces modifications sont faites par les étudiants pendant le TP. En une heure, un groupe d’étudiants de BTS traite typiquement 5 à 7 équations différentielles, dont la moitié à coefficients constants, et dont l’exemple ci-dessus, qui produit cette figure

où on n’a cliqué qu’une seule fois pour ne pas alourdir la figure. Les étudiants adorent mettre des dizaines de courbes sur le champ de vecteurs, ce qui les aide à réaliser que sans condition initiale, la solution d’une équation différentielle n’est pas unique [4].

Scilab offre sur Euler l’avantage de permettre de bouger la condition initiale. Mais la programmation est un peu plus difficile qu’avec Euler. Les TPs ont été faits avec la version 4 de SciLab et lorsque la version 5 est parue, elle ne possédait ni gestion de la souris, ni exemples d’équations différentielles. D’où la recherche d’autres outils libres permettant de manipuler la figure (ici déplacer la condition initiale) et de dessiner le champ de vecteurs.


xcas

Le logiciel xcas] est une interface graphique pour giac (une bibliothèque de calcul formel), et un couteau suisse, permettant de manipuler des champs de vecteurs :

En regardant dans l’index à « plot » on trouve assez vite qu’il suffit d’entrer

plotode(-2*t*y,[t,y],[0,1]);
plotfield(-2*t*y,[t,y]);

pour obtenir ce graphique :

dont le principal défaut est qu’il dessine des segments au lieu de vecteurs.

Il ne semble pas que xcas permette de bouger la condition initiale autrement qu’avec des curseurs, et la fluidité laisse à désirer [5].


GeoGebra

En géométrie dynamique, la manipulation de la figure est aisée, mais ici il a fallu donner la solution sous forme analytique, ce qui change pas mal la nature du TP ! On peut bien implémenter la méthode d’Euler, voire celle de Runge-Kutta, en géométrie dynamique mais c’est loin d’être simple...

Avec l’outil « Séquence » [6] de GeoGebra, on a la figure suivante :

GeoGebra - 973 octets
le champ sous GeoGebra

Le champ a été créé comme une séquence de séquences de vecteurs (!). En effet, une séquence n’a qu’un indice, et chaque séquence est une ligne de vecteurs, allant du point de coordonnées (i, j) au point de coordonnées (i+\frac{h}{\eta};j+\frac{-2hij}{\eta})\eta=\sqrt{1+(2ij)^2} est choisi de telle façon que la norme de chaque vecteur soit égale à 0,1.

Séquence[Séquence[Vecteur[(i, j), (i + 0.1 / sqrt(1 + (2 i j)²), j - 0.2 i j / sqrt(1 + (2 i j)²))], i, -2, 2, 0.2], j, -2, 2, 0.2]

Quand à la solution représentée en rouge, elle a été calculée analytiquement par f(x)=y(A) \times e^{x(A)^2-x^2}, où x(A) et y(A) désignent les coordonnées de A. C’est le point A qu’on est censé manipuler bien sûr, et un TP fait par des étudiants autonomes devant leur poste est difficilement envisageable avec ce genre de fichiers [7].


CarMetal

Comme CarMetal ne possède pas d’outil « liste », on ne peut pas construire de champ de vecteurs sous CarMetal. Mais on va bientôt pouvoir, en utilisant le futur langage de script qui sera fourni avec la version 3.0 dudit CarMetal. Le langage utilisé sera javascript et pour l’instant on ne peut le tester qu’avec la version java web start. Mais le fichier obtenu peut s’ouvrir avec la version actuelle de CarMetal, ce qui est suffisant pour l’exemple présent. Donc le « CarScript » pour construire le champ de vecteurs est le suivant :

for(i=-10;i<10;i++){
for(j=-10;j<10;j++){
vx=1/4; //abscisse du vecteur
vy=-2*i*j/16/4; //ordonnée; c'est ici qu'on change le second membre pour une autre équadiff
n=.001+Math.sqrt(vx*vx+vy*vy); //norme (légèrement augmentée pour diviser sans risque)
n=n*10;
vx=vx/n; // on norme les vecteurs
vy=vy/n;
a=Point("",i/4,j/4);Hide(a); // origine du vecteur
b=Point("",i/4+vx,j/4+vy);Hide(b); // son extrémité
v=Vector("",a,b);SetColor(v,"green");SetThickness(v,"normal"); // sa couleur (elle pourrait dépendre de i et j)
}}

et le fichier obtenu (après avoir mis la solution exacte) est le suivant :

CarMetal - 141.8 ko
le champ sous carmetal

Du fait que le code est écrit ligne après ligne, l’écriture de ce genre de script par les étudiants en salle d’informatique est tout à fait envisageable, sauf que ce sera difficile de le faire avant le cours sur la formule analytique qui donne la solution ! Ou alors, il faudrait, ce qui est parfaitement réalisable, implémenter la méthode d’Euler en javascript dans le script ci-dessus...


Réponses aux questions posées pendant le séminaire du 27 mai

Peut-on faire un fichier général, où il reste possible de modifier les coefficients (réels ou fonctions) de l’équation différentielle, dans l’optique d’un TP ?

Vraisemblablement oui, du moins avec GeoGebra :

Dans l’exemple ci-dessous, en cliquant-droit sur l’une des fonctions a(x) et b(x) (en bleu clair) il est possible de les « redéfinir », c’est-à-dire de les remplacer par d’autres fonctions (pour une équation différentielle sans second membre). Toutefois GeoGebra résiste

- aux fonctions a(x) et b(x) qui ne sont pas définies partout ;
- aux fonctions a(x) s’annulant, ce qui empêcherait l’équation différentielle d’être définie.

En téléchargeant le fichier ci-dessous, on peut le modifier de façon que par exemple a(x) et b(x) soient des polynômes dont les coefficients soient des curseurs, et le fichier « marchera » mieux. Voici donc la version BTS sans second membre :

GeoGebra - 1.2 ko
équadiff sans second membre

Et maintenant (spécial terminale S) la version à coefficients constants (l’asymptote est en pointillés clairs). Ici les coefficients sont des curseurs et le fichier peut donc être manipulé en ligne :

GeoGebra - 1.3 ko
équadiff coefficients constants

Et enfin la recherche d’une primitive (en première S ?)

GeoGebra - 1 ko

[1« ordinary differential equation », acronyme anglais pour « équadiff »

[2que les étudiants ne lisent pas, même après l’avoir traduit en français...

[3à part qu’il a fallu aussi, la première fois, traduire les premières lignes en français

[4Par contre les bacheliers S ont eu un peu de mal à voir le rapport entre cette activité et ce qu’ils avaient vu en terminale, et se sont sentis rassurés quand ils ont vu qu’il y avait des formules à apprendre pour déterminer analytiquement la solution de l’équation différentielle...

[5c’est visiblement un défaut des logiciels de calcul formel par rapport aux logiciels de calcul numérique

[6Cette construction n’est plus nécessaire aujourd’hui puisque GeoGebra est maintenant muni d’une instruction « ChampVecteurs » ; il suffit donc d’écrire ChampVecteurs[-2*x*y] pour avoir le dessin des vecteurs ; toutefois ceux-ci sont représentés sans flèche, comme dans Xcas

[7sauf en utilisant la fonction « primitive » de GeoGebra (intégrale indéfinie), et la formule y=k\,e^{\int \frac{-b}{a} dt} qui figure dans les formulaires de BTS.


Commentaires

Annonces

Prochains rendez-vous de l’IREM

Séminaire EDIM-IREM

- Mercredi 8 février 2017, 14h-18h, campus du Tampon, amphi 120 B
- Mercredi 8 mars 2017, 14h-18h, PTU, Saint-Denis, salle S23.6
- Mercredi 12 avril 2017, 14h-18h, campus du Tampon
- Mercredi 3 mai 2017, 14h-18h, PTU, Saint-Denis, salle S23.6
- Mardi 13 juin 2017, 14h-18h, campus du Tampon
- Mercredi 14 juin 2017, 14h-18h, PTU, Saint-Denis, salle S23.6

Semaine des mathématiques

Du 23 mars au 4 avril 2017 dans l’académie de la Réunion.


Brèves

Travailler à plusieurs

lundi 19 décembre 2016

Les enseignements d’exploration au lycée imposent aux enseignants de travailler ensemble. Chantal Tuffery-Rochdi a analysé dans sa thèse les pratiques des enseignants de MPS (méthodes et pratiques scientifiques). Elle répond aux questions des Cahiers pédagogiques.

Un document sur Eduscol

mardi 19 mai 2015

Un document clarifiant bien la façon dont les mêmes concepts vivent en mathématiques et dans les sciences « exactes » les utilisant, publié par Eduscol en octobre 2014. Citons-les :
« Le document proposé ci-dessous s’adresse aux professeurs de mathématiques, physique-chimie et sciences de l’ingénieur intervenant dans le segment [Bac-3 ; Bac+3]. Il vise à les informer des différences de présentation et d’interprétation qui sont faites de certains concepts mathématiques dans les autres disciplines. Ces éclaircissements peuvent contribuer à harmoniser et à clarifier l’utilisation de ces notions auprès des élèves. »

Les métiers des mathématiques et de l’informatique

dimanche 22 mars 2015

Une brochure de l’ONISEP réalisée à l’initiative des cinq sociétés savantes, Femmes & Mathématiques, Société informatique de France, Société française de statistique, Société de mathématiques appliquées et industrielles, Société mathématique de France, représentant l’ensemble de la communauté française d’informatique et de mathématiques.

Histoire de la comptabilité

vendredi 28 décembre 2012

Sur ce site (en anglais) dédié à la comptabilité, on trouve des informations intéressantes sur l’histoire et les pratiques de ce domaine, qui peuvent être utiles aux professeurs enseignant des mathématiques financières (et aussi aux autres...).

La CGE et la réforme des lycées

lundi 16 janvier 2012

La Conférence des Grandes Écoles publie 19 préconisations pour la réforme du lycée.

Sur le Web : Les 19 préconisations

Pratique des mathématiques en série STD2A

lundi 16 janvier 2012

Le site de l’IGEN offre des recommandations et des ressources pour enseigner les mathématiques en série STD2A. Les thèmes abordés (couleurs et nuances de gris, arcs et architecture, jeux vidéos, photo et tableur, perspectives parallèles...) sont de nature à donner aussi des idées d’activités aux enseignants des autres séries !

En cheminant avec Kakeya

lundi 16 janvier 2012

Un livre (à télécharger) de Vincent Borelli et Jean-Luc Rullière qui présente le calcul intégral et la dérivation en s’appuyant sur la question de Kakeya. Pour les lycéens, les étudiants et tous les esprits curieux qui souhaitent voir les mathématiques sous un jour différent.

Sur le Web : Livre à télécharger

Bicentenaire Galois

lundi 12 septembre 2011

À l’occasion du bicentenaire de la naissance d’Évariste Galois (1811-2011), l’Institut Henri Poincaré et la Société mathématique de France organisent un ensemble de manifestations et proposent un site contenant diverses ressources documentaires susceptibles d’intéresser les enseignants.

Statistiques

Dernière mise à jour

jeudi 23 février 2017

Publication

732 Articles
Aucun album photo
125 Brèves
11 Sites Web
126 Auteurs

Visites

3 aujourd'hui
741 hier
1930768 depuis le début
14 visiteurs actuellement connectés