That doesn't work for my problem, as explained above. I'm four years older
than when I started trying to use CAS for extremely simple operations.
Nothing to show for it and running out of money for rent. Goodbye.

On Sat, Aug 22, 2020 at 6:40 PM Oscar Benjamin <[email protected]>
wrote:

> I wouldn't have suggested that if I realised you were planning to put
> it into a book. As Aaron and I said this is something that should be
> handled by refine but isn't implemented yet.
>
> All the same it is straight forward to extract the result manually
> when you want to from the Piecewise using either .args or .subs
> (that's all refine would do in this case if it was implemented yet).
> Does that not work for your problem?
>
> On Sun, 23 Aug 2020 at 01:40, [email protected]
> <[email protected]> wrote:
> >
> > Actually, no, that workaround is only further delaying my attempt to do
> something very simple in a CAS. I had to abandon Maxima today. I lost a
> couple of years of work I invested in Sympy when I came up its inability to
> sum the power series of loa (1+x). I am horrified I have to return to
> Mathematica for something so simple, and now I have no open-source platform
> on which to publish my book, and whether my book can be viewed in ten years
> will depend on the state of Wolfram's business in ten years.
> >
> > On Wednesday, August 19, 2020 at 1:10:24 AM UTC-7 Oscar wrote:
> >>
> >> Ideally this would be something that refine could handle and also
> >> ideally there would be an argument to summation to specify the
> >> conditions so that it could internally use refine or something else
> >> internally. That's just not yet implemented in sympy but I think it
> >> will be in future.
> >>
> >> There are a couple of ways to make this work right now. One is that
> >> you can directly substitute the conditions in the Piecewise for True.
> >>
> >> In [109]: z = Symbol('z', real=True)
> >>
> >> In [110]: k = Symbol('k', integer=True)
> >>
> >> In [111]: S = summation(z**k/k, (k, 1, oo))
> >>
> >> In [112]: print(S)
> >> Piecewise((-log(1 - z), (z >= -1) & (z < 1)), (Sum(z**k/k, (k, 1, oo)),
> True))
> >>
> >> In [113]: S.subs({z >= -1: True, z < 1: True})
> >> Out[113]: -log(1 - z)
> >>
> >> That only works if you know exactly what form the conditions could
> >> take though (no clever inference is going on during this call to
> >> subs).
> >>
> >> The reason that the old assumptions don't work here is because there
> >> is no predicate that can be attached to a symbol to specify that |z|<1
> >> in the same way that I can declare z to be real or k to be an integer
> >> above. Often though it is possible to replace the symbol with an
> >> expression in terms of another symbol so that the assumptions on the
> >> new symbol ensure the expression has the desired properties. We can do
> >> that in this example with the substitution z = tanh(x) where x is real
> >> (assuming we want |z| < 1):
> >>
> >> In [114]: x = Symbol('x', real=True)
> >>
> >> In [115]: S.subs(z, tanh(x))
> >> Out[115]: -log(1 - tanh(x))
> >>
> >> In [116]: S.subs(z, tanh(x)).subs(tanh(x), z)
> >> Out[116]: -log(1 - z)
> >>
> >> That works because the evaluation of the Piecewise during the call to
> >> subs uses the old assumptions and finds that the conditions work out
> >> to True.
> >>
> >> With that we can do:
> >>
> >> In [124]: print(summation(z**k/k, (k, 1, oo)).subs(z,
> tanh(x)).subs(tanh(x), z))
> >> -log(1 - z)
> >>
> >> In [125]: print(summation((-z)**k/k, (k, 1, oo)).subs(z,
> >> tanh(x)).subs(tanh(x), z))
> >> -log(z + 1)
> >>
> >> This won't always work though and you might find different results
> >> using different expressions rather than tanh(x) for example you could
> >> use z=x/(1+x**2) or something else.
> >>
> >> Ideally this would be handled by refine. It wouldn't be hard to handle
> >> this particular case, especially since Piecewise with inequalities is
> >> probably the number one reason users want to use refine.
> >>
> >> --
> >> Oscar
> >>
> >> On Tue, 18 Aug 2020 at 23:27, first last <[email protected]> wrote:
> >> >
> >> > Where is the design for the new assumptions-system coming from? Is
> the new design based on academic papers, or on previous software, or being
> designed from the ground up here? I'm interested in automated reasoning for
> its own sake, but not an expert.
> >> >
> >> > On Tuesday, August 18, 2020 at 2:08:37 PM UTC-7, Aaron Meurer wrote:
> >> >>
> >> >> summation() should probably have a conds argument similar to
> >> >> integrate() that lets you disable the piecewise.
> >> >>
> >> >> You can always manually extract it from the expression:
> >> >>
> >> >> >>> sympy.summation(sympy.S('z^k / k'), sympy.S('(k, 1,
> oo)')).args[0].args[0]
> >> >> -log(1 - z)
> >> >>
> >> >> Ideally refine() would let you do this, but it doesn't seem to work
> yet.
> >> >>
> >> >> Aaron Meurer
> >> >>
> >> >> On Tue, Aug 18, 2020 at 7:44 AM [email protected]
> >> >> <[email protected]> wrote:
> >> >> >
> >> >> > I'll try to clarify. Putting software aside momentarily, in pure
> math, for z real or complex with abs(z) < 1, for k from 1 to infinity, the
> following power-series summations hold:
> >> >> >
> >> >> > -log(1-x) = sum (z^k / k)
> >> >> > log(1-x) = sum(-1 * z^k / k)
> >> >> > log(1+x) = sum(-1 * z^k * (-1)^k / k)
> >> >> >
> >> >> > Maple and Mathematica can both do those, using their sum
> functions. (I'm not 100% confident in their handling of edge cases like
> z=-1 and z=+1, but my testing their has been haphazard.)
> >> >> >
> >> >> > I keep changing my story about Maxima, as I learn more about it.
> Yesterday I said Maxima cannot do those sums. Last night I learned Maxima
> can do them, via its "simplify_sum" feature, whose documentation is hidden
> in an obscure Chapter 84. Maxima manual's "Summation" chapter includes no
> mention of "simplify_sum". (I'm curious how many decades this Maxima
> documentation-bug has persisted without anyone simply moving "simplify_sum"
> to the chapter on sums. All 55 years of Maxima's history?)
> >> >> >
> >> >> > Sympy can sum those into Piecewise expressions:
> >> >> >
> >> >> > >>> sympy.summation(sympy.S('z^k / k'), sympy.S('(k, 1, oo)'))
> >> >> > Piecewise((-log(1 - z), (z >= -1) & (z < 1)), (Sum(z**k/k, (k, 1,
> oo)), True))
> >> >> > >>>
> >> >> >
> >> >> > The catch is, there's no way to ask Sympy "what's that Piecewise
> expression assuming abs(z) < 1"? Neither old nor new Sympy assumptions can
> express that query.
> >> >> >
> >> >> > I see two issues: Lack of functionality and room for
> documentation-improvement. I haven't designed and implemented my own
> assumptions-system, so I can't speak to its difficulty. Maxima's been
> worked on by countless geniuses for 55 years and still has an admittedly
> weak assumptions system; so maybe assumptions are especially hard for
> CAS-designers.
> >> >> >
> >> >> > The second issue is documentation. I have spent many months in
> many CAS's trying to sum the power series of log(1+x). I could have
> accomplished the same in a day is the CAS's had been documented better.
> >> >> >
> >> >> >
> >> >> > On Monday, August 17, 2020 at 11:00:47 PM UTC-7
> [email protected] wrote:
> >> >> >>
> >> >> >> David,
> >> >> >>
> >> >> >> I'm not on this project, but I think it would save the devs time
> if you would specify the sum you are referring to.
> >> >> >>
> >> >> >> -- Kind Regards,
> >> >> >> Christian
> >> >> >>
> >> >> >> On Mon, Aug 17, 2020, 3:32 PM first last <[email protected]>
> wrote:
> >> >> >>>
> >> >> >>> P.S. Maxima and Axiom are also unable to do this sum.
> Mathematica and Maple are able to do it.
> >> >> >>>
> >> >> >>> On Monday, August 17, 2020 at 3:30:26 PM UTC-7, first last wrote:
> >> >> >>>>
> >> >> >>>> I'll take the response as, there's no way to get Sympy to do
> this sum.
> >> >> >>>>
> >> >> >>>> On Friday, August 14, 2020 at 4:17:20 PM UTC-7, David Bailey
> wrote:
> >> >> >>>>>
> >> >> >>>>> Dear group,
> >> >> >>>>>
> >> >> >>>>> Am I correct that the write-up about assumptions found here
> relates to the old-style assumptions:
> >> >> >>>>>
> >> >> >>>>> https://docs.sympy.org/latest/modules/assumptions/assume.html
> >> >> >>>>>
> >> >> >>>>> Is there any documentation relating to the new assumptions?
> >> >> >>>>>
> >> >> >>>>> It would be really helpful if the documentation for old or new
> assumptions indicated which type it related to.
> >> >> >>>>>
> >> >> >>>>> David
> >> >> >>>
> >> >> >>> --
> >> >> >>> You received this message because you are subscribed to the
> Google Groups "sympy" group.
> >> >> >>> To unsubscribe from this group and stop receiving emails from
> it, send an email to [email protected].
> >> >> >>> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sympy/bbdc2130-172b-4d04-a542-95321e3de4d1o%40googlegroups.com
> .
> >> >> >
> >> >> > --
> >> >> > You received this message because you are subscribed to the Google
> Groups "sympy" group.
> >> >> > To unsubscribe from this group and stop receiving emails from it,
> send an email to [email protected].
> >> >> > To view this discussion on the web visit
> https://groups.google.com/d/msgid/sympy/c9f81be1-4dec-4bb4-8079-af1f044d0ab3n%40googlegroups.com
> .
> >> >
> >> > --
> >> > You received this message because you are subscribed to the Google
> Groups "sympy" group.
> >> > To unsubscribe from this group and stop receiving emails from it,
> send an email to [email protected].
> >> > To view this discussion on the web visit
> https://groups.google.com/d/msgid/sympy/59e83ffd-4306-4d0c-9200-1a9676de34b9o%40googlegroups.com
> .
> >
> > --
> > You received this message because you are subscribed to the Google
> Groups "sympy" group.
> > To unsubscribe from this group and stop receiving emails from it, send
> an email to [email protected].
> > To view this discussion on the web visit
> https://groups.google.com/d/msgid/sympy/de49bbd5-7da1-4a1f-b253-66152f90bae1n%40googlegroups.com
> .
>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "sympy" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/sympy/jDCY_lqGsJU/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sympy/CAHVvXxSqE1exS%3D4zCctT3R4xwKXKY0JZaF3UjXvqpzYgou%3D-1w%40mail.gmail.com
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/CABc8mQVy2Q4wwybXXeHP0pHtgC75Fy%3DxASOxsvBHVWa-dVy1%2BQ%40mail.gmail.com.

Reply via email to