I have fixed the math in the docs. See https://github.com/sympy/sympy/pull/7984.

Aaron Meurer

On Fri, Sep 5, 2014 at 1:27 PM, Aaron Meurer <[email protected]> wrote:
> So looking closer, something that I don't fully understand is what
> periodic_argument(x, oo) means. According to the docstring (which
> should be made much clearer), periodic_argument(x, P) is a value in
> (-P/2, P/2] via exp(P*I) = 1 (and it is the argument of x on some
> branch of the logarithm).
>
> Some things I am not clear on:
>
> - Does the second argument of periodic_argument need to be a multiple
> of pi? I tried a non-multiple and got an answer, but is it just
> nonsense?
>
> - What does periodic_argument(x, oo) mean? Is it the same as
> unbranched_argument (which has no docstring BTW)?
>
> Moving to polar_lift, this is easier to understand. It lifts the value
> to the Riemann surface of the logarithm. So polar_lift(I) gives
> exp_polar(I*pi/2).
>
> So, if I understand the condition correctly, where alpha is a complex
> number, does it mean that alpha**2 (should polar_lift(alpha)**2 be the
> same as polar_lift(alpha**2)?) should have a nonnegative real part?
>
> There are some more docs on this at
> http://docs.sympy.org/latest/modules/integrals/g-functions.html if you
> want to dig in further (by the way, is it just me or is the math not
> rendering on that page?).
>
> Aaron Meurer
>
> On Fri, Sep 5, 2014 at 12:16 PM, Aaron Meurer <[email protected]> wrote:
>> If you set alpha as positive the arguments reduce.
>>
>> These come from Tom Bachmann's GSoC project. The docstrings of those
>> functions explain what they are. Basically, in order to get correct
>> results, we have to keep track of complex numbers on the domain of the
>> complex logarithm, rather than just the complex plane.
>>
>> Unfortunately, there has been no work done on simplifying these
>> conditions that are returned by the algorithm, even though in many
>> (most?) cases they can be simplified a lot.
>>
>> There is als a conds flag that you can pass to integrate as
>> 'piecewise', 'separate', or 'none'.
>>
>> Aaron Meurer
>>
>> On Fri, Sep 5, 2014 at 10:43 AM, Ondřej Čertík <[email protected]> 
>> wrote:
>>> Hi,
>>>
>>> I needed these two integrals for my work:
>>>
>>> In [23]: integrate(erf(alpha*r)*exp(-alpha**2 * r**2), (r, 0, oo))
>>> Out[23]:
>>> ⎧          ___
>>> ⎪        ╲╱ π               │                 ⎛          2      ⎞│   π
>>> ⎪        ─────          for │periodic_argument⎝polar_lift (α), ∞⎠│ ≤ ─
>>> ⎪         4⋅α                                                        2
>>> ⎪
>>> ⎪∞
>>> ⎨⌠
>>> ⎪⎮    2  2
>>> ⎪⎮  -α ⋅r
>>> ⎪⎮ ℯ      ⋅erf(α⋅r) dr                    otherwise
>>> ⎪⌡
>>> ⎪0
>>> ⎩
>>>
>>> In [24]: integrate(erf(alpha*r)*exp(-alpha**2 * r**2)*r, (r, 0, oo))
>>> Out[24]:
>>> ⎧           ___
>>> ⎪         ╲╱ 2                ⎛│                 ⎛          2      ⎞│   π   
>>> │
>>> ⎪         ─────           for ⎜│periodic_argument⎝polar_lift (α), ∞⎠│ ≤ ─ ∧ 
>>> │p
>>> ⎪             2               ⎝                                         2
>>> ⎪          4⋅α
>>> ⎪
>>> ⎨∞
>>> ⎪⌠
>>> ⎪⎮      2  2
>>> ⎪⎮    -α ⋅r
>>> ⎪⎮ r⋅ℯ      ⋅erf(α⋅r) dr
>>> ⎪⌡
>>> ⎩0
>>>
>>>
>>>                 ⎛          2      ⎞│   π⎞   │                 ⎛          2
>>> eriodic_argument⎝polar_lift (α), ∞⎠│ < ─⎟ ∨ │periodic_argument⎝polar_lift 
>>> (α),
>>>                                        2⎠
>>>
>>>
>>>
>>>
>>>
>>>
>>>             otherwise
>>>
>>>
>>>
>>>
>>>   ⎞│   π
>>>  ∞⎠│ < ─
>>>        2
>>>
>>>
>>>
>>>
>>> What does periodic_argument and polar_lift mean? It seems really
>>> complicated. For comparison, Mathematica returns:
>>>
>>> In [1]: Integrate[Erf[alpha*r]*Exp[-alpha^2*r^2], {r, 0, Infinity}]
>>>
>>> Out [1]: ConditionalExpression[Sqrt[\[Pi]]/(4 alpha),
>>>  Re[alpha^2] > 0 && Re[alpha] > 0]
>>>
>>> In [2]: Integrate[Erf[alpha*r]*Exp[-alpha^2*r^2]*r, {r, 0, Infinity}]
>>>
>>> Out [2]: ConditionalExpression[1/(2 Sqrt[2] alpha^2),
>>>  Re[alpha^2] > 0 && Re[alpha] > 0]
>>>
>>> Which is much simpler. So I think we should return something similar.
>>>
>>> Ondrej
>>>
>>> --
>>> 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 post to this group, send email to [email protected].
>>> Visit this group at http://groups.google.com/group/sympy.
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/sympy/CADDwiVD%3DVsR5rcqDx%3D4w%3D0gYAXpx0ZT8NbiGc0Kta5xOk_%2Btew%40mail.gmail.com.
>>> For more options, visit https://groups.google.com/d/optout.

-- 
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 post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/CAKgW%3D6J28JQRJOwnzC7KYoq0D0BUG1sAsnQRArAK1fH5g165dg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to