Re: trouble with pattern matching & manipulating
- To: mathgroup at smc.vnet.net
- Subject: [mg37032] Re: [mg37013] trouble with pattern matching & manipulating
- From: Andrzej Kozlowski <andrzej at tuins.ac.jp>
- Date: Mon, 7 Oct 2002 05:23:58 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
I confess I am not 100% sure what you mean. Would you like to do this
in steps, like you would do it by hand?
In[1]:=
a + b/c + d*(Sqrt[e]/c) == 0;
In[2]:=
Thread[(#1 - a - b/c & )[%], Equal]
Out[2]=
(d*Sqrt[e])/c == -a - b/c
In[3]:=
Thread[(#1*c & )[%], Equal]
Out[3]=
d*Sqrt[e] == (-a - b/c)*c
In[4]:=
Thread[(#1^2 & )[%], Equal]
Out[4]=
d^2*e == (-a - b/c)^2*c^2
In[5]:=
Simplify[%]
Out[5]=
d^2*e == (b + a*c)^2
Of course you can combine all the steps into a single function, but I
think it will be fairly complicated.
My own favourite way to do this sort of thing is:
In[1]:=
Simplify[d^2*e == (d^2*e /. AlgebraicRules[
a + b/c + d*(Sqrt[e]/c) == 0, e])]
Out[1]=
d^2*e == (b + a*c)^2
However, AlgebraicRules has not been documented since version 4. It
should be possible to do this using PolynomialReduce but it seems to
require the sort of skill only Daniel Lichtblau possesses;)
Andrzej Kozlowski
Toyama International University
JAPAN
http://sigma.tuins.ac.jp/~andrzej/
On Sunday, October 6, 2002, at 06:33 PM, Troy Goodson wrote:
> I'm a newbie and, of course, the first thing I want to do is apparently
> one of the most complicated...
>
> I have an expression that looks like this:
>
> A + B/C + D*Sqrt[E]/C = 0
>
> A,B,C,D, & E are all polynomials in x
> I want it to look like this
>
> (D^2)*E = (A*C + B)^2
>
> At that point, I'll have polynomials in x on both sides. Finally, I
> want the equation to be written out with terms grouped by powers of x,
> but I think I can do that part :)
>
> I'll be very grateful to anyone who can give me some pointers. Or, at
> least point me to some tutorial in the Mathematica documentation. I've
> been looking over the documentation and I found Appendix A.5 in The
> Mathematica Book, but that doesn't help me. I _need_ some examples. I
> did find a couple of well-written posts in this newsgroup, but not
> quite
> close enough to what I want.
>
> Thanks!
>
> Troy.
>
> =-=-=-=-=-=-=-=-=-=
>
> FYI, here's the expression I'm working with.
>
>
> denom = Sqrt[(B^2 - r^2)^2 + 4*(r^2)*(b^2)]
> cnu = (2*b^2 - B^2 + r^2)/denom
> snu = -2*b*Sqrt[B^2 - b^2]/denom
> sif = 2*r*b/denom
> cif = (r^2 - B^2)/denom
>
> pdr = -Cos[ds]*Sin[q]*(snu*cif +
> cnu*sif) - Sin[ds]*(cnu*cif - snu*sif)
>
> 0 == -(B^2 - b^2)*V^2/(r^2) + (((B*V)^2)/(
> r^2) - 2*w*b*V*Cos[q]*Cos[ds] + (w*
> r)^2 - (w*r*pdr)^2)*(Cos[qr])^2
>
> Although I said it's a polynomial in x, it's really a polynomial in "b"
> that I'm after.
>
>
>
>