MathGroup Archive 2007

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

Search the Archive

A pattern matching problem

  • To: mathgroup at smc.vnet.net
  • Subject: [mg72533] A pattern matching problem
  • From: carlos at colorado.edu
  • Date: Fri, 5 Jan 2007 02:06:10 -0500 (EST)

Here is an interesting challenge in pattern matching.  Suppose
you are given an algebraic-differential expression exemplified by

r = u[t+h]-2*u[t]+u[t-h]+a^2*u'[t+h/2]+4*u'[t-h/4]+
     c*u''[t+alfa*h]/12;

Here u[t] is a function of time t, assumed infinitely differentiable,
h is a time interval, and primes denote derivatives wrt t.
Relation  r==0 is called a delay-differential equation, and is the
basic stuff in delayed automatic control (h is the signal "lag").

The function name u and the lag h are always symbolic.
Function u and its derivatives appear linearly in r, while
h always appears linearly in arguments.
Coefficients of h may be numeric or symbolic.
Coefficients of u & derivatives may be numeric or symbolic.

The challenge: given r,  get the coefficients of h as a 2D list,
row-ordered by derivative order. Zero coefficients may be omitted.
For the above r, it should  return

   {{1,-1},{1/2,-1/4},{alfa}}

Envisioned module invocation:   clist=LagCoefficients[r,u,t,h,m]
with m=max u-derivative order to be considered.  Skeleton:

        LagCoefficients[r_,u_,t_,h_,m_]:=Module[ {clist={}},
            ??????
        Return[clist]];

Any ideas for ?????


  • Prev by Date: Re: please explain why numerical integration is attempted
  • Next by Date: Re: Finding paths in graphs
  • Previous by thread: Re: [TS 270]--Re:Re: [TS 48]--Re:why isn't Rational[1,2] (apparently) atomic until it is evaluated?
  • Next by thread: Re: A pattern matching problem