Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.soft-sys.math.mathematica > #2682

Re: get a, b from numbers in the form a+b Pi

From Murray Eisenberg <murray@math.umass.edu>
Newsgroups comp.soft-sys.math.mathematica
Subject Re: get a, b from numbers in the form a+b Pi
Date 2011-05-24 10:00 +0000
Organization Steven M. Christensen and Associates, Inc and MathTensor, Inc.
Message-ID <irfvjh$c02$1@smc.vnet.net> (permalink)

Show all headers | View raw


The code

   {FullForm[Expand@#][[1, 1]],
      FullForm[Expand@#][[1, 2]]/\[Pi]}&  /@ nums

fails if the list nums includes, say, 2 (a number of form a + 0 Pi).

On 5/23/2011 6:23 AM, Stefan Salanski wrote:
> On May 22, 6:58 am, "1.156"<r...@piovere.com>  wrote:
>> I have lists  of numbers (Mathematica output) all numerically in the
>> form a + b*Pi and I'm trying to extract the values of a and b for
>> further work.
>>
>> Here's an example of the best I've been able to do so far:
>>
>> nums={1/2 (-2+\[Pi]),-2+(3 \[Pi])/4,-(11/3)+(5 \[Pi])/4,5/48 (-64+21
>> \[Pi]),-(61/5)+(63 \[Pi])/16,-(338/15)+(231 \[Pi])/32};
>> {FullForm[#][[1,1]],FullForm[#][[1,2]]/\[Pi]}&/@nums
>>
>> When I run this line of code 4 of the six input numbers give me the
>> {a,b} I'm looking for but the first and fourth entries fail because the
>> form isn't right. Possibly I could patch this scheme to look for a small
>> finite set of possibilities of input number form but I suspect I may a
>> long way from attacking this problem correctly.
>>
>> Can someone offer some other ideas on how to pull this off? Many thanks
>> for looking at this. Rob
>> --
>> Sent from my plain desktop PC.
>
> Interesting task you're describing, but I think I found what's
> throwing you off.
> Your code relies on each expression being of the form a+b Pi, so that
> you can FullForm to get it in the form Plus[a,b Pi] and then you pick
> off a and b. The cases where it doesnt work for you is when FullForm
> has head Times
> FullForm[1/2 (-2 + \[Pi])] = Times[Rational[1,2],Plus[-2,Pi]]
> The solution: hit it with Expand[] first, so that it does any
> multiplication/division and gets it into the form you want.
> FullForm[Expand[1/2 (-2 + \[Pi])]] = Plus[-1,Times[Rational[1,2],Pi]]
>
> so the final code is below,
> nums = {1/2 (-2 + \[Pi]), -2 + (3 \[Pi])/4, -(11/3) + (5 \[Pi])/4,
>     5/48 (-64 + 21 \[Pi]), -(61/5) + (63 \[Pi])/
>       16, -(338/15) + (231 \[Pi])/32};
> {FullForm[Expand@#][[1, 1]],
>     FullForm[Expand@#][[1, 2]]/\[Pi]}&  /@ nums
>
> hope that helps!
> -Stefan S
>

-- 
Murray Eisenberg                     murray@math.umass.edu
Mathematics & Statistics Dept.
Lederle Graduate Research Tower      phone 413 549-1020 (H)
University of Massachusetts                413 545-2859 (W)
710 North Pleasant Street            fax   413 545-1801
Amherst, MA 01003-9305

Back to comp.soft-sys.math.mathematica | Previous | Next | Find similar | Unroll thread


Thread

Re: get a, b from numbers in the form a+b Pi Murray Eisenberg <murray@math.umass.edu> - 2011-05-24 10:00 +0000

csiph-web