Hi: is http://trac.sagemath.org/ticket/13355 possibly related?

Also, see the discussion 
at https://groups.google.com/forum/#!topic/sage-support/3mekDq5Stvk - if 
you use a Python function instead of a symbolic one, it might work even 
now.  Good luck!

- kcrisman

On Sunday, April 20, 2014 9:05:12 AM UTC-4, Alberto Verga wrote:
>
> Same question:
>
> kx, ky = var('kx', 'ky', domain='real')
> k = vector( [kx, ky] )
>
> d1 = vector( [0,1/sqrt(3)] )
> d2 = vector( [-1/2,-1/(2*sqrt(3))] )
> d3 = vector( [1/2,-1/(2*sqrt(3))] )
>
> hk(kx,ky) = -exp(I*k.dot_product(d1)) - exp(I*k.dot_product(d2)) - 
> exp(I*k.dot_product(d3))
> ek(kx,ky) = sqrt((hk(kx,ky).real_part())**2 + (hk(kx,ky).imag_part())**2)
> contour_plot(ek(kx,ky),(kx,-2*pi,2*pi),(ky,-2*pi,2*pi))
>
> works
>
> However, the "simpler"
>
> ek(kx,ky) = abs(hk(kx,ky))
> contour_plot(ek(kx,ky),(kx,-2*pi,2*pi),(ky,-2*pi,2*pi))
>
> does not work.
>
> A simple example would be:
>     x, y = var('x', 'y', domain = 'real')
>     contour_plot( abs( exp(I*x) ), (x, -pi, pi), (y, -pi, pi) )
>
> giving the same error: "TypeError: unable to coerce to a real number"
>
> Alberto.
>
>
>
>
> Le mardi 28 janvier 2014 19:26:35 UTC+1, Albert Schueller a écrit :
>>
>> This morning I figured out how to plot the modulus of a complex function 
>> in sage.  In my travails I wondered why the first snippet works, but the 
>> second does not?  Is there any easy way to make the second snippet work?
>>
>> #Plot the modulus of the function, works
>> var('z',domain=CC)
>> var('x y', domain=RR)
>> var('rp ip')
>> z=x+i*y
>> rp = (2+z.conjugate()+z^3).real()
>> ip = (2+z.conjugate()+z^3).imag()
>> m(x,y) = sqrt(rp^2+ip^2)
>> plot3d(m(x,y).simplify(),(x,-1.5,1.5),(y,-1.5,1.5))
>>
>>
>>
>>
>> My question is, why doesn't this work?
>>
>> #Plot the modulus of the function, fails
>> var('z',domain=CC)
>> var('x y', domain=RR)
>> z=x+i*y
>> m(x,y) = abs(2+z.conjugate()+z^3)
>> plot3d(m(x,y),(x,-1.5,1.5),(y,-1.5,1.5))
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" 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/sage-support.
For more options, visit https://groups.google.com/d/optout.

Reply via email to