Re: Separating functions
- To: mathgroup at smc.vnet.net
- Subject: [mg128457] Re: Separating functions
- From: Roland Franzius <roland.franzius at uos.de>
- Date: Mon, 22 Oct 2012 02:01:12 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
- References: <k603ld$7lp$1@smc.vnet.net>
Am 21.10.2012 08:10, schrieb carlos at colorado.edu: > Hi, > > I have a problem in identification. In the middle of the solution of a wave propagation problem on a regular lattice using a separation-of-variables method, I get a function of the form > > F(x,y,t)= f(x,y) g(t) > > in which x,y are space coordinates and t is time. > Both can be very complicated and vary from problem to problem, but Mathematica' Simplify is able to factor them. Here is a fairly trivial 1D example with an F output by //InputForm: > > > Bx*(-5*Em - 3*Em*=CE=BD + 2*a^2*=CF=81*=CF=89^2 - 2*a^2*=CE=BD^2*=CF=81*=CF=89^2 + 4*Em*(1 + =CE=BD)*Cos[(a*kx)/ > Sqrt[2]] - Em*(-1 + =CE=BD)*Cos[Sqrt[2]*a*kx])*(Cos[t*=CF=89] - I*Sin[t*=CF=89]))/(2*c0^2*(-1 + =CE=BD^2)*=CF=81) > > Here g(t)=(Cos[t*=CF=89] - I*Sin[t*=CF=89])). For more complicated 2D cases, F(x,y,t) becomes a array of product functions, each taking 20-30 lines. > > Question: is there a way to separate f(x,y) and g(t) that does not require external intervention? Trivially, a separating factor can be fixed by setting the variable t to a fixed value, most commonly the starting value Assuming[0 < {t,x,y} < 1, f[x_,y_]=FullSimplify[F[0,x,y]]; g[t_]=FullSimplify[F[t,x,y]/f[x,y] ] With logs and trig functions sometimes more sophisticated methods using FunctionExpand, TrigToExp, ComplexExpand will be necessary to separate products like Exp(i omega t ) Exp(x/lambda) or Sin[omega t] Cos[phi] to their most simple forms. Another way working independently of the art of algebraic factoring processes is to take the linear coefficient (or any of the higher order ones) of the Taylor expansion of F in the separating variable t Assuming[0<{t,x,y}<1}, (f[x_,y_] = FullSimplify[ Coefficient[Normal[Series[F[t,x,y],{t,0,1}]], 1]]; g[t_] = FullSimplify[F[t,x,y]/f[x,y] ] )] Probably it pays to search for a most trival algebraic expression of the expansion point t-> t0, where a maximum of subexpressions disappear or cancel from the constant expression g[t0]. -- Roland Franzius