Loading [MathJax]/jax/output/HTML-CSS/jax.js
Ask Your Question
1

How do I define the function to be 0 at x=0?

asked 3 years ago

updated 3 years ago

slelievre gravatar image

Struggling first-year undergrad here... sorry if this question seems stupid.

I want to graph the 3d and contour plots of f(x,y)=x*y*(x^2-y^2))/(x^2+y^2). Since the function is undefined at 0 I need to also define the function to be 0 at x=0.

Here's what I wrote

x, y = var('x y')
plot3d((x*y*(x^2-y^2))/(x^2+y^2), (-3, 3), (-3, 3))

SageMath: 3D plot

contour_plot((x*y*(x^2-y^2))/(x^2+y^2), (-10, 10), (-10, 10), fill=0, labels=40)

SageMath: contour plot

The contour plot looks a bit funky, there's a big cross made by two lines at the origin which I suppose is because the function is undefined at 0.

Preview: (hide)

1 Answer

Sort by » oldest newest most voted
0

answered 3 years ago

Emmanuel Charpentier gravatar image

updated 3 years ago

Sage doesn't (yet) have symbolic boolean functions (but see Trac#31911...). But since :

sage: f(0,y)
0
sage: f(x,0)
0

we can write :

sage: h(x,y)=cases([(x==0, 0), (y==0, 0), (True, f(x,y))])

which is defined at 0.

But plotting h has the same problem as plotting f : the "big cross", is a plotting artefact, resulting from the way Sage computes the numerical values of points to be plotted.

The workaround would be to compute explicit expression for your level curves and plot them. This is left to the reader as an exercise ;-))...

HTH,

EDIT : In your case, this might not be necessary ; writing your function in polar coordinates being enough to get an expression with no singularities at (0,0) :

sage: var("r, theta")
(r, theta)
sage: g(r,theta)=f(x,y).subs({x:r*cos(theta), y:r*sin(theta)}).simplify_full() ; g
(r, theta) |--> (2*r^2*cos(theta)^3 - r^2*cos(theta))*sin(theta)
sage: g(0, theta)
0

HTH,

Preview: (hide)
link

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 3 years ago

Seen: 237 times

Last updated: Nov 03 '21