Message Boards Message Boards

0
|
4795 Views
|
2 Replies
|
1 Total Likes
View groups...
Share
Share this post:

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

Posted 10 years ago

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.

POSTED BY: Marcin Ga??zka
2 Replies
Posted 10 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 BY: Jim Baldwin

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]
POSTED BY: David Reiss
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract