Non-Continuous Functions.mw

Let's investigate a function which is not continuous at the point (0,0) 

with(plots); 1 

[Interactive, animate, animate3d, animatecurve, arrow, changecoords, complexplot, complexplot3d, conformal, conformal3d, contourplot, contourplot3d, coordplot, coordplot3d, cylinderplot, densityplot, ...
[Interactive, animate, animate3d, animatecurve, arrow, changecoords, complexplot, complexplot3d, conformal, conformal3d, contourplot, contourplot3d, coordplot, coordplot3d, cylinderplot, densityplot, ...
[Interactive, animate, animate3d, animatecurve, arrow, changecoords, complexplot, complexplot3d, conformal, conformal3d, contourplot, contourplot3d, coordplot, coordplot3d, cylinderplot, densityplot, ...
[Interactive, animate, animate3d, animatecurve, arrow, changecoords, complexplot, complexplot3d, conformal, conformal3d, contourplot, contourplot3d, coordplot, coordplot3d, cylinderplot, densityplot, ...
[Interactive, animate, animate3d, animatecurve, arrow, changecoords, complexplot, complexplot3d, conformal, conformal3d, contourplot, contourplot3d, coordplot, coordplot3d, cylinderplot, densityplot, ...
[Interactive, animate, animate3d, animatecurve, arrow, changecoords, complexplot, complexplot3d, conformal, conformal3d, contourplot, contourplot3d, coordplot, coordplot3d, cylinderplot, densityplot, ...
[Interactive, animate, animate3d, animatecurve, arrow, changecoords, complexplot, complexplot3d, conformal, conformal3d, contourplot, contourplot3d, coordplot, coordplot3d, cylinderplot, densityplot, ...
[Interactive, animate, animate3d, animatecurve, arrow, changecoords, complexplot, complexplot3d, conformal, conformal3d, contourplot, contourplot3d, coordplot, coordplot3d, cylinderplot, densityplot, ...
[Interactive, animate, animate3d, animatecurve, arrow, changecoords, complexplot, complexplot3d, conformal, conformal3d, contourplot, contourplot3d, coordplot, coordplot3d, cylinderplot, densityplot, ...
 

f := x*y/(x^2+y^2); 1 

x*y/(x^2+y^2) 

plot3d(f(x, y), x = -3 .. 3, y = -3 .. 3, numpoints = 10000, labels = (['x', 'y', 'z']), axes = normal); 1
plot3d(f(x, y), x = -3 .. 3, y = -3 .. 3, numpoints = 10000, labels = (['x', 'y', 'z']), axes = normal); 1
 

 

Plot 

 

Look at the function values at the point (0,0). You can see that taking different paths to (0,0) gives different limit resulst. This can best be seen by investigating level curves. 

 

 

c := [-.5, -.4, -.3, -.2, -.1, 0., .1, .2, .3, .4, .5]; 1 

[-.5, -.4, -.3, -.2, -.1, 0., .1, .2, .3, .4, .5] 

 

contourplot(f, x = -3 .. 3, y = -3 .. 3, numpoints = 10000, axes = FRAME, labels = (['x', 'y']), filled = true, coloring = ([blue, red]), contours = c); 1
contourplot(f, x = -3 .. 3, y = -3 .. 3, numpoints = 10000, axes = FRAME, labels = (['x', 'y']), filled = true, coloring = ([blue, red]), contours = c); 1
 

 

Plot 

 

 

Each of the level curves represents a different path approaching the origin (0,0). On each path the function is constant and the constant value is different on each path.