Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2007
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2007

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

Search the Archive

Re: A pattern matching problem

  • To: mathgroup at smc.vnet.net
  • Subject: [mg72544] Re: A pattern matching problem
  • From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
  • Date: Sat, 6 Jan 2007 03:38:30 -0500 (EST)
  • References: <enksb3$9nt$1@smc.vnet.net>

Hi,

what is with

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

(Cases[r, u[_] |
         Derivative[__][u][_], Infinity] /. {u[
                 arg_] :> {0, arg}, Derivative[i_][u][arg_] :> {i,
        arg}}) /. {order_Integer, arg_} :> {order, D[arg, h]}

Regards
   Jens

carlos at colorado.edu wrote:
> 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: Finding paths in graphs
  • Next by Date: Re: Orderless attribute for named functions and function arguments
  • Previous by thread: Re: A pattern matching problem
  • Next by thread: Re: Re: A pattern matching problem