# f che vale 0 in (0,0) e altrove 2*x*y/(x^2+y^2):
f <- function(x,y) ifelse( x==0 & y==0, 0, 2*x*y/(x^2+y^2) )
x <- y <- seq(-5,5,0.25)
z <- outer(x, y, f)
# la riga seguente serve solo a ridurre i margini
par( mai = c(0.5,0.5,0.2,0.2) )
persp(x,y,z, theta=100, phi=20, col="lightblue",ticktype="detailed")
 
# f non ha limite (e non e' quindi continua) in (0,0):
t <- seq(1,0.1,-0.1); f(t,t); f(t,-t); f(t,0)
 [1] 1 1 1 1 1 1 1 1 1 1
 [1] -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
 [1] 0 0 0 0 0 0 0 0 0 0
# invece f'x(0,0), la pendenza in x=0 della curva di intersezione
# con il piano verticale y=0, e f'y(0,0), la pendenza in y=0 della
# curva di intersez. con il piano vertic. x=0, esistono (valgono 0)
# Del resto si intuisce che non esiste il piano tangente in (0,0)
# (vedi)