Re: Want to 'Solve' a piecewise equation for a common term
- To: mathgroup at smc.vnet.net
- Subject: [mg79796] Re: Want to 'Solve' a piecewise equation for a common term
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Sat, 4 Aug 2007 06:02:38 -0400 (EDT)
- Organization: The Open University, Milton Keynes, UK
- References: <f8v16h$d96$1@smc.vnet.net>
misnomer at gmail.com wrote: > I've been battling to try to get a solution to my equation, but it > requires solving of a piecewise function, which I cannot work out how > to do. Say I have a piecewise function of the form > > temp = Piecewise[{ > { 2*N*x, x < 0}, > { N*x, x >= 0} > }] > > I want to either solve this via > Solve[1==temp, N] > and either get, with the inequalities, > > N -> Piecewise[{ > {1/(2*x), x < 0}, > {1/x, x >= 0} > }] > > or just get mathematica to realise that there is a common term - N, > and factor it out to, say, > N * Piecewise[{ > {2*x, x < 0}, > {x, x >= 0} > }] > from where solve can handle it perfectly well. > > Is this type of operation possible, or am I stuck editing them by hand? Use *Reduce* for it knows how to handle correctly expressions with *Piecewise*. In[1]:= temp = Piecewise[{{2*n*x, x < 0}, {n*x, x >= 0}}]; Reduce[1 == temp, n] Out[2]= (x > 0 && n == 1/x) || (x < 0 && n == 1/(2 x)) In[3]:= Reduce[1 == n*Piecewise[{{2*x, x < 0}, {x, x >= 0}}], n] Out[3]= (x > 0 && n == 1/x) || (x < 0 && n == 1/(2 x)) *Solve* does /not/ know what to do with *Piecewise*. In[4]:= Solve[1 == n*Piecewise[{{2*x, x < 0}, {x, x >= 0}}], n] Out[4]= {{n -> 1/\[Piecewise] { {2 x, x < 0}, {x, x >= 0} }}} (Also, note that I have replaced capital N by n because N has already a built-in meaning.) Regards, Jean-Marc