MathGroup Archive 1995

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

Search the Archive

Re: Change of variable in ODE's (fwd)

  • To: mathgroup at christensen.cybernetics.net
  • Subject: [mg606] Re: [mg585] Change of variable in ODE's (fwd)
  • From: mcdonald at delphi.umd.edu (William MacDonald)
  • Date: Mon, 27 Mar 95 17:02:35 EST

>From mcdonald Mon Mar 27 16:58:47 1995
>Subject: Re: [mg585] Change of variable in ODE's
>To: Jack.Goldberg at math.lsa.umich.edu (Jack Goldberg)
>Date: Mon, 27 Mar 95 16:58:47 EST

> 	Changes of variable in linear ODE's are used to convert an ODE 
> into one of many normal or canonical forms.  I thought it would be a 
> simple task to get Mma to do the job for me.  Well, yes and no.
> Consider the following two Mma versions of a particular
> Cauchy-Euler operator: 
> 
> 
> (1) 	g = x^2 D[y[x],{x,2}] + 4 x D[y[x],x] + 2 y[x]
> 
> and the more "natural" form
> 
> (2)	h = x^2 y''[x] + 4 x y'[x] + 2 y[x]
> 
> The change of dependent variable  y[x] = u[x]/x^2  (when appropriately
> effected) reduces (1) or (2) to the normal form  u''[x].  The change of 
> independent variable  x = Log[t] reduces (1) or (2) to a constant 
> coefficient 2nd order ODE.  The catch is "appropriately effected".
> The following works for  g. 
> 
> In:  	Hold[g]/.y[x_]->u[x]/x^2//ReleaseHold
> 
> and
> 
> In:	Hold[g]/.y[x_]->y[Log[x]]//ReleaseHold
> 
> It does not work for (2).  After much labor I found an extremely 
> awkward solution.  Briefly:
> 
> In:	h/.Derivative[n_][y_][x]->Derivative[n][u[#]/#^2&][x]
> 
> and
> 
> In:	h/.Derivative[n_][y_][x]->Derivative[n][y[Log[#]]&]][x]
> 
> Actually, these don't quite work.  These rules do not transform y[x] 
> so a separate rule must be appended to change y[x] to u[x]/x^2  and 
> y[x] to y[Log[x]].  I am particularly unhappy with this solution for 
> these reasons: (1) They are awkward in the extreme. (2) They require 
> the user to know the FullForm of  y'  and understand pure functions.
> Although I can't say that the method used on  g  is the best possible,
> it is easily understood by a student with a rudimentary knowledge of Mma.
> This is surely not the case with the rules used for  h.  
> 
> Q1:  	Is there a way to effect the changes on h which requires less
> 	skill with Mma? 
>  
> Q2:	Are there alternative ways to handle g?
> 
> One last thought.  I suppose one could write a package which contains
> the functions  ChangeDependentVariable  and  ChangeIndependentVariable
> which would have the differential operator and the change of variable 
> as arguments.  Then all would be hidden from the user who would only 
> need to call either of these commands.
> 
> Q3:	Is this the way to go?	
> 
> Jack	 
Jack,
   How is this? To do the first transformation y->u/x^2:

In[78]:=
h[y_,x_]:=x^2 D[y,{x,2}] + 2 x D[y,x] + 2 y
In[80]:=
h[u/x^2,x]
Out[80]=
4 u
---
 2
x

and to change the dependent variable:

In[82]:=
h[y,x]/.x->Log[t]
Out[82]=
2 y


-- 

William M. MacDonald
Professor of Physics
University of Maryland
Internet: mcdonald at delphi.umd.edu



-- 

William M. MacDonald
Professor of Physics
University of Maryland
Internet: mcdonald at delphi.umd.edu



-- 

William M. MacDonald
Professor of Physics
University of Maryland
Internet: mcdonald at delphi.umd.edu



  • Prev by Date: Re: Softball Fourier Question
  • Next by Date: X Front End for OSF/1 on DEC 3000/400, Mma V2.2.4 (fwd)
  • Previous by thread: RE: Softball Fourier Question
  • Next by thread: X Front End for OSF/1 on DEC 3000/400, Mma V2.2.4 (fwd)