Opale
  presentation
  news
  faq
  docs
  team
  download
  Modules
 
2d
  3d
  ode
 
  presentation
  exemples
  documentation
  liens
  matrix
 
parser
Applications
Bugs
 

Module ODE pour la résolution d'équations différentielles

Les équations differentielles sont bien connues des physiciens et ingénieurs et se rencontrent dans des domaines aussi variés que l'électricité, la mecanique, la chimie, l'économie, la biologie... pour lesquels elles régissent certains phénomènes. C'est pourquoi elles constituent un outil important pour les scientifiques, en leur permettant de simuler le comportement de certains problèmes physiques.

On peut décrire en des termes simples une équation différentielle comme étant une équation dont l'inconnue est une fonction et mettant en jeu les dérivées premières ou supérieures de cette fonction. Par exemple le problème suivant est une équation différentielle d'ordre 2 (présence de dérivée seconde) :





Trouver la fonction x tel que : x''+x = 0



Par ailleurs précisons que cette équation différentielle gouverne, entre autres, le mouvement d'un pendule simple par exemple ou encore les phénomènes de charge/décharge d'un condensateur en électronique au cours du temps. Très souvent les inconnues apparaissent comme des fonctions de la variable 't' afin de rappeler qu'en pratique ce sont souvent des fonctions du temps.

Parmi les équations différentielles, une famille particulière possède une grand intèret : les équations différentielles ordinaires (E.D.O. ou O.D.E. en anglais). Ce sont les équations se mettant sous la forme :





Trouver la fonction y tel que : y'(t) = f(t,y(t))



Ce type d'équations trouve est intéressante parce qu'il est généralement possible par un changement de variables simple de ramener de nommbreuses équations différentielles à ce type d'équations. C'est, par exemple, le cas pour l'équation du pendule ci dessus. Cependant malgré tout, dans de nombreux cas une résolution exacte à la main est impossible, aussi il faut avoir recours à des méthodes numériques pour approcher la solution exacte.

Le but du module ODE est d'apporter les outils nécessaires (au sens classes Java) pour la résolution d'une équation différentielle ordinaire (notée ODE par la suite). Sans rentrer dans la théorie mathématique il semble néanmoins nécessaire d'expliciter précisément ce que l'on entend par ODE afin de cerner le type d'équations traité par le module.

Les classes de bases pour la résolution d'une ODE Ils existent trois classes essentielles pour la résolution d'un problème ODE, qui se trouvent dans le package opale.ode :

  • l'interface Equation qui sert à définir une ODE par la donnée de son second membre. Il faut implémenter cette interface pour définir une fonction f et ainsi une équation y'=f(t;x) à résoudre.
  • la classe abstraite TimeScheme qui sert de base à l'implémentation de schémas numériques. Actuellement un certain nombre de schémas numériques présents dans le package opale.ode.scheme sont implémentées : Euler explicite, Euler, implicite, Heun etc... Il est aussi bien possible d'utiliser ces schémas que d'en concevoir un nouveau en héritant de la classe TimeScheme et en défiissant les méthodes d'avancée en temps.
  • la classe Problem qui définit une problème et possède des références à des instances des deux classes précédentes. Elle constitue le chef d'orchestre des deux précédentes. Elle permet de définir un problème en lui attachant une équation et un schéma en temps.

Opale Team : January 31 2004 23:14:10.






valid xhtml image