If you're seeing this message, it means we're having trouble loading external resources on our website.

Jeżeli jesteś za filtrem sieci web, prosimy, upewnij się, że domeny *.kastatic.org i *.kasandbox.org są odblokowane.

Główna zawartość

Wstęp do pochodnych kierunkowych

How does the value of a multivariable function change as you nudge the input in a specific direction?

Do czego zmierzamy

  • Załóżmy, że mamy daną funkcję dwóch zmiennych f(x,y) i wektor v znajdujący się w przestrzeni argumentów f(x,y) . Pochodna kierunkowa f(x,y) w kierunku wektora v określa szybkość zmiany wartości funkcji f(x,y) przy zmianie argumentu (x,y) wzdłuż wektora v
Change input in the direction of v
  • Pochodną kierunkową funkcji wielu zmiennych f wzdłuż wektora v zapisujemy vf i obliczamy mnożąc skalarnie gradient f z wektorem v, tzn. vf = ∇f v
  • Kiedy pochodna kierunkowa jest używana w celu obliczenia nachylenia, należy najpierw znormalizować wektor v (uzyskać wektor jednostkowy o tym samym kierunku)

Uogólnienie pochodnych cząstkowych

Niech funkcja dwóch zmiennych f(x,y) dana będzie wzorem:
f(x,y)=x2xy
Wiemy, że pochodne cząstkowe f(x,y) względem x lub y opisują szybkość zmiany f(x,y), kiedy przesuwamy argument w kierunku osi OX albo OY odpowiednio.
Pytanie teraz brzmi: co się stanie z wartością funkcji, kiedy przesuniemy argument w kierunku, który nie jest równoległy do osi OX ani OY?
Na przykład obrazek poniżej przedstawia wykres funkcji f w trójwymiarowym układzie współrzędnych kartezjańskich. Na płaszczyźnie z=0 została umieszczona czerwona strzałka reprezentująca wektor v, w którego kierunku przesuwamy argument (x,y) należący do dziedziny funkcji f - w tym przypadku płaszczyzny XY liczb rzeczywistych. Czy istnieje operator, określający jak zmienia się wartość funkcji, kiedy przesuwamy argument funkcji wzdłuż wektora v?
Change input in the direction of v
Jak się prawdopodobnie domyślasz, istnieje typ pochodnej, nazywany pochodną kierunkową, która odpowiada na pytanie, które przed chwilą sobie zadaliśmy.
Znane Ci już pochodne cząstkowe są obliczane względem zmiany jednego z argumentów (np. pochodna cząstkowa f(x,y) względem x lub względem y). Umożliwiają one badanie szybkości zmian funkcji, gdy zmienia się tylko pojedyńczy argument, a wartość reszty argumentów pozostaje stała. Natomiast pochodne kierunkowe dają cały wachlarz możliwości; argument może zmieniać się w kierunku dowolnego wektora v o ilości współrzędnych równej wymiarowi argumentu funkcji.
One very helpful way to think about this is to picture a point in the input space moving with velocity v. The directional derivative of f along v is the resulting rate of change in the output of the function. So, for example, multiplying the vector v by two would double the value of the directional derivative since all changes would be happening twice as fast.

Notacja

Pochodną kierunkową można wyrażać za pomocą różnych oznaczeń:
  • vf
  • fv
  • fv
  • Dvf
  • vf
Jest to pięć alternatywnych sposobów zapisu pochodnej kierunkowej f po wektorze v, która określa szybkość zmiany f, kiedy argument infinitezymalnie przesuwa się wzdłuż wektora v. My będziemy używać notacji vf (dlatego że jest cichą wskazówką, jak obliczyć pochodną kierunkową funkcji znając jej gradient; za chwilę to zobaczysz).

Przykład 1: v=j^

Before jumping into the general rule for computing vf, let's look at how we can rewrite the more familiar notion of a partial derivative as a directional derivative.
For example, the partial derivative fy tells us the rate at which f changes as we nudge the input in the y direction. In other words, as we nudge it along the vector j^. Therefore, we could equivalently write the partial derivative with respect to y as fy=j^f.
This is all just fiddling with different notation. What's more important is to have a clear mental image of what all this notation​ represents.
Reflection Question: Suppose v=i^+j^, what is your best guess for vf?

How to compute the directional derivative

Let's say you have a multivariable f(x,y,z) which takes in three variables—x, y and z—and you want to compute its directional derivative along the following vector:
v=[231]
The answer, as it turns out, is
vf=2fx+3fy+(1)fz
This should make sense because a tiny nudge along v can be broken down into two tiny nudges in the x-direction, three tiny nudges in the y-direction, and a tiny nudge backwards, by 1, in the z-direction. We'll go through the rigorous reasoning behind this much more thoroughly in the next article.
More generally, we can write the vector v abstractly as follows:
v=[v1v2v3]
The directional derivative looks like this:
vf=v1fx+v2fy+v3fz
That is, a tiny nudge in the v direction consists of v1 times a tiny nudge in the x-direction, v2 times a tiny nudge in the y-direction, and v3 times a tiny nudge in the z-direction.
This can be written in a super-pleasing compact way using the dot product and the gradient:
=vf(x,y,z)=v1fx(x,y,z)+v2fy(x,y,z)+v3fz(x,y,z)=[fx(x,y,z)fy(x,y,z)fz(x,y,z)][v1v2v3]=f(x,y,z)v
This is why the notation v is so suggestive of the way we compute the directional derivative:
vf=fv
Take a moment to delight in the fact that one single operation, the gradient, packs enough information to compute the rate of change of a function in every possible direction! That's so many directions! Left, right, up, down, north-north-east, 34.8 clockwise from the x-axis... Madness!

Przykład 2:

Problem: Take a look at the following function.
f(x,y)=x2xy,
What is the directional derivative of f at the point (2,3) along the vector v=0.6i^+0.8j^?
Solution: You can think of the direction derivative either as a weighted sum of partial derivatives, as below:
vf=0,6fx+0,8fy
Or, you can think of it as a dot product with the gradient, as you see here:
vf=fv
The first is faster, but just for practice, let's see how the gradient interpretation unfolds. We start by computing the gradient itself:
f=[fxfy]=[x(x2xy)y(x2xy)]=[2xyx]
Next, plug in the point (x,y)=(2,3) since this is the point the question asks us about.
f(2,3)=[2(2)(3)(2)]=[72]
To get the desired directional derivative, we take the dot product between this gradient and v:
vf(2,3)=f(2,3)(0.6i^+0.8j^)=[72][0.60.8]=7(0.6)+(2)(0.8)=2.6

Finding slope

How do you find the slope of a graph intersected with a plane that is not parallel to the x or y axes?
Slice graph in a direction not parallel to x or y directions
You can use the directional derivative, but there is one important thing to remember:
If the directional derivative is used to compute slope, either v must be a unit vector or you must remember to divide by ||v|| at the end.
In the definition and computation above, doubling the length of v would double the value of the directional derivative. In terms of the computation, this is because f(2v)=2(fv).
However, this might not always be what you want. The slope of a graph in the direction of v, for example, depends only on the direction of v, not the magnitude ||v||. Let's see why.
How can we imagine this slope? Slice the graph of f with a vertical plane that cuts the xy-plane in the direction of v. The slope in question is that of a line tangent to the resulting curve. As with any slope, we look for the rise over run.
Computing slope using the directional derivative
In this case, the run will be the distance of a small nudge in the direction of v. We can express such a nudge as an addition of hv to an input point x0, where h is thought of as some small number. The magnitude of this nudge is h||v||.
The resulting change in the output of f can be approximated by multiplying this little value h by the directional derivative:
hvf(x0,y0)
In fact, the rise of the tangent line—as opposed to the graph of the function— is precisely hvf(x0,y0) due to this run of size h||v||. For full details on why this is true, see the formal definition of the directional derivative in the next article.
Therefore, the rise-over-run slope of our graph is
hvf(x0,y0)h||v||=vf(x0,y0)||v||
Notice, if v is a unit vector, meaning ||v||=1, then the directional derivative does give the slope of a graph along that direction. Otherwise, it is important to remember to divide out by the magnitude of v.
Some authors even go so far as to include normalization in the definition of vf.
Alternate definition of directional derivative:
vf(x)=limh0f(x+hv)f(x)h||v||
Personally, I think this definition puts too much emphasis on the particular use case of finding slope, so I prefer to use the original definition and normalize v when necessary.

Example 3: Slope

Problem: On the stage for this problem we have three players.
Player 1, the function:
f(x,y)=sin(xy)
Player 2, the point:
(x0,y0)=(π3,12)
Player 3, the vector:
v=2i^+3j^
What is the slope of the graph of f at the point (x0,y0) along the vector v?
Answer: Since we are finding slope, we must first normalize the vector in question. The magnitude ||v|| is 22+32=13, so we divide each term by 13 to get the resulting unit vector u^ in the direction of v:
Next, find the gradient of f:
Plug in the point (x0,y0)=(π3,12) to this gradient.
Finally, take the dot product between u^ and f(π/3,1/2):

Podsumowanie

  • Załóżmy, że mamy daną funkcję dwóch zmiennych f(x,y) i wektor v znajdujący się w przestrzeni argumentów f(x,y) . Pochodna kierunkowa f(x,y) w kierunku wektora v określa szybkość zmiany wartości funkcji f(x,y) przy zmianie argumentu (x,y) wzdłuż wektora v
  • The notation here is vf, and it is computed by taking the dot product between the gradient of f and the vector v, that is, fv.
  • Kiedy pochodna kierunkowa jest używana w celu obliczenia nachylenia, należy najpierw znormalizować wektor v (uzyskać wektor jednostkowy o tym samym kierunku)

Chcesz dołączyć do dyskusji?

Na razie brak głosów w dyskusji
Rozumiesz angielski? Kliknij tutaj, aby zobaczyć więcej dyskusji na angielskiej wersji strony Khan Academy.