Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.math.mathematica

Topic: Differencing two equations
Replies: 7   Last Post: Sep 8, 2013 2:56 AM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
David Bailey

Posts: 714
Registered: 11/7/08
Re: Differencing two equations
Posted: Feb 12, 2013 3:23 AM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

On 10/02/2013 08:35, g.c.b.at.home@gmail.com wrote:
> I'm brand new to Mathematica, so I apologize for the naive questions...
>
> I'm trying to figure out how to difference two equations. Basically if I have:
> a==r
> b==s
>
> I'd like to get:
> a-b == r-s
>
> What I'm getting is more like (a==r) - (b==s). I'm not sure how that's a useful result, but is there a function to do what I'm looking for?
>
> A quick search of the archives seem to bring up ways of doing this from using transformation rules to swap heads to unlocking the Equals operator and hacking its behavior. I'd like to avoid doing that kind of rewiring for a simple operation, and I'd like to keep the syntax clean.
>
> The Core Language documentation makes a big point of how everything is basically a list with different heads. In this case, what I'm trying to do would work if it were treated as a list ({a,b}-{r,s} returns {a-b,r-s}) but doesn't work under Equal.
>
> Thanks for any suggestions.
>


I would define a function thus:

equationSubtract[x1_ == y1_, x2_ == y2_] := (x1 - x2) == (y1 - y2);

(If you use it a lot, you might want to put it somewhere do it is auto
loaded).

In[9]:= equationSubtract[a == r, b == s]

Out[9]= a - b == r - s

A slightly better version might have a third optional argument to supply
a multiplier:

equationSubtract[x1_ == y1_, x2_ == y2_,
m_: 1] := (x1 - m x2) == ( y1 - m y2);

In[5]:= equationSubtract[a == r, b == s, 2]

Out[5]= a - 2 b == r - 2 s

This function would still handle the 2-argument case.

In general, I don't believe in writing complicated syntax to do an
individual algebraic manipulation (because if you get it wrong, you may
not notice the wrong answer!). It is better to write a function once,
test it, and use it when you need it - as I have done here.

David Bailey
http://www.dbaileyconsultancy.co.uk






Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.