Hi Danny!

On Mon, Dec 29, 2008 at 4:01 PM, Danny Tarlow <dannytar...@gmail.com> wrote:
[...]
>> Is this possible to do with Sympy?  If I were interested in working on
>> something like this, how hard would it be for a sympy newbie (but
>> competent programmer) to implement?  Any tips on where to start?

Thanks for both your emails. You need to use the Sum class for that,
and I think it will probably need a little enhancements so that
everything runs smoothly. I think it should be pretty easy for you to
get going with sympy, it's our aim to have the code hackable, so that
people can take it and customize it for their needs and enhance it to
get the job done. I suggest you learn git, just a few commands are
enough, see our tutorial:

http://docs.sympy.org/sympy-patches-tutorial.html

feel free to ask any question if you don't understand something in the
sources. You can also come to #sympy at freenode to chat in live.

> For concreteness, here is an example of one of my attempts:
[...]

> The output is a mess:
> mu := [tau_0/5 + tau_1/5 + tau_2/5 + tau_3/5 + tau_4/5]
> sigma := [2*mu*tau_0 + 2*mu*tau_1 + 2*mu*tau_2 + 2*mu*tau_3 +
> 2*mu*tau_4 - tau_0**2 - tau_1**2 - tau_2**2 - tau_3**2 - tau_4**2 -
> 5*mu**2]
> tau_0 := [mu]
>
> Ideally, I'd like to get something more like this, where the sums are
> left in tact:
> mu := 1/5 * \sum_{i=0}^4 tau_i
> sigma := 1/5 * \sum_{i=0}^4 (mu - tau_i) ** 2
> tau_0 := [mu]

I see. You need to keep things in the Sum class, unfortunately  the
docstring of it is not so much helpful (it can be your first patch if
you want:), but read it's tests here:

sympy/concrete/tests/test_sums_products.py

to get dozens of examples of usage. E.g.:

In [3]: Sum(1/k**k, (k, 1, oo))
Out[3]: Sum(k**(-k), (k, 1, oo))

In your case probably more something like this:

In [4]: Sum(1/k**k, (k, 1, 5))
Out[4]: Sum(k**(-k), (k, 1, 5))

In [5]: Sum(1/k**k, (k, 1, 5)).doit()
Out[5]:
27891287
────────
21600000


E.g. you don't want to call the "doit()" function. Please report
everything that isn't working with the Sum into our issues. If things
are easy to fix, I'll fix it myself, if it takes more time, I'll help
you fix it.

>
> For extra credit, there would also be a way to substitute sufficient
> statistics for the \sum_{i=0}^4 tau_i terms, for example, so that the
> sample mean could be computed once, then used many times in the
> updates.

the .subs() method should do that.

>
> Thanks in advance.

Ondrej

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To post to this group, send email to sympy@googlegroups.com
To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sympy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to