Yes, the summation module could certainly use more work. I think that this has been on the GSoC project list for a while.
Fortunately this work can happen separately from work in stats. There is a pretty clear separation between the two modules. On Thu, Jan 16, 2014 at 2:13 PM, F. B. <franz.bona...@gmail.com> wrote: > On Wed, Jan 15, 2014 at 1:17 PM, Matthew Rocklin <mroc...@gmail.com>wrote: > >> Discrete is the newest and least mature and could presumably use work. >> > > I tried to define a binomial distribution manually and do some > calculations using summation: > > In [1]: n, k = var('n k', positive=True, integer=True) > > In [2]: p = var('p', positive=True) > > In [3]: binomial_dist = binomial(n, k)*p**k*(1-p)**(n-k) > > In [6]: summation(binomial_dist, (k, 0, n)).simplify() > ⎧ │ 1 │ > ⎪ 1 for p⋅│─────│ ≤ 1 > ⎪ │p - 1│ > ⎪ > ⎪ n > ⎪ ____ > ⎪ ╲ > ⎨ ╲ k -k n ⎛n⎞ > ⎪ ╲ p ⋅(-p + 1) ⋅(-p + 1) ⋅⎜ ⎟ > ⎪ ╱ ⎝k⎠ otherwise > ⎪ ╱ > ⎪ ╱ > ⎪ ‾‾‾‾ > ⎪k = 0 > ⎩ > > > This is technically correct, but is practically useless as a result. > > Even worse with a slight modification: > > >>> summation(binomial_dist*k, (k, 0, n)) > TypeError: unsupported operand type(s) for *: 'NoneType' and 'Add' > > I think that the summation module needs some further work. > > >> -- > 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 sympy+unsubscr...@googlegroups.com. > To post to this group, send email to sympy@googlegroups.com. > Visit this group at http://groups.google.com/group/sympy. > For more options, visit https://groups.google.com/groups/opt_out. > -- 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 sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out.