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

ODE Module for differential equation solving

Differential equations (DE) are well known by physicists and engineers and can be found in domains as varied as electricity, mecanics, chemistry, economics, biology ... in which they rules lots of phenomena. That's why DE is an important tool for scientists, allowing them to simulate the behavior of physical problems.

We can describe very simply a DE as an equation in which the unknown is a function and involving prime and secondary derivatives of this function. For example, the next problem is a DE of order 2 (use a secondary derivative) :


Find the function such as : x''+x = 0

Let's keep in mind that this DE rules the mouvement of a simple pendulum or also charge/discharge phenomena of a condensator thru time. Very often, unknowns appear as functions of the variable 't' to remind that usualy they are functions of time.

Among DEs, a particular family has a great interest : ordinary differential equations (ODE). They are equations with the following shape :


Find the function such as : y'(t) = f(t,y(t))

This type of equation is interesting because it's usualy possible with a simple changment of variables to bring lots of DEs to this type. It's, for example, the case for the equation of the pendulum above. However, in lots of cases, a solving by hand is unpossible, and then you must use numeric methods to evaluate the exact solution.

The purpose of this module is to bring necessary tools (java meaning) to the solving of an ODE. Without explaining the mathematical theory, let's talk a bit about what we call ODE to well understand this type of equation.

Basic classes for ODE solving

It exists 3 essential classes which are in the package opale.ode :

  • the interface Equation which is used to defined an ODE as the second part. You must implement it to define a function f and so an equation y'=f(t;x) to solve.
  • the abstract class TimeScheme which is used as a base to implementation of numerical schemes. For the moment, some numerical schemes are already implemented in the package opale.ode.scheme : explicit Euler, Euler, implicit Euler, Heun, etc. It's also possible to use these schemes to build a new one by derivating the class TimeScheme and defining methods related to time increasing.
  • the class Problem which define a problem and has references to instances of both previous classes. It's in fact the leader of the group.

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






valid xhtml image