Re: Factorising operators??
- To: mathgroup at smc.vnet.net
- Subject: [mg30982] Re: [mg30959] Factorising operators??
- From: Tomas Garza <tgarza01 at prodigy.net.mx>
- Date: Sat, 29 Sep 2001 04:19:01 -0400 (EDT)
- References: <200109280755.DAA01722@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
I guess you might play around with strings and obtain what you want (they say that everything in Mathematica is an expression). I think that the function opFactor defined below does it: In[1]:= opFactor[r_]:= ToExpression[ StringReplace[ ToString[Collect[ToExpression[StringReplace[ToString[r],"[x]"->" y"]], y]]," y"->"[x]"]] (note that " y" has a leading blank space) In[2]:= opFactor[a[x]+b[x]] Out[2]= (a+b)[x] In[3]:= opFactor[a[x]+5 b[x]+3 c[x]] Out[3]= (a+5 b+3 c)[x] Tomas Garza Mexico City ----- Original Message ----- From: "Mat Bowen" <m.k.bowen at lboro.ac.uk> To: mathgroup at smc.vnet.net Subject: [mg30982] [mg30959] Factorising operators?? > Hello, > > I'm new to mathematica and looking for help with the following: > > I have two operators, a and b, that function as approximations to first and > second order derivatives. I can write (a+b)[x] and then use Through[%,Plus] > to generate a[x]+b[x] but I want to do the reverse, ie. Get mathematica to > output (a+b)[x] if I give it a[x]+b[x]. Is there any way (preferably simple) > to do this which will also work with more general cases ie. a[x]+5b[x]+const > c[x] should produce (a+5b+const)[x] > > Thanks, > Mat Bowen > >
- References:
- Factorising operators??
- From: Mat Bowen <m.k.bowen@lboro.ac.uk>
- Factorising operators??