Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1998
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 1998

[Date Index] [Thread Index] [Author Index]

Search the Archive

RE: Drawing intrinsic coordina




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




  • Prev by Date: VirusScan
  • Next by Date: RE: Sorting of Data Lists
  • Prev by thread: VirusScan
  • Next by thread: Global Optimization - New product announcement