Re: Re: Re: Re: May we trust IntegerQ
- To: mathgroup at smc.vnet.net
- Subject: [mg107625] Re: [mg107610] Re: [mg107582] Re: [mg107504] Re: [mg107488] May we trust IntegerQ
- From: Daniel Lichtblau <danl at wolfram.com>
- Date: Sat, 20 Feb 2010 06:37:25 -0500 (EST)
Artur wrote:
> Dear Bob,
> Yes, I was see that Andrzej Kozlowski procedure work perfectly but
> output is True/False type. I need procedure where output will be exact
> integer number (and inside procedure will be not numerical functions
> like Round[N[]]).
> Your procedure realize this aim but only up to indexes 0..7 and not for
> upper 8 and more.
> Best wishes
> Artur
The inputs are sums of binomials raised to integer powers. Each binomial
is of the form integer + sqrt(integer). You wish to determine if it is
an integer in disguise. Is there some reason not to use Expand? (Spoiler
at bottom of note.)
Daniel Lichtblau
Wolfram Research
> Bob Hanlon pisze:
>> As recommended by Andrzej Kozlowski in this thread, use Element to test
>>
>> And @@ Table[
>> FullSimplify[
>> Element[
>> (-1/2 (x - Sqrt[-1 + x^2])^(2 x) + 1/2 (x + Sqrt[-1 + x^2])^(2 x))^2,
>> Integers]],
>> {x, 0, 20}]
>>
>> True
>>
>>
>> Bob Hanlon
>>
>> ---- Artur <grafix at csl.pl> wrote:
>>
>> =============
>> Dear Bob,
>> Your procedure do full simplify only up to index x=7 (and not from 8 and up)
>>
>> Table[FullSimplify[(-1/2 (x - Sqrt[-1 + x^2])^(2 x) +
>> 1/2 (x + Sqrt[-1 + x^2])^(2 x))^2], {x, 0, 10}]
>>
>> Do you know what to do more ?
>> Best wishes
>> Artur
>>
>> Bob Hanlon pisze:
>>
>>> Use FullSimplify in this case
>>>
>>> Table[IntegerQ[
>>> FullSimplify[
>>> 1/2 (x - Sqrt[-1 + x^2])^(2 x) + 1/2 (x + Sqrt[-1 + x^2])^(2 x)]], {x, 0,
>>> 10}]
>>>
>>> {True,True,True,True,True,True,True,True,True,True,True}
>>>
>>>
>>> Bob Hanlon
>>>
>>> ---- Artur <grafix at csl.pl> wrote:
>>>
>>> =============
>>> Dear Daniel,
>>> What to do in following case:
>>> Table[IntegerQ[FunctionExpand[1/2 (x - Sqrt[-1 + x^2])^(2 x) + 1/2 (x +
>>> Sqrt[-1 + x^2])^(2 x)]], {x, 0, 10}]
>>> Best wishes
>>> Artur
>>>
>>>
>>> danl at wolfram.com pisze:
>>>
>>>
>>>>> Procedure: find such x that ChebyshevT[x/2, x] isn't integer
>>>>> aa = {}; Do[ If[IntegerQ[ChebyshevT[x/2, x]], , AppendTo[aa, x]], {x, 0,
>>>>> 20}]; aa
>>>>> and answer Mathematica is set:
>>>>> {3, 5, 7, 9, 11, 13, 15, 17, 19}
>>>>> where occered e.g. number 7
>>>>> N[ChebyshevT[7/2, 7],100]
>>>>> 5042.00000000000000000000000000000000000000000000000000000000000000000\
>>>>> 0000000000000000000000000000000
>>>>> evidently is integer 5042
>>>>> Some comments ?
>>>>>
>>>>> Best wishes
>>>>> Artur
>>>>>
>>>>>
>>>>>
>>>> Trust IntegerQ? Mais oui.
>>>>
>>>> Documentation Center entry for IntegerQ, first item under More Information:
>>>>
>>>> "IntegerQ[expr] returns False unless expr is manifestly an integer (i.e.,
>>>> has head Integer)."
>>>>
>>>> Example:
>>>> In[16]:= IntegerQ[Sin[3]^2 + Cos[3]^2]
>>>> Out[16]= False
>>>>
>>>> For your example, it might be better to use
>>>> FunctionExpand[ChebyshevT[x/2,x]]. Then try to figure out which cases
>>>> involving half-integer powers (Puiseux polynomials) will still evaluate to
>>>> integers.
>>>>
>>>> Daniel Lichtblau
>>>> Wolfram Research
Spoiler answer: No. There is no reason whatsoever to avoid Expand for
this task. I cannot believe we are even having this discussion.