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.