Re: Re: disable canceling
- To: mathgroup at smc.vnet.net
- Subject: [mg106523] Re: [mg106480] Re: [mg106465] disable canceling
- From: DrMajorBob <btreat1 at austin.rr.com>
- Date: Fri, 15 Jan 2010 03:19:39 -0500 (EST)
- References: <22549907.1263381381387.JavaMail.root@n11>
- Reply-to: drmajorbob at yahoo.com
MultiplyByOne seems especially useful. It's the didactic principle I often use with math-illiterates (my mother, for instance) to explain changing feet to meters, and that kind of thing. Bobby On Thu, 14 Jan 2010 04:47:33 -0600, David Park <djmpark at comcast.net> wrote: > It would be useful to know what your objective is here. What do you mean > by > "after evaluation get some expression"? Is this for didactic reasons? > Otherwise, what is gained by not canceling the factors? > > In any case, you could use HoldForm on selected factors to prevent > canceling. But to do any real mathematics you will eventually have to use > ReleaseHold and at that point any matching factors will cancel. > > g[s] = s HoldForm[s + 1]/((s + 1) (s + 2)) > % // ReleaseHold > > (s (s+1))/((1+s) (2+s)) > s/(2+s) > > g[s] = HoldForm[s (s + 1)]/(s + 2); > c[s] = 1/(s (s + 1)); > l[s] = g[s] c[s] > % // ReleaseHold > > s (s+1)/(s (1+s) (2+s)) > 1/(2+s) > > Sometimes there might be meaningful math that can be done while part of > an > expression is held and them when the Hold is released it will no longer > simplify as before. The Presentations package has a CreateSubexpression > command that holds a sub-expression with a Tooltip and a tag so one can > more > easily control the evaluations. > > Presentations also has a MultiplyByOne command that multiplies the > Numerator > and Denominator of an expression by the same factor, but allows > operations > on the two parts so the factor does not automatically cancel. For > example, > we could construct g[s] by: > > Needs["Presentations`Master`"] > > s/(s + 2); > % // MultiplyByOne[s + 1, Identity, Expand] > > (s + s^2)/((1 + s) (2 + s)) > > Here the final expression has nothing held. You might have defined it > that > way in the first place. > > > David Park > djmpark at comcast.net > http://home.comcast.net/~djmpark/ > > > > From: Petr Martinec [mailto:petr.martinec at gmail.com] > > Hi all, > is here posibility to prevent canceling in Mathematica? I need it to > work with transfer and contreller functions (dynamic system theory). I > would like to input like this > > g[s] = s (s + 1)/((s + 1) (s + 2)); > > and after evaluation get same expression. Another situation is: > > input: > > g[s] = s (s + 1)/(s + 2); > c[s] =1/(s(s + 1)); > l[s] = g[s] c[s] > > output: > l[s] = s(s + 1)/(s(s + 1)(s + 2)) > > It is possible to get this result? > > thanks for your answers. > > > -- DrMajorBob at yahoo.com