Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2008

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

Search the Archive

Re: nested derivatives

  • To: mathgroup at smc.vnet.net
  • Subject: [mg93119] Re: nested derivatives
  • From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
  • Date: Mon, 27 Oct 2008 03:12:51 -0500 (EST)
  • Organization: The Open University, Milton Keynes, UK
  • References: <ge14fc$9g2$1@smc.vnet.net>

Huub Mooren wrote:

> How do I enter the following recursive function in Mathematica:
> t[n]=(1/y')*t'[n-1],
> with n the index
> t[0]=x
> y is some function of x

Since t[n] does not explicitly depends on x, we must write t'[n-1] as 
D[t[n-1],x].

Having said that, we can define our function either using an explicit 
recursive definition (see In[1], note that the definition also includes 
some test on the argument and use memoization [1] for computational 
efficiency [2]), or we can use higher-level functions such as *Nest* [3] 
(see In[4], which use a pure function for its recursive call).

In[1]:=

t[0] = x;
t[n_Integer?Positive] := t[n] = 1/y'[x] D[t[n - 1], x]

Table[{n, t[n]}, {n, 4}] //
   TableForm[#, TableHeadings -> {None, {"n", "t[n]"}}] & // OutputForm

Out[3]//OutputForm=

    n   t[n]


    1     1
        -----
        y'[x]




    2     y''[x]
        -(------)
               3
          y'[x]







    3           2    (3)
        3 y''[x]    y   [x]
        --------- - -------
              4          3
         y'[x]      y'[x]
        -------------------
               y'[x]

                           2    (3)
                   3 y''[x]    y   [x]
           y''[x] (--------- - -------)
                         4          3
                    y'[x]      y'[x]
        (-(----------------------------) +
                           2
                      y'[x]

                       3             (3)       (4)
             -12 y''[x]    9 y''[x] y   [x]   y   [x]
            (----------- + ---------------- - -------) / y'[x]) / y'[x]
                    5                4             3
    4          y'[x]            y'[x]         y'[x]


In[4]:=

tt[n_Integer?Positive] := Nest[1/y'[x] D[#, x] &, x, n]

Table[tt[n] == t[n], {n, 4}]

Out[5]= {True, True, True, True}


Regards,
- Jean-Marc

[1] "Memoization", From Wikipedia, the free encyclopedia,
http://en.wikipedia.org/wiki/Memoization

[2] "Functions That Remember Values They Have Found"
http://reference.wolfram.com/mathematica/tutorial/FunctionsThatRememberValuesTheyHaveFound.html

[3] "Applying Functions Repeatedly"
http://reference.wolfram.com/mathematica/tutorial/ApplyingFunctionsRepeatedly.html


  • Prev by Date: Re: Is there a simple way to transform 1.1 to 11/10
  • Next by Date: Re: ODE solution problem
  • Previous by thread: Re: nested derivatives
  • Next by thread: mathlink and complex number