Just confirmed: the error is within the adaptive sampling routine:

plot(re(E(exp(I*t*X))), (t, 1e-6, 1e-2), adaptive=False) results in
the attached file

On 2 December 2012 19:15, Stefan Krastanov <krastanov.ste...@gmail.com> wrote:
> presumably just surrounding your expression with re() should do the job.
>
> The error seems to be a bug in the adaptive sampling so switching off
> (with a kwarg) should solve the problem.
>
> Concerning the complex numbers, originally whenever a complex number
> was encountered we plotted only the real part. Later it was changed to
> not plotting anything in such cases. Anyway, the but seems to be
> happening before we reach that part of the logic.
>
> On 2 December 2012 19:07, Matthew Rocklin <mrock...@gmail.com> wrote:
>> I'm trying to plot a statistical expression using the following code
>>
>> from sympy.stats import *
>> X = StudentT("X", 50)
>> t = Symbol('t', positive=True)
>> plot(simplify(E(exp(I*t*X))), (t, 1e-6, 1e-2))
>>
>> and I get this error
>>
>> --> 455                 elif p[1] is None or q[1] is None or not flat(p,
>> new_point, q):
>> TypeError: unsupported operand type(s) for -: 'float' and 'NoneType'
>> -> 1009     vector_a = x - y
>>
>> The expression I'm plotting is challenging (contains meijer-g functions) and
>> produces little complex parts which I suspect are throwing off the plotting
>> function
>>
>> In [48]: simplify(E(exp(I*t*X))).subs(t, .000001).evalf()
>> Out[48]: 0.999999999999479 + 1.56564942264937e-29⋅ⅈ
>>
>> Is there a way to just plot the real part of this expression?
>> Is there a way to avoid the small complex numbers?

-- 
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.

<<attachment: img.png>>

Reply via email to