MathGroup Archive 1998

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Mixed Algebraic/differential system


  • To: mathgroup@smc.vnet.net
  • Subject: [mg11491] Re: Mixed Algebraic/differential system
  • From: Axel Gallrein <axel@hp835.pi.tu-berlin.de>
  • Date: Fri, 13 Mar 1998 12:21:36 -0500
  • Organization: Technical University Berlin
  • References: <6e81cb$n7v@smc.vnet.net>

SR Thomas wrote:
> 
> Dear MathGroup,
> 
> I want to work out an algorithm for a mixed algebraic/ode system such
> as:
> 
>   y'[t]=f(y,t)
>   is system of odes and
>   g(y)=0
>   is a set of algebraic constraints that must be satisfied at all times.
> 
[snip]

Your problem seems not quite correct stated. Assuming f(t,y) is 
sufficienty well behaved then for a given starting point (t0,y0) there
is only one solution, at least for a while, and it either does or 
doesn't satisfy g(y)=0.

What you probably have is 
   F : R x R^n x R^n -> R^n
with
   F(t,y,y') = 0
   y(t0) = y0        (1)
   and the Jacobian of F with respect to y' [F_(y')] singular like in
   y' = f(t,y,z),  f : R x R^ny x R^nz -> R^ny
   0  = g(t,y,z),  g : R x R^ny x R^nz -> R^nz,  g_z regular
   y(t0) = y0
   z(t0) = z0        (2)

(1) is generally called a Differetial-Algebraic-System and analytically
one charaterizes it with a differetial index di, meaning the number of
differentiations with respect to t one has to perform on F in order to
generate (possibly involving algebraic operations) the so called
Underlying ODE y' = h(t,y).
For example, differentiate in (2) 0 = g(t,y,z) once and you get
   0 = g_t(t,y,z) + g_y(t,y,z) y' + g_z(t,y,z) z' Rewrite (2) to
   [ E          0          ] [ y ]'   [ f(t,y,z)    ]
   [ g_y(t,y,z) g_z(t,y,z) ] [ z ]  = [ -g_t(t,y,z) ]
   y(t0) = y0
   z(t0) = z0
Since g_z is regular, so is the whole matrix and one produces
   [ y ]'   [ E   0                 ]^(-1) [ f(t,y,z)    ]
   [ z ]  = [ g_y(t,y,z) g_z(t,y,z) ]      [ -g_t(t,y,z) ]
   [ y ]       [ y0 ]
   [ z ](t0) = [ z0 ]
which is an ODE. So for (2) we have di = 1. See if you can produce the
UODE ( it gets harder the higher di and the  bigger your system is). 

If you have to do numerics, things get complicated. A numerical
approximation of the UODE will not satisfy the original constraint 0 =
g(t,y,z) (This is  called drift). But it gets even worse. Thus a second
index, the pertubation  index pi, is introduced... This is getting to
long, so please look at 
   E.Hairer,Ch.Lubich,M.Roche: 'The Numerical Solution of Differential-
   Algebraic Systems by Runge-Kutta Methods', Springer-Verlag, 1989.

Ciao, Axel
-- 
=================================================== Axel Gallrein   
Tel...........(49)-(30)-314 23 176 Fasanenstr. 46     
...........(49)-(30)-881 99 95 10719 Berlin    
Fax...........(49)-(30)-314 21 694 Germany         
Email...axel@hp835.pi.tu-berlin.de
===================================================
    In case my employer does not state one, the 
     above printed opinion just might be his.
    ------------------------------------------



  • Prev by Date: Re: few easy questions (HoldPattern)
  • Next by Date: URGENT HELP export to HTML !!
  • Prev by thread: Re: Mixed Algebraic/differential system
  • Next by thread: TELLING PROGRAM THAT A VARIABLE IS AN INTEGER