# Why does Mathematica insist that a non-convergent series has limit?

Posted 9 years ago
4053 Views
|
2 Replies
|
1 Total Likes
|
 Now, I don't claim to be a Mathematics-overlord (I'm still a freshman ;P ), but I really don't understand the output Mathematica produces. I really think it is simply false. No I don't think I found a bug; I'm pretty positive this is a design choice; but I really don't understand it.Here we go: In[1]:= Clear[q, k] In[2]:= Sum[q^k, {k, Infinity}] Out[2]= -(q/(-1 + q)) In[3]:= Reduce[ ForAll[q, Element[q, Reals], Sum[q^k, {k, Infinity}] == -q/(-1 + q)], q, Reals] Out[3]= True In[4]:= SumConvergence[q^k, k] Out[4]= Abs[q] < 1 I'm sorry, but while I can understand the output of the Sum function alone, all of this simply turns false if put under the universal quantifier. For some values of q the series is not convergent. It is especially weird for q=1, as we have division by zero then. Hence it is not true that for all real values of q this sum equals -q/(-1+q).Could somebody be kind enough and explain this to me? Am I failing to understand something, or am I doing something wrong?Thanks in advance, Marcin G.
2 Replies
Sort By:
Posted 9 years ago
 If the conditions for which the sum converges are needed, then the GenerateConditions option is handy: Sum[q^k, {k, Infinity}, GenerateConditions -> True] resulting in the output ConditionalExpression[-(q/(-1 + q)), Abs[q] < 1] 
Posted 9 years ago
 It's slightly subtle. To get a sense of why your In[3] returns True you need to see how the expression is evaluated. The short answer is that the expression inside of it, Sum[q^k, {k, Infinity}] == -q/(-1 + q) is evaluated before the other things are evaluated. So it first is turned into -q/(-1 + q) == -q/(-1 + q) and then the rest of your quantifiers are subsequently being applied to the simple expression which is just the symbol True which of course is always True. To see this unfold make use of TracePrint to see some the evaluations that Mathematica is doing ForAll[q, Element[q, Reals], Sum[q^k, {k, Infinity}] == -q/(-1 + q)] // TracePrint which gives (it displays in a notebook differently but I have changed it to InputForm for readability in this forum):  HoldForm[ForAll[q, Element[q, Reals], Sum[q^k, {k, Infinity}] == -q/(-1 + q)]] HoldForm[ForAll] HoldForm[ForAll[q, Element[q, Reals], True]] HoldForm[ForAll] HoldForm[True]