A more thorough look at the formula for directional derivatives, along with an explanation for why the gradient gives the slope of steepest ascent.
Formal definition of the directional derivative
There are a couple reasons you might care about a formal definition. For one thing, really understanding the formal definition of a new concept can make clear what it is really going on. But more importantly than that, I think the main benefit is that it gives you the confidence to recognize when such a concept can and cannot be applied.
As a warm up, let's review the formal definition of the partial derivative, say with respect to
The connection between the informal way to read
and the formal way to read the right-hand side is as follows:
|Symbol||Informal understanding||Formal understanding|
|A tiny nudge in the ||A limiting variable |
|The resulting change in the output of ||The difference between |
We could instead write this in vector notation, viewing the input point
as a two-dimensional vector
is written in bold to emphasize its vectoriness. It's a bit confusing to use a bold for the entire input rather than some other letter, since the letter is already used in an un-bolded form to denote the first component of the input. But hey, that's convention, so we go with it.
Instead of writing the "nudged" input as
, we write it as , where is the unit vector in the -direction:
In this notation, it's much easier to see how to generalize the partial derivative with respect to
to the directional derivative along any vector :
In this case, adding
to the input for a limiting variable formalizes the idea of a tiny nudge in the direction of .
Seeking connection between the definition and computation
Computing the directional derivative involves a dot product between the gradient
and the vector . For example, in two dimensions, here's what this would look like:
and are the components of .
The central question is, what does this formula have to do with the definition given above?
Breaking down the nudge
The computation for
can be seen as a way to break down a tiny step in the direction of into its and components.
Specifically, you can imagine the following procedure:
- Start at some point
- Choose a tiny value
to , which means stepping to the point . From what we know of partial derivatives, this will change the output of the function by about
- Now add
to to bring us up/down to the point . The resulting change to is now about
Adding the results of steps
and , the total change to the function upon moving from the input to the input has been about
This is very close to the expression for the directional derivative, which says the change in
due to this step should be about
However, this differs slightly from the result of our step-by-step argument, in which the partial derivative with respect to
is taken at the point , not at the point .
Luckily we are considering very, very small values of
. In fact, more technically, we should be talking about the limit as . Therefore evaluating at will be almost the same as evaluating it at . Moreover, as approaches , so does the difference between these two, but we have to assume that is continuous.
Why does the gradient point in the direction of steepest ascent?
Having learned about the directional derivatives, we can now understand why the direction of the gradient is the direction of steepest ascent.
Specifically, here's the question at hand.
be some scalar-valued multivariable function, such as .
be a particular input point
- Consider all possible directions, i.e. all unit vectors
in the input space of .
Question (informal): If we start at
, which direction should we walk so that the output of increases most quickly?
Question (formal): Which unit vector
maximizes the directional derivative along ?
The famous triangle inequality tells us that this will be maximized by the unit vector in the direction
Notice, the fact that the gradient points in the direction of steepest ascent is a consequence of the more fundamental fact that all directional derivatives require taking the dot product with
Want to join the conversation?
- I'm having trouble understanding the 3rd step under the formal argument. If we move hv1 in the x direction, how does this imply that the output will be hv1*fx(x0,y0)? (Sorry for the notation - I'm on my phone).(23 votes)
- That is the definition of the derivative. Remember:
fₓ(x₀,y₀) = lim_Δx→0 [(f(x₀+Δx,y₀)-f(x₀,y₀))/Δx]
Then, we can replace Δx with hv₁ because both Δx and h are very small, so we get:
fₓ(x₀,y₀) = (f(x₀+hv₁,y₀)-f(x₀,y₀))/hv₁
We can then rearrange this equation to get:
f(x₀+hv₁,y₀) = hv₁ × fₓ(x₀,y₀) + f(x₀,y₀)(28 votes)
- Can anyone help me understand how to solve the puzzle at the end of the article? I am having trouble understanding it.(4 votes)
- I had trouble with this puzzle too, but then I thought about it in terms of vectors. We need to maximize 100A + 20B + 2C, right? By definition of the dot product, this expression is equal to the dot product of two vectors [100, 20, 2] * [A, B, C]. So we want to maximize the dot product. When does the dot product have the maximum value? It is maximum when two vectors are parallel, or, in other words, one vector is multiple of the other (this can be understood from the graphical interpretation of the dot product). Therefore, our vector [A, B, C] should be [100x, 20x, 2x], where x is some number.
The second insight is to express A^2 + B^2 + C^2 = 10404 equation in vector notation. Expression A^2 + B^2 + C^2 is equal to the dot product of vector [A,B,C] with itself:
[A,B,C]*[A,B,C] = 10404.
Here instead of [A,B,C] we substitute [100x, 20x, 2x] vector and solve for x:
[100x, 20x, 2x]* [100x, 20x, 2x] = 10000x^2 + 400x^2 + 4x^2 = 10404x^4 = 10404.
x = 1.
Therefore, our vector [A,B,C] is [100 * 1, 20 * 1, 2 * 1] = [100, 20, 2].
So, we have our answer:
A = 100
B = 20
C = 2.
I hope it wasn't confusing. :)(59 votes)
- step 4. how does adding the change in the x direction and y direction give us the total change in the function? we are adding "perpendicular numbers", not vectors, so the adding should look more like pythagoras, shouldn't it?(3 votes)
- I think The explanation in this article is not precise, as the reason for we to be able to ignore hv0 to add the 2 nadge is:
The function must be locally be essentially linear, i.e., there must be a linear approximation
That ignorance and directly add make sense for L(x).
Detailed info, you can refer to :
- Isn't it good to color "h" in black in the figure just below the subtitle of "Breaking down the nudge" for the consistency? Just a suggestion.(3 votes)
- If you meant that we should bold h like 𝐡, then this is my answer: No, because h is a scalar value, and we're taking the limit as h approaches the (scalar value) zero. This corresponds to the nudge in the input, which is the vector h𝐯, approaching the vector value 𝟎. h𝐯 is equal to the input nudge direction 𝐯 scaled (multiplied) by the step size h.(2 votes)
- I don't understand this sentence: The famous triangle inequality tells us that this will be maximized by the unit vector in the direction (nabla) f (x0, y0)
To me, this doesn't seem obvious at all, can I find explanation perhaps somewhere else on the khan academy? I have looked at triangle inequality
||x + y|| <= ||x||+||y||, but I don't understand how the two things are related, other than that both somehow talk about vectors. Directional derivative however works with dot products and not adding vectors together, as in the triangle inequality, so I don't immediately see the connection between the two.(2 votes)
- I'm in the same boat and don't see how the triangle inequality can be applied, however using the slightly different Cauchy-Schwarz inequality works. The Cauchy-Scwarz inequality states that
for any two vectors x and y. Cauchy-Schwarz also says that the inequality can be turned to an equality
x·y <= ||x|| * ||y||
if x and y are parallel.
x · y = ||x|| * ||y||(4 votes)
- For a given gradient vector, I can understand that any unit vector in the direction of gradient vector will give maximum value of dot product between itself and gradient vector.
But how does it proves the gradient vector is itself the direction of maximum ascent.(3 votes)
- I don’t think that quite matters. If a unit vector in the direction of the gradient vector is the direction of greatest ascent, then moving in the direction of the gradient vector is also in the direction of the greatest ascent. One is just a multiple of another—they still pointin the same direction.(1 vote)
- I have more of a conceptual question. If we think a partial derivative as a little nudge to a certain direction and that nudge (h) is approaching 0, why does that concept not transfer to directional derivative? Namely, why would the directional derivative of 2v twice as big as that of v? If we think of the nudge in v as so tiny that goes to 0, why would 2v versus v even matter?(3 votes)
- To gain an intuitive understanding of that particular concept, you'd need to consider how the single variable calculus differentiation process deals with constant multipliers. For example, dy/dx (y = c*f(x)) gives dy = c*f'(x)dx for all constants c.
In the same respect, the scaling factor of the directional vector v is taken into consideration. Note that while we're dealing with something approaching 0, it doesn't ever quite get there.(1 vote)
- Regarding directional derivative I can not understand why the vector v has not to be a unit vector, namely, it can has an arbitrary magnitude.
In the one hand, the formal definition of the directional derivative supplied in the article lies upon unit vectors i and j. From my point of view, it is easy to understand this definition will hold for any direction other than i and j always that we treat with unit vectors. Another thing, and this is what I can not figure out clearly, is wether the magnitud of these vectors can also be generalized. To illustrate what it shocks me, if we set a limit from 0 to infinity for the magnitud of v, the formula will ends up with an indetermination of the form h·||v||=0·Inf, because h goes to 0 and ||v|| goes to Inf. In contrast, if we restrict ourselves into unit vectors this would not happen.
On the other hand, as far as I understood we are trying to get a measure that tells us how f(x, y) changes in the direction of v, which has nothing to do with how far we move in that direction. Therefore the only way I can figure out to capture just the variation due to change in direction (and nothing else) is "playing" with number 1 (i.e. unit vectors) whenever we multiply.(3 votes)
- There's an error at the formal definition part. You say dx goes to zero. That means df/dx is undefined?(1 vote)
- It is not undefined because the definition says that dx approaches zero, so it is never really zero. That is why you take the limit.(4 votes)
- Hi, i've a question on the following point "Computing the directional derivative involves a dot product between the gradient and the vector v". when i look at the definition of dot product, it says "|a|.|b|.cosine theeta".
but in this definition no cosine theeta is involved. is that mean, the gradient (which has the partial derivatives of x,y) not considered as a vector here? or is it? if yes,why cosine theeta is not involved here?(2 votes)
- The gradient is vector here, see http://mathworld.wolfram.com/DotProduct.html
You can figure out why
cosineis omitted.(2 votes)