       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   (**)

{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