       Re: Multi-Variate Taylor Series Expansions

• To: mathgroup at smc.vnet.net
• Subject: [mg14753] Re: Multi-Variate Taylor Series Expansions
• From: Daniel Lichtblau <danl>
• Date: Thu, 12 Nov 1998 02:17:51 -0500
• Organization: Wolfram Research, Inc.
• References: <199811100621.BAA15036@smc.vnet.net.> <72befu\$k27@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```Carl Woll wrote:
>
> Hi Tom,
>
> The Series function of Mathematica is intended to do multi-variate
> Taylor expansions, but it doesn't work right. If you look at the web
> page
>
>  http://www.wolfram.com/support/Kernel/Symbols/System/Series.html
>
> you will find a way to augment the Series function to work better.
>
> I don't like the method given above, since I like to create series by
> adding O[x]^n to an expression, and the above method doesn't help here.
> Instead, one could modify the SeriesData function as follows:
>
> Unprotect[SeriesData];
> SeriesData /:
> HoldPattern[SeriesData[a_,b_,c_,d__]]+HoldPattern[z:SeriesData[e_,__]]
> :=
>         SeriesData[a,b,c+z,d] /; a=!=e; Protect[SeriesData];
>
> Then, in your example, I would do the following
>
> (F[x+dx,t+dt] + O[dx]^3) + O[dt]^3
>
> The parenthesis above are necessary. This method should also work for
> your more complicated example.
>
> Note that using either of the above approaches will drop terms that are
> order O[dx]^3 or O[dt]^3, but not terms like dx^2 dt. Since your
> example has these terms dropped, you may want to do something
> different. Replace dx and dt by something like
>
> dx -> a de
> dt -> b de
>
> and do a series expansion on de:
>
> ser = (F[x+dx,t+dt]/.{dx->a de,dt->b de})+O[de]^3
>
> and then fix things up by sending a and b back, as in
>
> Expand[Normal[ser]/.{a->dx/de,b->dt/de}]
>
> Good luck,
>
> Carl Woll
> Dept of Physics
> U of Washington
>
> Tom Bell wrote:
>
> > Is there a function in Mathematica that will do multi-variate Taylor
> > series
> >
> > expansions?  For example, suppose I have
> >
> > function = F(x + dx, t + dt)
> >
> > then the expansion to second order about (x,t) should look something
> > like
> >
> > expansion = F(x,t) + dx D(F,x) + dt D(F,t) + (1/2) dx^2 D(F,{x,2}) +
> >
> >     dx dt D(F,{x,t}) + (1/2) dt^2 D(F,{t,2}) + O(dx^3) + O(dt^3)
> >
> > The situation gets a little more complicated: the function may look like
> >
> > F(x + G(x + dx, t + dt), t + dt) and so on, so that the expansion should
> > be
> >
> > recursive.  After expanding F, the function should keep going back and
> > expending G until no
> >
> > further expansions can be done.
> >
> > Please reply to tombell at stanford.edu, and thanks in advance for your
> > help.
> >
> > ----------------------------------------------------------------
> > Thomas (Tom) Bell
> > Gravity Probe-B, H.E.P.L. tombell at stanford.edu
> > Stanford University 136D Escondido Village
> > Stanford, CA
> > 94305-4085 Stanford, CA 94305              650/725-6378 (o)
> > 650/497-4230 (h)                650/725-8312 (fax)

A few remarks:

(i) A very similar question was posed in June of this year. Two
responses were given. The first I note, bu myself, can be found at

http://www.wolfram.com/cgi-bin/mathgroup/1998/Jun//333

(In case this URL is wrong I include the subject/message number)

Subject: [mg14753] [mg12967] Re: Pulling out certain order terms from a
polynomial

The gist of my method was to get a series in one variable, then go into
each term to make a subseries of appropriate degree in the other
variable.

I think the other response was better. Since I cannot seem to find it in
the mathgroup archives I will re-post a copy I kept in e-mail.

----------------------------------------------

Subject: [mg14753]
[mg13093] Re: Pulling out certain order terms from a
polynomial
Date:
Sun, 5 Jul 1998 03:37:08 -0400
From:
To: mathgroup at smc.vnet.net
Paul Abbott <paul at physics.uwa.edu.au> Organization:
University of Western Australia
To:
mathgroup at smc.vnet.net
References:
1

Rod Miller wrote:

> I am working with large series and am interetsted in only retaining
> certain order  terms in the expansion.  Example, I expand a
> multivariate function in du and dv in an 8th order series in du and dv.
> I only want to keep the terms where the order of the term is 8 or less.
> Does anyone know how to do this in Mathematica?

Andre Deprit suggested the following method:

To produce the Taylor formula for a multivariate function f at the
origin to a given order one can use

In:= series[f_, v_List, order_] :=
Module[{e}, Expand[Normal[Series[f /.
Thread[v -> e*v], {e, 0, order}]] /. e -> 1]]

This amounts to multiplying the variables v by a scale factor e, then
initiating a Taylor series in e at the origin. For example

In:= series[f[x,y], {x, y}, 2]

Out=
1  (2,0)        2    (1,0)              (1,1) - f     [0, 0] x  + f
[0, 0] x + y f     [0, 0] x +  2

(0,1)         1  2  (0,2)
f[0, 0] + y f     [0, 0] + - y  f     [0, 0]
2

Cheers,
Paul

____________________________________________________________________
Paul Abbott                                   Phone: +61-8-9380-2734
Department of Physics                           Fax: +61-8-9380-1014
The University of Western Australia            Nedlands WA  6907
mailto:paul at physics.uwa.edu.au  AUSTRALIA
http://www.pd.uwa.edu.au/~paul

God IS a weakly left-handed dice player
____________________________________________________________________

---------------------------------------

(ii) Below is a response I sent to the poster yesterday. It is similar
to the method shown above but tailored (Taylored?) to the specific
question at hand.

In:= taylorF[s_] =
Series[F[x + G[x + s*dx, t + s*dt], t + s*dt], {s,0,1}];

In:= (Normal[taylorF[s]] /. s->1) + O[dx]^3 + O[dt]^3

(1,0)                  (1,0) Out= F[x
+ G[x, t], t] + F     [x + G[x, t], t] G     [x, t] dx +

3     (0,1)                    (0,1)        (1,0)
>     O[dx]  + (F     [x + G[x, t], t] + G     [x, t] F     [x + G[x, t], t])

3
>     dt + O[dt]

(iii) Some of the remarks about Series weaknesses, found at the
afore-mentioned

http://www.wolfram.com/support/Kernel/Symbols/System/Series.html

are slated to become obsolete. For example, in our development version
one can obtain:

In:= Series[1/(1 - Cos[x^25]), {x, 0, 25}]

2    1       26
Out= --- + - + O[x]
50   6
x

In:= Series[Exp[x + y], {x, 0, 3}, {y, 0, 1}]

2                2       1   y       2   2 Out= 1
+ y + O[y]  + (1 + y + O[y] ) x + (- + - + O[y] ) x  +
2   2

1   y       2   3       4
>    (- + - + O[y] ) x  + O[x]
6   6

Daniel Lichtblau
Wolfram Research

```

• Prev by Date: Re: Mathematica Lightning Model?
• Next by Date: Levy Distribution
• Previous by thread: Re: Multi-Variate Taylor Series Expansions
• Next by thread: Re: Multi-Variate Taylor Series Expansions