*To*: mathgroup@smc.vnet.net*Subject*: [mg11068] RE: [mg10978] Drawing intrinsic coordina*From*: Ersek_Ted%PAX1A@mr.nawcad.navy.mil*Date*: Wed, 18 Feb 1998 20:32:20 -0500

Adrian wrote: ---------- |Anyone know how (possibly with an add-in package?) to draw intrinsic |coordinate graphs with Mathematica 3? Also, anyone know how to |implement a RationalQ function that tells if the supplied parameter is |rational or not, e.g. | | RationalQ[Sqrt[2]] = False | RationalQ[1/3] = True | Don't know what you mean about an intrinsic coordinate graph. But I can answer your problem with RationalQ. There are several ways to do it. It all depends what you want. First approach: In[1]:= RationalQ1[_Rational]:=True RationalQ1[_]:=False In[3]:= Clear[x]; {RationalQ1[Sqrt[2]], RationalQ1[1/3], RationalQ1[Sqrt[3] x+Sqrt[3](Sqrt[3]/2-x)]} Out[3]= {False,True,False} Now is that right? Sqrt[3] x+Sqrt[3](Sqrt[3]/2-x) simplifies to (3/2) but Out[3] above says it isn't rational. To fix that you can use the next approach: If you really want to cover your bases you can use FullSimplify instead of Simplify, but it sometimes takes a very long time. In[5]:= RationalQ2[x_]/;(Head@Simplify@x===Rational):=True RationalQ2[x_]/;(Head@Simplify@x=!=Rational):=False In[7]:= {RationalQ2[Sqrt[2]], RationalQ2[1/3], RationalQ2[Sqrt[3] x+Sqrt[3](Sqrt[3]/2-x)], RationalQ2[x]} Out[7]= {False,True,True,False} Now we see (Sqrt[3] x+Sqrt[3](Sqrt[3]/2-x)) is considered rational. Except I cleared (x) above, and Out[7] above says (x) is not rational. What if you want to say (x) may represent a number, and that number may be rational. The next approach fixes that. In[8]:= RationalQ3[x_]/;(Head@Simplify@x===Rational):=True RationalQ3[x_]:=With[{temp=Simplify[x]}, False/;(Head[temp]=!=Rational&&NumericQ[temp])] In[10]:= {RationalQ3[Sqrt[2]], RationalQ3[1/3], RationalQ3[Sqrt[3] x+Sqrt[3](Sqrt[3]/2-x)], RationalQ3[x]} Out[10]= {False,True,True,RationalQ3[x]} Now RationalQ3[x] doesn't change during evaluation. We still find that (Sqrt[3] x+Sqrt[3](Sqrt[3]/2-x)) is considered Rational. Ted Ersek