Re: PolynomialQ
- To: mathgroup at smc.vnet.net
- Subject: [mg34116] Re: PolynomialQ
- From: Andrzej Kozlowski <andrzej at platon.c.u-tokyo.ac.jp>
- Date: Sat, 4 May 2002 04:28:42 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Following up my message, I became interested in seeing if it would be
difficult to modify PolynomialQ so that it would return answers that
appear to be mathematically more sensible. While I have spent very
little time on this the follwoing function: MyolynomialQ seems to me to
do just that:
MyPolynomialQ[expr_, {l___, g_[f___, Power[a_, -b_.], h___], m___}] :=
PolynomialQ[
PowerExpand[expr /. a -> a^-1], {l, g[f, Power[a, b], h], m}];
MyPolynomialQ[expr_, {l___, Power[a_, -b_.], m___}] :=
PolynomialQ[PowerExpand[expr /. a -> a^-1], {l, Power[a, b], m}];
MyPolynomialQ[expr_, x_] := MyPolynomialQ[expr, {x}];
MyPolynomialQ[a_, v_List] := PolynomialQ[a, v];
Now we get:
In[5]:=
MyPolynomialQ[x^-1,x^-1]
Out[5]=
True
In[6]:=
MyPolynomialQ[x^-a,x^-a]
Out[6]=
True
In[7]:=
MyPolynomialQ[x,Sqrt[x]]
Out[7]=
True
In[8]:=
MyPolynomialQ[1/x,Sqrt[1/x]]
Out[8]=
True
while in other cases it works just as PolynomialQ. Seems pretty simple.
Any caveats?
Andrzej Kozlowski
Toyama International University
JAPAN
http://platon.c.u-tokyo.ac.jp/andrzej/
On Friday, May 3, 2002, at 11:20 AM, Andrzej Kozlowski wrote:
> The following strange behaviour of PolynomialQ has been recently
> observed on the Japan Mathematica Users mailing list:
>
> In[1]:=
> PolynomialQ[1/x,1/x]
>
> Out[1]=
> False
>
> To see that this is odd compare:
>
> In[2]:=
> PolynomialQ[x,Sqrt[x]]
>
> Out[2]=
> True
>
> with
>
> In[2]:=
> PolynomialQ[1/x,Sqrt[1/x]]
>
> Out[2]=
> False
>
> or, more generally
>
> In[4]:=
> PolynomialQ[x^a,x^a]
>
> Out[4]=
> True
>
> while
>
> In[5]:=
> PolynomialQ[x^-a,x^-a]
>
> Out[5]=
> False
>
> It certainly makes no mathematical sense and looks like a bug.
>
> A possibly related curiosity is that PolynomialQ returns an answer when
> no variables are specified, though it is rather unclear if this is
> intended or a "side-effect" of something (this behaviour does not seem
> to be documented). Again we see things like:
>
> In[6]:=
> PolynomialQ[2^-x]
>
> Out[6]=
> True
>
> In[7]:=
> PolynomialQ[x^-2]
>
> Out[7]=
> False
>
> In[9]:=
> PolynomialQ[x^y]
>
> Out[9]=
> True
>
> In[10]:=
> PolynomialQ[x^-y]
>
> Out[10]=
> False
>
>
>
>