8

I have the following function:

f[0, 0] = 0
f[x_, y_] := Exp[-(x^2 + y^2)^(-1)]

How do I find its partial derivatives at any given point, including $(0,0)$? This doesn't work (obviously, I guess):

point={0,0}
D[f[x, y], x] /. x -> point[[1]] /. y -> point[[2]]
Artes
  • 57,212
  • 12
  • 157
  • 245
mbork
  • 949
  • 9
  • 16
  • 2
    f[x_, y_] := Exp[-(x^2 + y^2)^(-1)] point = {1, 1}; D[f[x, y], x] /. {x -> point[[1]], y -> point[[2]]}

    This worked..

    – dearN Sep 29 '12 at 23:27

2 Answers2

8

In case you have any problems, I recommend using the Derivative operator instead of D, since the latter works on expressions, while the former one can work on pure functions.

{Derivative[1, 0][f][x, y], Derivative[0, 1][f][x, y]} // TraditionalForm

enter image description here

The subtlety here is that one cannot use it to find partial derivatives of f at {0,0}, e.g.

Derivative[0, 1][f][0, 0]
Power::infy: Infinite expression 1/0 encountered. >>
Infinity::indet: Indeterminate expression E^ComplexInfinity encountered. >>
Power::infy: Infinite expression 1/0^2 encountered. >>

Indeterminate

however, you can use Limit instead of Derivative:

Limit[ #, h -> 0] & /@ {( f[0 + h, 0] - f[0, 0] )/ h, ( f[0, 0 + h] - f[0, 0] )/ h}
{0, 0}

In general, it works as we would like:

Limit[ #, h -> 0] & /@ { (f[x + h, y] - f[x, y])/ h, (f[x, y + h] - f[x, y])/ h} ==
{ Derivative[1, 0][f][x, y], Derivative[0, 1][f][x, y] }
True

One can also take advantage of FoldList to follow computing several limits, e.g. :

FoldList[ Limit, (f[x + h, y] - f[x, y])/h, {h -> 0, y -> 0, x -> 0}] // TraditionalForm

enter image description here

We have shown that the partial derivative with respect to x is continuous at {0,0}. We can show much more; namely, that any derivative of any order vanishes at {0,0}. We find here the few first terms of a Taylor series expansion near {0,0} :

Limit[ Limit[ Normal @ Series[ f[x, y], {y, y0, 7}, {x, x0, 7}], x0 -> 0], y0 -> 0]
0

i.e. this function is not analytic at {0,0}, since the Taylor series expansion is identically 0, while the function f itself is not.

J. M.'s missing motivation
  • 124,525
  • 11
  • 401
  • 574
Artes
  • 57,212
  • 12
  • 157
  • 245
  • 1
    Thanks, but formally, this is the limit of the derivative as the point tends to zero, not exactly the derivative at zero (though in this case they are equal). Do I have to resort to Limit and the definition of a derivative to do it in the general case? – mbork Sep 29 '12 at 17:27
  • 1
    You can find the Limit of the difference ratio directly. – Artes Sep 29 '12 at 17:30
  • Exactly, I just thought there's another way. – mbork Sep 29 '12 at 17:35
  • @mbork more exactly f is a smooth function everywhere but it is not analytic in {0,0}. – Artes Sep 29 '12 at 17:38
3

For evaluating derivatives for numerical arguments, one (somewhat neglected) function for the purpose is SeriesCoefficient[]. Of course, this produces derivatives scaled by factorials, so you have to multiply by the appropriate factorial factors to get the actual value of the derivative. For instance,

Derivative[3, 5][Function[{x, y}, Exp[-1/(x^2 + y^2)]]][1, 1]
   117215/(256 Sqrt[E])

With[{p = 3, q = 5, x0 = 1, y0 = 1}, 
     p! q! SeriesCoefficient[Exp[-1/(x^2 + y^2)], {x, x0, p}, {y, y0, q}]]
   117215/(256 Sqrt[E])
J. M.'s missing motivation
  • 124,525
  • 11
  • 401
  • 574