MathGroup Archive 2009

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

Search the Archive

Re: Multi-variable first-order perturbation analysis?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg104646] Re: Multi-variable first-order perturbation analysis?
  • From: schochet123 <schochet123 at gmail.com>
  • Date: Fri, 6 Nov 2009 05:13:16 -0500 (EST)
  • References: <hcl3i9$blv$1@smc.vnet.net>

On Nov 2, 12:54=C2 am, AES <sieg... at stanford.edu> wrote:
> ... Objective is to obtain ... first-order perturbation
> expansions =C2 df1, df2, ... where =C2 df1 means all the relevant derivatives
>
> =C2  =C2 (df1/dx1) * dx1 =C2 + =C2 (df2/dx2) * dx2 + . . .
>
> evaluated at initial values =C2 x1=x10, x2=x20, =C5  and so on

I suggest first setting up an expression as follows:

vars = {x1, x2, x3};
dvs = {dx1, dx2, dx3};
pt = {x10, x20, x30};
funs = {f1, f2};
funsvars = Through[funs @@ vars];
subs = Thread[vars -> pt + t dvs];
expr = funsvars /. subs

which yields

{f1[dx1 t + x10, dx2 t + x20, dx3 t + x30],
 f2[dx1 t + x10, dx2 t + x20, dx3 t + x30]}

Although you could also just write that expression by hand, the above
calculation makes it easy to change the number of variables or
functions.

Now do:

pert1 = D[expr, t] /. t -> 0   (**)

which yields the answer

{dx3*Derivative[0, 0, 1][f1][x10, x20, x30]
 +  dx2*Derivative[0, 1, 0][f1][x10, x20, x30]
 +  dx1*Derivative[1, 0, 0][f1][x10, x20, x30],
 dx3*Derivative[0, 0, 1][f2][x10, x20, x30]
 + dx2*Derivative[0, 1, 0][f2][x10, x20, x30]
 + dx1*Derivative[1, 0, 0][f2][x10, x20, x30]}

Formula (**) is essentially the standard perturbation-theory formula
for a first-order perturbation.

Steve


  • Prev by Date: Re: easy way to represent polynomials (v 7.0)
  • Next by Date: Re: Aligning framed graphics in rows
  • Previous by thread: Re: Multi-variable first-order perturbation analysis?
  • Next by thread: RE: Re: Plot using DSolve HELP