Des articles

14.6 : Dérivées directionnelles et gradient - Mathématiques


Objectifs d'apprentissage

  • Déterminer la dérivée directionnelle dans une direction donnée pour une fonction de deux variables.
  • Déterminer le vecteur gradient d'une fonction à valeur réelle donnée.
  • Expliquer la signification du vecteur gradient en ce qui concerne la direction du changement le long d'une surface.
  • Utilisez le dégradé pour trouver la tangente à une courbe de niveau d'une fonction donnée.
  • Calculer les dérivées directionnelles et les gradients en trois dimensions.

Une fonction (z=f(x,y)) a deux dérivées partielles : (∂z/∂x) et (∂z/∂y). Ces dérivées correspondent à chacune des variables indépendantes et peuvent être interprétées comme des taux de changement instantanés (c'est-à-dire comme des pentes d'une ligne tangente). Par exemple, (∂z/∂x) représente la pente d'une tangente passant par un point donné de la surface définie par (z=f(x,y),) en supposant que la tangente est parallèle au (x)-axe. De même, (∂z/∂y) représente la pente de la tangente parallèle à la (y)-axe. Considérons maintenant la possibilité d'une ligne tangente parallèle à aucun axe.

Dérivés directionnels

On part du graphe d'une surface définie par l'équation (z=f(x,y)). Étant donné un point ((a,b)) dans le domaine de (f), nous choisissons une direction pour voyager à partir de ce point. Nous mesurons la direction à l'aide d'un angle (θ), qui est mesuré dans le sens inverse des aiguilles d'une montre dans le plan (xy), en commençant à zéro à partir de l'axe positif (x) (Figure (PageIndex{1} )). La distance parcourue est (h) et la direction que nous parcourons est donnée par le vecteur unitaire (vecs u=(cos θ),hat{mathbf i}+(sin θ), hat{mathbf j}.) Par conséquent, la (z)-coordonnée du deuxième point du graphe est donnée par (z=f(a+hcos ,b+hsin θ). )

Nous pouvons calculer la pente de la ligne sécante en divisant la différence des valeurs (z) par la longueur du segment de ligne reliant les deux points du domaine. La longueur du segment de ligne est (h). Par conséquent, la pente de la ligne sécante est

[m_{sec}=dfrac{f(a+hcos θ,b+hsin θ)−f(a,b)}{h}]

Pour trouver la pente de la ligne tangente dans la même direction, nous prenons la limite lorsque (h) tend vers zéro.

Définition : Dérivés directionnels

Supposons que (z=f(x,y)) soit une fonction de deux variables avec un domaine de (D). Soit ((a,b)∈D) et définissons (vecs u=(cos θ),hat{mathbf i}+(sin θ),hat{mathbf j} ). Alors la dérivée directionnelle de (f) dans la direction de (vecs u) est donnée par

[D_{vecs u}f(a,b)=lim_{h→0}dfrac{f(a+h cos ,b+hsin θ)−f(a,b)}{ h} label{DD}]

pourvu que la limite existe.

L'équation ef{DD} fournit une définition formelle de la dérivée directionnelle qui peut être utilisée dans de nombreux cas pour calculer une dérivée directionnelle.

Notez que puisque le point ((a, b)) est choisi aléatoirement dans le domaine (D) de la fonction (f), nous pouvons utiliser cette définition pour trouver la dérivée directionnelle en fonction de ( x) et (y).

C'est-à-dire,

[D_{vecs u}f(x,y)=lim_{h→0}dfrac{f(x+h cos ,y+hsin θ)−f(x,y)}{ h} label{DDxy}]

Exemple (PageIndex{1}) : Recherche d'une dérivée directionnelle à partir de la définition

Soit (θ=arccos(3/5).) Trouver la dérivée directionnelle (D_{vecs u}f(x,y)) de (f(x,y)=x^2−xy +3y^2) dans le sens de (vecs u=(cos θ),hat{mathbf i}+(sin θ),hat{mathbf j}).

Déterminez ensuite (D_{vecs u}f(−1,2)).

Solution

Tout d'abord, puisque (cos θ=3/5) et (θ) est aigu, cela implique

[sin θ=sqrt{1−left(dfrac{3}{5} ight)^2}=sqrt{dfrac{16}{25}}=dfrac{4}{5} . pas de numéro]

En utilisant (f(x,y)=x^2−xy+3y^2,) nous calculons d'abord (f(x+hcos θ,y+hsin θ)):

[egin{align*} f(x+hcos θ,y+hsin θ) &=(x+hcos θ)^2−(x+hcos θ)(y+h sin )+3(y+hsin θ)^2
&=x^2+2xhcos θ+h^2cos^2 θ−xy−xhsin θ−yhcos θ−h^2sin θcos θ+3y^2+6yhsin θ +3h^2sin^2
&=x^2+2xh(frac{3}{5})+frac{9h^2}{25}−xy−frac{4xh}{5}−frac{3yh}{5}− frac{12h^2}{25}+3y^2+6yh(frac{4}{5})+3h^2(frac{16}{25})
&=x^2−xy+3y^2+frac{2xh}{5}+frac{9h^2}{5}+frac{21yh}{5}. end{align*}]

Nous substituons cette expression dans l'équation ef{DD} par (a = x) et (b = y):

[egin{align*} D_{vecs u}f(x,y) &=lim_{h→0}frac{f(x+hcos θ,y+hsin θ)−f (x,y)}{h}
&=lim_{h→0}frac{(x^2−xy+3y^2+frac{2xh}{5}+frac{9h^2}{5}+frac{21yh}{5 })−(x^2−xy+3y^2)}{h}
&=lim_{h→0}frac{frac{2xh}{5}+frac{9h^2}{5}+frac{21yh}{5}}{h}
&=lim_{h→0}frac{2x}{5}+frac{9h}{5}+frac{21y}{5}
&=frac{2x+21y}{5}. end{align*}]

Pour calculer (D_{vecs u}f(−1,2),) nous substituons (x=−1) et (y=2) dans cette réponse (Figure (PageIndex{2} )):

[ D_{vecs u}f(−1,2)=dfrac{2(−1)+21(2)}{5}=dfrac{−2+42}{5}=8. pas de numéro]

Une approche plus simple pour calculer les dérivées directionnelles qui implique des dérivées partielles est décrite dans le théorème suivant.

Dérivée directionnelle d'une fonction de deux variables

Soit (z=f(x,y)) une fonction de deux variables (x) et (y), et supposons que (f_x) et (f_y) existent. Alors la dérivée directionnelle de (f) dans la direction de (vecs u=(cos θ),hat{mathbf i}+(sin θ),hat{mathbf j} ) est donné par

[D_{vecs u}f(x,y)=f_x(x,y)cos θ+f_y(x,y)sin θ. label{DD2v}]

Preuve

En appliquant la définition d'une dérivée directionnelle indiquée ci-dessus dans l'équation ef{DD}, la dérivée directionnelle de (f) dans la direction de (vecs u=(cos θ),hat{mathbf i} +(sin θ),hat{mathbf j}) en un point ((x_0, y_0)) dans le domaine de (f) peut s'écrire

[D_{vecs u}f((x_0, y_0))=lim_{t→0}dfrac{f(x_0+t cos θ,y_0+tsin θ)−f(x_0,y_0) }{t}.]

Soit (x=x_0+tcos θ) et (y=y_0+tsin θ,) et définissons (g(t)=f(x,y)). Puisque (f_x) et (f_y) existent tous les deux, nous pouvons utiliser la règle de la chaîne pour les fonctions de deux variables pour calculer (g′(t)) :

[g′(t)=dfrac{∂f}{∂x}dfrac{dx}{dt}+dfrac{∂f}{∂y}dfrac{dy}{dt}=f_x(x, y)cos θ+f_y(x,y)sin .]

Si (t=0,) alors (x=x_0) et (y=y_0,) donc

[g′(0)=f_x(x_0,y_0)cos θ+f_y(x_0,y_0)sin θ]

Par la définition de (g′(t),) il est également vrai que

[g′(0)=lim_{t→0}dfrac{g(t)−g(0)}{t}=lim_{t→0}dfrac{f(x_0+tcos θ ,y_0+tsin θ)−f(x_0,y_0)}{t}.]

Par conséquent, (D_{vecs u}f(x_0,y_0)=f_x(x_0,y_0)cos θ+f_y(x_0,y_0)sin θ).

Puisque le point ( (x_0,y_0) ) est un point arbitraire du domaine de (f), ce résultat est valable pour tous les points du domaine de (f) pour lesquels les partiels (f_x) et (f_y) existent.

Donc, [D_{vecs u}f(x,y)=f_x(x,y)cos θ+f_y(x,y)sin θ.]

Exemple (PageIndex{2}) : Recherche d'une dérivée directionnelle : méthode alternative

Soit (θ=arccos (3/5).) Trouver la dérivée directionnelle (D_{vecs u}f(x,y)) de (f(x,y)=x^2−xy +3y^2) dans le sens de (vecs u=(cos θ),hat{mathbf i}+(sin θ),hat{mathbf j}).

Déterminez ensuite (D_{vecs u}f(−1,2)).

Solution

Tout d'abord, nous devons calculer les dérivées partielles de (f):

[egin{align*}f_x(x,y) &=2x−y f_y(x,y) &=−x+6y, end{align*}]

Ensuite, nous utilisons l'équation ef{DD2v} avec (θ=arccos (3/5)):

[egin{align*} D_{vecs u}f(x,y) &=f_x(x,y)cos θ+f_y(x,y)sin θ
&=(2x−y)dfrac{3}{5}+(−x+6y)dfrac{4}{5}
&=dfrac{6x}{5}−dfrac{3y}{5}−dfrac{4x}{5}+dfrac{24y}{5}
&=dfrac{2x+21y}{5}. end{align*}]

Pour calculer (D_{vecs u}f(−1,2),) soit (x=−1) et (y=2):

[D_{vecs u}f(−1,2)=dfrac{2(−1)+21(2)}{5}=dfrac{−2+42}{5}=8. onumber ]

C'est la même réponse obtenue dans l'exemple (PageIndex{1}).

Exercice (PageIndex{1}) :

Trouver la dérivée directionnelle (D_{vecs u}f(x,y)) de (f(x,y)=3x^2y−4xy^3+3y^2−4x) dans la direction de (vecs u=(cos dfrac{π}{3}),hat{mathbf i}+(sin dfrac{π}{3}),hat{mathbf j}) en utilisant l'équation ef{DD2v}.

Qu'est-ce que (D_{vecs u} f(3,4)) ?

Indice

Calculer les dérivées partielles et déterminer la valeur de (θ).

Réponse

(D_{vecs u}f(x,y)=dfrac{(6xy−4y^3−4)(1)}{2}+dfrac{(3x^2−12xy^2+6y) sqrt{3}}{2})

(D_{vecs u}f(3,4)=dfrac{72−256−4}{2}+dfrac{(27−576+24)sqrt{3}}{2}=−94 −dfrac{525sqrt{3}}{2})

Si le vecteur qui est donné pour la direction de la dérivée n'est pas un vecteur unitaire, alors il suffit de diviser par la norme du vecteur. Par exemple, si nous voulions trouver la dérivée directionnelle de la fonction de l'exemple (PageIndex{2}) dans la direction du vecteur (⟨−5,12⟩), nous diviserions d'abord par sa magnitude pour obtenir (vecs u). Cela nous donne (vecs u=⟨−frac{5}{13},frac{12}{13}⟩).

Puis

[ egin{align*} D_{vecs u}f(x,y) &=f_x(x,y)cos θ+f_y(x,y)sin θ
&=−dfrac{5}{13}(2x−y)+dfrac{12}{13}(−x+6y)
&=−dfrac{22}{13}x+dfrac{17}{13}y end{align*}]

Pente

Le membre de droite de l'équation ef{DD2v} est égal à (f_x(x,y)cos θ+f_y(x,y)sin θ), qui peut être écrit comme le produit scalaire de deux vecteurs . Définir le premier vecteur comme (vecs ∇f(x,y)=f_x(x,y),hat{mathbf i}+f_y(x,y),hat{mathbf j}) et le deuxième vecteur comme (vecs u=(cos θ),hat{mathbf i}+(sin θ),hat{mathbf j}). Ensuite, le membre de droite de l'équation peut être écrit comme le produit scalaire de ces deux vecteurs :

[D_{vecs u}f(x,y)=vecs ∇f(x,y)⋅vecs u. label{gradDirDer}]

Le premier vecteur de l'équation ef{gradDirDer} a un nom spécial : le gradient de la fonction (f). Le symbole (∇) est appelé nabla et le vecteur (vecs ∇f) se lit "del (F)."

Définition : le dégradé

Soit (z=f(x,y)) une fonction de (x) et (y) telle que (f_x) et (f_y) existent. Le vecteur (vecs ∇f(x,y)) est appelé le pente de (f) et est défini comme

[vecs ∇f(x,y)=f_x(x,y),hat{mathbf i}+f_y(x,y),hat{mathbf j}. label{grad}]

Le vecteur (vecs ∇f(x,y)) s'écrit aussi «diplômé (F)."

Exemple (PageIndex{3}) : Recherche de dégradés

Trouver le gradient (vecs ∇f(x,y)) de chacune des fonctions suivantes :

  1. (f(x,y)=x^2−xy+3y^2)
  2. (f(x,y)=sin 3 x cos 3y)

Solution

Pour les deux parties a. et b., on calcule d'abord les dérivées partielles (f_x) et (f_y), puis on utilise l'équation ef{grad}.

une. ( f_x(x,y)=2x−y) et (f_y(x,y)=−x+6y), donc

[egin{align*} vecs ∇f(x,y) &=f_x(x,y),hat{mathbf i}+f_y(x,y),hat{mathbf j} &=(2x−y),hat{mathbf i}+(−x+6y),hat{mathbf j}.end{align*}]

b. ( f_x(x,y)=3cos 3x cos 3y) et (f_y(x,y)=−3sin 3x sin 3y), donc

[egin{align*} vecs ∇f(x,y) &=f_x(x,y),hat{mathbf i}+f_y(x,y),hat{mathbf j}
&=(3cos 3x cos 3y),hat{mathbf i}−(3sin 3x sin 3y),hat{mathbf j}. end{align*}]

Exercice (PageIndex{2})

Trouver le gradient (vecs ∇f(x,y)) de (f(x,y)=dfrac{x^2−3y^2}{2x+y}).

Indice

Calculez les dérivées partielles, puis utilisez l'équation ef{grad}.

Réponse

(vecs f(x,y)=dfrac{2x^2+2xy+6y^2}{(2x+y)^2},hat{mathbf i}−dfrac{x^2 +12xy+3y^2}{(2x+y)^2},hat{mathbf j})

Le gradient a des propriétés importantes. Nous avons déjà vu une formule qui utilise le gradient : la formule de la dérivée directionnelle. Rappelons de The Dot Product que si l'angle entre deux vecteurs (vecs a) et (vecs b) est (φ), alors (vecs a⋅vecs b=‖vecs a‖ ‖vecs b‖cos φ.) Donc, si l'angle entre (vecs ∇f(x_0,y_0)) et (vecs u=(cosθ),hat{mathbf i}+ (sinθ),hat{mathbf j}) est (φ), on a

[D_{vecs u}f(x_0,y_0)=vecs f(x_0,y_0)⋅vecs u=|vecs ∇f(x_0,y_0)|‖vecs u‖cos φ =|vecs f(x_0,y_0)|cos .]

Le (‖vecs u‖) disparaît car (vecs u) est un vecteur unitaire. Par conséquent, la dérivée directionnelle est égale à l'amplitude du gradient évalué à ((x_0,y_0)) multiplié par (cos φ). Rappelons que (cos φ) va de (−1) à (1).

Si (φ=0,) alors (cos φ=1) et (vecs ∇f(x_0,y_0)) et (vecs u) pointent tous les deux dans la même direction.

Si (φ=π), alors (cos φ=−1) et (vecs ∇f(x_0,y_0)) et (vecs u) pointent dans des directions opposées.

Dans le premier cas, la valeur de (D_{vecs u}f(x_0,y_0)) est maximisée ; dans le second cas, la valeur de (D_{vecs u}f(x_0,y_0)) est minimisée.

On voit aussi que si (vecs ∇f(x_0,y_0)=vecs 0), alors

[ D_{vecs u}f(x_0,y_0)=vecs ∇f(x_0,y_0)⋅vecs u=0]

pour tout vecteur (vecs u). Ces trois cas sont décrits dans le théorème suivant.

Propriétés du dégradé

Supposons que la fonction (z=f(x,y)) soit dérivable en ((x_0,y_0)) (Figure (PageIndex{3})).

  1. Si (vecs ∇f(x_0,y_0)=vecs 0), alors (D_{vecs u}f(x_0,y_0)=0) pour tout vecteur unitaire (vecs u).
  2. Si (vecs ∇f(x_0,y_0)≠ vecs 0), alors (D_{vecs u}f(x_0,y_0)) est maximisé lorsque (vecs u) pointe dans la même direction que (vecs ∇f(x_0,y_0)). La valeur maximale de (D_{vecs u}f(x_0,y_0)) est (|vecs ∇f(x_0,y_0)|).
  3. Si (vecs f(x_0,y_0)≠vecs 0), alors (D_{vecs u}f(x_0,y_0)) est minimisé lorsque (vecs u) pointe dans la direction opposée à (vecs ∇f(x_0,y_0)). La valeur minimale de (D_{vecs u}f(x_0,y_0)) est (−|vecs ∇f(x_0,y_0)|).

Exemple (PageIndex{4}) : Recherche d'une dérivée directionnelle maximale

Trouvez la direction pour laquelle la dérivée directionnelle de (f(x,y)=3x^2−4xy+2y^2) à ((−2,3)) est un maximum. Quelle est la valeur maximale ?

Solution

La valeur maximale de la dérivée directionnelle se produit lorsque (vecs ∇f) et le vecteur unitaire pointent dans la même direction. On commence donc par calculer (vecs ∇f(x,y)) :

[f_x(x,y)=6x−4y ; ext{et}; f_y(x,y)=−4x+4y onumber]

alors

[vecs ∇f(x,y)=f_x(x,y),hat{mathbf i}+f_y(x,y),hat{mathbf j}=(6x−4y) ,hat{mathbf i}+(−4x+4y),hat{mathbf j}. pas de numéro]

Ensuite, nous évaluons le gradient à ((−2,3)):

[vecs f(−2,3)=(6(−2)−4(3)),hat{mathbf i}+(−4(−2)+4(3)), hat{mathbf j}=−24,hat{mathbf i}+20,hat{mathbf j}. pas de numéro]

Nous devons trouver un vecteur unitaire qui pointe dans la même direction que (vecs ∇f(−2,3),) donc la prochaine étape consiste à diviser (vecs ∇f(−2,3)) par sa magnitude, qui est (sqrt{(−24)^2+(20)^2}=sqrt{976}=4sqrt{61}). Donc,

[dfrac{vecs f(−2,3)}{|vecs ∇f(−2,3)|}=dfrac{−24}{4sqrt{61}}i+dfrac {20}{4sqrt{61}}j=−dfrac{6sqrt{61}}{61},hat{mathbf i}+dfrac{5sqrt{61}}{61} ,hat{mathbf j}. pas de numéro]

C'est le vecteur unitaire qui pointe dans la même direction que (vecs ∇f(−2,3).) Pour trouver l'angle correspondant à ce vecteur unitaire, on résout les équations

[cos θ=dfrac{−6sqrt{61}}{61}; ext{et}; sin θ=dfrac{5sqrt{61}}{61} onumber]

pour (θ). Puisque le cosinus est négatif et le sinus est positif, l'angle doit être dans le deuxième quadrant. Par conséquent, (θ=π−arcsin((5sqrt{61})/61)≈2.45) rad.

La valeur maximale de la dérivée directionnelle à ((−2,3)) est (|vecs ∇f(−2,3)|=4sqrt{61}) (Figure (PageIndex {4})).

Exercice (PageIndex{3})

Trouvez la direction pour laquelle la dérivée directionnelle de (g(x,y)=4x−xy+2y^2) à ((−2,3)) est un maximum. Quelle est la valeur maximale ?

Indice

Évaluer le gradient de (g) au point ((−2,3)).

Réponse

Le gradient de (g) à ((−2,3)) est (vecs ∇g(−2,3)=,hat{mathbf i}+14,hat{ mathbf j}). Le vecteur unitaire qui pointe dans la même direction que (vecs ∇g(−2,3)) est

[dfrac{vecs g(−2,3)}{|vecs g(−2,3)|}=dfrac{1}{sqrt{197}},hat{ mathbf i}+dfrac{14}{sqrt{197}},hat{mathbf j}=dfrac{sqrt{197}}{197},hat{mathbf i}+ dfrac{14sqrt{197}}{197},hat{mathbf j}, onumber]

ce qui donne un angle de (θ=arcsin ((14sqrt{197})/197)≈1.499) rad.

La valeur maximale de la dérivée directionnelle est (|vecs ∇g(−2,3)|=sqrt{197}).

La figure (PageIndex{5}) montre une partie du graphique de la fonction (f(x,y)=3+sin x sin y). Étant donné un point ((a,b)) dans le domaine de (f), la valeur maximale de la dérivée directionnelle en ce point est donnée par (|vecs f(a,b)| ). Cela équivaudrait au taux de plus grande ascension si la surface représentait une carte topographique. Si nous allions dans la direction opposée, ce serait le taux de descente le plus élevé.

Lors de l'utilisation d'une carte topographique, la pente la plus raide est toujours dans la direction où les courbes de niveau sont les plus proches (Figure (PageIndex{6})). Ceci est analogue à la carte de contour d'une fonction, en supposant que les courbes de niveau sont obtenues pour des valeurs également espacées sur toute la plage de cette fonction.

Dégradés et courbes de niveau

Rappelons que si une courbe est définie paramétriquement par le couple de fonctions ((x(t),y(t)),) alors le vecteur (x′(t),hat{mathbf i}+y′ (t),hat{mathbf j}) est tangente à la courbe pour chaque valeur de (t) dans le domaine. Supposons maintenant que (z=f(x,y)) est une fonction différentiable de (x) et (y), et ((x_0,y_0)) est dans son domaine. Supposons en outre que (x_0=x(t_0)) et (y_0=y(t_0)) pour une certaine valeur de (t), et considérons la courbe de niveau (f(x,y)=k ). Définir (g(t)=f(x(t),y(t))) et calculer (g′(t)) sur la courbe de niveau. Par la règle de la chaîne,

[g′(t)=f_x(x(t),y(t))x′(t)+f_y(x(t),y(t))y′(t).]

Mais (g′(t)=0) car (g(t)=k) pour tout (t). Par conséquent, d'une part,

[f_x(x(t),y(t))x′(t)+f_y(x(t),y(t))y′(t)=0;]

d'autre part,

[f_x(x(t),y(t))x′(t)+f_y(x(t),y(t))y′(t)=vecs f(x,y)⋅⟨x (t),y′(t)⟩.]

Donc,

[vecs f(x,y)⋅⟨x′(t),y′(t)⟩=0.]

Ainsi, le produit scalaire de ces vecteurs est égal à zéro, ce qui implique qu'ils sont orthogonaux. Cependant, le deuxième vecteur est tangent à la courbe de niveau, ce qui implique que la pente doit être normale à la courbe de niveau, ce qui donne lieu au théorème suivant.

Le gradient est normal à la courbe de niveau

Supposons que la fonction (z=f(x,y)) ait des dérivées partielles du premier ordre continues dans un disque ouvert centré en un point ((x_0,y_0)). Si (vecs ∇f(x_0,y_0)≠0), alors (vecs ∇f(x_0,y_0)) est normal à la courbe de niveau de (f) à ((x_0,y_0 ).)

Nous pouvons utiliser ce théorème pour trouver des vecteurs tangents et normaux aux courbes de niveau d'une fonction.

Exemple (PageIndex{5}) : Recherche de tangentes aux courbes de niveau

Pour la fonction (f(x,y)=2x^2−3xy+8y^2+2x−4y+4,) trouver un vecteur tangent à la courbe de niveau au point ((−2,1)) . Tracez la courbe de niveau correspondant à (f(x,y)=18) et tracez (vecs ∇f(−2,1)) et un vecteur tangent.

Solution

Tout d'abord, nous devons calculer (vecs ∇f(x,y):)

[f_x(x,y)=4x−3y+2 ; ext{et}; f_y=−3x+16y−4 ; ext{so}; vecs ∇f(x,y)=(4x−3y+2),hat{mathbf i}+(−3x+16y−4),hat{mathbf j}. onumber]

Ensuite, nous évaluons (vecs ∇f(x,y)) à ((−2,1):)

[vecs ∇f(−2,1)=(4(−2)−3(1)+2),hat{mathbf i}+(−3(−2)+16(1)− 4),hat{mathbf j}=−9,hat{mathbf i}+18,hat{mathbf j}. onumber]

Ce vecteur est orthogonal à la courbe au point ((−2,1)). Nous pouvons obtenir un vecteur tangent en inversant les composantes et en multipliant l'une par (−1). Ainsi, par exemple, (−18,hat{mathbf i}−9,hat{mathbf j}) est un vecteur tangent (Figure (PageIndex{7})).

Exercice (PageIndex{4})

Pour la fonction (f(x,y)=x^2−2xy+5y^2+3x−2y+3), trouvez la tangente à la courbe de niveau au point ((1,1)). Tracez le graphe de la courbe de niveau correspondant à (f(x,y)=8) et tracez (vecs ∇f(1,1)) et un vecteur tangent.

Indice

Calculez la pente au point ((1,1)).

Réponse

(vecs f(x,y)=(2x−2y+3),hat{mathbf i}+(−2x+10y−2),hat{mathbf j})

(vecs f(1,1)=3,hat{mathbf i}+6,hat{mathbf j})

Vecteur tangent : (6,hat{mathbf i}−3,hat{mathbf j}) ou (−6,hat{mathbf i}+3,hat{ mathbf j})

Gradients tridimensionnels et dérivés directionnels

La définition d'un gradient peut être étendue à des fonctions de plus de deux variables.

Définition : Dégradés en 3D

Soit (w=f(x, y, z)) une fonction de trois variables telles que (f_x, , f_y) et (f_z) existent. Le vecteur (vecs ∇f(x,y,z)) est appelé gradient de (f) et est défini comme

[vecs f(x,y,z)=f_x(x,y,z),hat{mathbf i}+f_y(x,y,z),hat{mathbf j}+ f_z(x,y,z),hat{mathbf k}.label{grad3d}]

(vecs ∇f(x,y,z)) peut aussi s'écrire sous la forme diplômé (f(x,y,z).)

Le calcul du gradient d'une fonction à trois variables est très similaire au calcul du gradient d'une fonction à deux variables. Tout d'abord, nous calculons les dérivées partielles (f_x, , f_y,) et (f_z), puis nous utilisons l'équation ef{grad3d}.

Exemple (PageIndex{6}): Recherche de dégradés en trois dimensions

Trouver le gradient (vecs ∇f(x,y,z)) de chacune des fonctions suivantes :

  1. (f(x,y,z)=5x^2−2xy+y^2−4yz+z^2+3xz)
  2. (f(x,y,z)=e^{−2z}sin 2x cos 2y)

Solution

Pour les deux parties a. et b., on calcule d'abord les dérivées partielles (f_x,f_y,) et (f_z), puis on utilise l'équation ef{grad3d}.

une. (f_x(x,y,z)=10x−2y+3z), (f_y(x,y,z)=−2x+2y−4z), et ( f_z(x,y,z) =3x−4y+2z), donc

[egin{align*} vecs ∇f(x,y,z) &=f_x(x,y,z),hat{mathbf i}+f_y(x,y,z), chapeau{mathbf j}+f_z(x,y,z),hat{mathbf k}
&=(10x−2y+3z),hat{mathbf i}+(−2x+2y−4z),hat{mathbf j}+(3x-4y+2z),hat{ mathbf k}. end{align*}]

b. (f_x(x,y,z) =2e^{−2z}cos 2x cos 2y), ( f_y(x,y,z)=−2e^{−2z} sin 2x sin 2y ), et (f_z(x,y,z)=−2e^{−2z}sin 2x cos 2y), donc

[egin{align*} vecs ∇f(x,y,z) &=f_x(x,y,z),hat{mathbf i}+f_y(x,y,z), chapeau{mathbf j}+f_z(x,y,z),hat{mathbf k} &=(2e^{−2z}cos 2x cos 2y),hat{mathbf i }+(−2e^{−2z} sin 2x sin 2y),hat{mathbf j}+(−2e^{−2z}sin 2x cos 2y),hat{mathbf k } &=2e^{−2z}(cos 2x cos 2y ,hat{mathbf i}−sin 2x sin 2y,hat{mathbf j}−sin 2x cos 2y ,hat{mathbf k}). end{align*}]

Exercice (PageIndex{5}):

Trouver le gradient (vecs ∇f(x,y,z)) de (f(x,y,z)=dfrac{x^2−3y^2+z^2}{2x+y− 4z.})

Réponse

[vecs ∇f(x,y,z)=dfrac{2x^2+2xy+6y^2−8xz−2z^2}{(2x+y−4z)^2},hat{ mathbf i}−dfrac{x^2+12xy+3y^2−24yz+z^2}{(2x+y−4z)^2},hat{mathbf j}+dfrac{4x^2 −12y^2−4z^2+4xz+2yz}{(2x+y−4z)^2},hat{mathbf k} onumber]

La dérivée directionnelle peut également être généralisée aux fonctions de trois variables. Pour déterminer une direction en trois dimensions, un vecteur à trois composantes est nécessaire. Ce vecteur est un vecteur unitaire, et les composantes du vecteur unitaire sont appelées cosinus directionnels. Étant donné un vecteur unitaire tridimensionnel (vecs u) sous forme standard (c'est-à-dire que le point initial est à l'origine), ce vecteur forme trois angles différents avec le positif (x)-, (y) -, et (z)-axes. Appelons ces angles (α,β,) et (γ). Alors les cosinus directionnels sont donnés par (cos α,cos β,) et (cos γ). Ce sont les composantes du vecteur unitaire (vecs u); puisque (vecs u) est un vecteur unitaire, il est vrai que (cos^2 α+cos^2 β+cos^2 γ=1.)

Définition : dérivée directionnelle d'une fonction à trois variables

Supposons que (w=f(x,y,z)) soit une fonction de trois variables avec un domaine de (D). Soit ((x_0,y_0,z_0)∈D) et soit (vecs u=cos α,hat{mathbf i}+cos β,hat{mathbf j}+cos γ,hat{mathbf k}) soit un vecteur unitaire. Alors, la dérivée directionnelle de (f) dans la direction de (u) est donnée par

[D_{vecs u}f(x_0,y_0,z_0)=lim_{t→0}dfrac{f(x_0+t cos α,y_0+tcos β,z_0+tcos γ) −f(x_0,y_0,z_0)}{t}]

pourvu que la limite existe.

Nous pouvons calculer la dérivée directionnelle d'une fonction de trois variables en utilisant le gradient, ce qui conduit à une formule analogue à l'équation ef{DD2v}.

Dérivée directionnelle d'une fonction de trois variables

Soit (f(x,y,z)) une fonction différentiable de trois variables et soit (vecs u=cos α,hat{mathbf i}+cos β,hat{ mathbf j}+cos γ,hat{mathbf k}) soit un vecteur unitaire. Alors, la dérivée directionnelle de (f) dans la direction de (vecs u) est donnée par

[D_{vecs u}f(x,y,z)=vecs f(x,y,z)⋅vecs u=f_x(x,y,z)cos α+f_y(x,y ,z)cos β+f_z(x,y,z)cos γ. label{DDv3}]

Les trois angles (α,β,) et (γ) déterminent le vecteur unitaire (vecs u). En pratique, nous pouvons utiliser un vecteur arbitraire (non unitaire), puis diviser par sa magnitude pour obtenir un vecteur unitaire dans la direction souhaitée.

Exemple (PageIndex{7}): Recherche d'une dérivée directionnelle en trois dimensions

Calculer (D_{vecs v}f(1,−2,3)) dans le sens de (vecs v=−,hat{mathbf i}+2,hat{mathbf j }+2,hat{mathbf k}) pour la fonction

[ f(x,y,z)=5x^2−2xy+y^2−4yz+z^2+3xz. pas de numéro]

Solution:

Tout d'abord, nous trouvons la magnitude de (v):

[‖vecs v‖=sqrt{(−1)^2+(2)^2+(2)^2}=sqrt{9}=3. pas de numéro]

Donc, (dfrac{vecs v}{‖vecs v‖}=dfrac{−hat{mathbf i}+2,hat{mathbf j}+2,hat{mathbf k}}{3}=−dfrac{1}{3},hat{mathbf i}+dfrac{2}{3},hat{mathbf j}+dfrac{2}{ 3},hat{mathbf k}) est un vecteur unitaire dans la direction de (vecs v), donc (cos α=−dfrac{1}{3},cos β= dfrac{2}{3},) et (cos γ=dfrac{2}{3}). Ensuite, nous calculons les dérivées partielles de (f):

[egin{align*} f_x(x,y,z) &=10x−2y+3z
f_y(x,y,z) &=−2x+2y−4z
f_z(x,y,z) &=−4y+2z+3x, end{align*} ]

puis remplacez-les dans l'équation ef{DDv3} :

[egin{align*} D_{vecs v}f(x,y,z) &=f_x(x,y,z)cos α+f_y(x,y,z)cos β+f_z( x,y,z)cos
&=(10x−2y+3z)(−dfrac{1}{3})+(−2x+2y−4z)(dfrac{2}{3})+(−4y+2z+3x)( dfrac{2}{3})
&=−dfrac{10x}{3}+dfrac{2y}{3}−dfrac{3z}{3}−dfrac{4x}{3}+dfrac{4y}{3}−dfrac {8z}{3}−dfrac{8y}{3}+dfrac{4z}{3}+dfrac{6x}{3}
&=−dfrac{8x}{3}−dfrac{2y}{3}−dfrac{7z}{3}. end{align*}]

Enfin, pour trouver (D_{vecs v}f(1,−2,3),) nous substituons (x=1,, y=−2), et (z=3:)

[egin{align*} D_{vecs v}f(1,−2,3) &=−dfrac{8(1)}{3}−dfrac{2(−2)}{3} −dfrac{7(3)}{3}
&=−dfrac{8}{3}+dfrac{4}{3}−dfrac{21}{3}
&=−dfrac{25}{3}. end{align*}]

Exercice (PageIndex{6}):

Calculer (D_{vecs v}f(x,y,z)) et (D_{vecs v}f(0,−2,5)) dans la direction de (vecs v=− 3,hat{mathbf i}+12,hat{mathbf j}−4,hat{mathbf k}) pour la fonction

[f(x,y,z)=3x^2+xy−2y^2+4yz−z^2+2xz. onumber ]

Indice

Tout d'abord, divisez (vecs v) par sa grandeur, calculez les dérivées partielles de (f), puis utilisez l'équation ef{DDv3}.

Réponse

(D_{vecs v}f(x,y,z)=−dfrac{3}{13}(6x+y+2z)+dfrac{12}{13}(x−4y+4z)− dfrac{4}{13}(2x+4y−2z))

(D_{vecs v}f(0,−2,5)=dfrac{384}{13})

Résumé

  • Une dérivée directionnelle représente un taux de changement d'une fonction dans une direction donnée.
  • Le gradient peut être utilisé dans une formule pour calculer la dérivée directionnelle.
  • Le gradient indique la direction du plus grand changement d'une fonction de plus d'une variable.

Équations clés

  • dérivée directionnelle (deux dimensions) [D_{vecs u}f(a,b)=lim_{h→0}dfrac{f(a+hcos ,b+hsin θ)−f(a,b)}{ h} onumber ] ou [D_{vecs u}f(x,y)=f_x(x,y)cos θ+f_y(x,y)sin onumber ]
  • dégradé (deux dimensions) [vecs ∇f(x,y)=f_x(x,y),hat{mathbf i}+f_y(x,y),hat{mathbf j} onumber ]
  • dégradé (trois dimensions) [vecs f(x,y,z)=f_x(x,y,z),hat{mathbf i}+f_y(x,y,z),hat{mathbf j}+ f_z(x,y,z),hat{mathbf k} onumber ]
  • dérivée directionnelle (trois dimensions) [D_{vecs u}f(x,y,z)=vecs f(x,y,z)⋅vecs u=f_x(x,y,z)cos α+f_y(x,y ,z)cos β+f_x(x,y,z)cos γ onumber ]

Glossaire

dérivée directionnelle

la dérivée d'une fonction dans la direction d'un vecteur unitaire donné

pente

le gradient de la fonction (f(x,y)) est défini comme étant (vecs f(x,y)=(∂f/∂x),hat{mathbf i}+(∂ f/∂y),hat{mathbf j},) qui peut être généralisé à une fonction d'un nombre quelconque de variables indépendantes


Dérivées directionnelles et gradient

Étant donné une surface de la forme z = f(x,y) et un vecteur unitaire à deux dimensions vous, la dérivée directionnelle est le taux de variation de F en direction de vous. C'est aussi la pente de la tangente de la courbe formée par l'intersection de la surface avec le plan passant par vous qui est perpendiculaire au xy avion.
Nous utilisons z = 2-x 2 -y 2 , le point (0.5,0.5), et le vecteur (1,1) pour illustrer cela.
Afficher la surface.

On utilise la pointe (0.5,0.5). Notez que f(0,5,0,5) = 2-(0,5) 2 -(0,5) 2 = 1,5.
Point de vue.

Le gradient est la direction dans laquelle la pente d'une ligne tangente à la surface aura la plus grande valeur absolue. Le gradient est défini comme FXje + fouij. Pour notre exemple, le gradient est -2xje - 2 ansj. Évaluer cela à (x,y)=(0,5,0,5), on a -je - j. Ainsi une ligne tangente à la surface z = f(x,y) = 2-x 2 -y 2 dans la direction -je - j aura la plus grande pente possible en valeur absolue.
Afficher le dégradé.

Nous voulons connaître le taux de changement de F dans la direction (1,1). Pour en faire un vecteur unitaire, on divise par la longueur de (1,1), à savoir sqrt(1 2 +1 2 ) = sqrt(2). Ainsi vous = (1/carré(2),1/carré(2)).
Voir le vecteur.

On considère ensuite le plan perpendiculaire au xy plan, est parallèle à vous, et passe par (0.5,0.5).
Voir l'avion.

Ce plan coupe la surface F dans une courbe. La paramétrisation de cette courbe est (t,t,2-t 2 -t 2 ) puisque x = y où le plan coupe le xy avion.
Voir la courbe.

La tangente à cette courbe est la dérivée de la courbe, à savoir (1,1,-2t). Laisser t = 0,5 pour trouver la tangente au point (0.5,0.5,1.5). On obtient que le vecteur tangent est (1,1,-1).
Voir Tangente.

La dérivée directionnelle donne la pente de la ligne tangente. La dérivée directionnelle est le produit scalaire du gradient de F et vous. Le dégradé est FXje + fouij, ce qui dans notre cas est -2xje - 2 ansj. Remplacer x = 0,5 et y = 0,5 pour obtenir -je -j. Ensuite, le produit scalaire avec vous est -1*1/sqrt(2) - 1*1/sqrt(2) = -sqrt(2). Ainsi la pente est d'environ -1,4.

Le gradient et la dérivée directionnelle sont expliqués dans le livre Calcul une et plusieurs variables par Salas/Hille/Etgen 8e édition Sections 15.1 et 15.2 pages 871-890.


Dérivé directionnel et vecteur de gradient

Règle de chaîne de mélange, règle de produit, détail de l'utilisation de la règle de chaîne :

[f(x,y) = x e^ + y frac f(x,y) = frac (x e^) + 0 egin ff(z) = e^z & g(x) = xy f'(z) = e^z & g'(x) = y end Rightarrow f'( g(x) ) imes g'(x) = e^ fois y]

[f_x = (x)' fois e^ + x fois (e^)' = e^ + x fois y e^ f_y = x^2 e^ + 1 vec = ( cos( frac<2pi> <3>), sin( frac<2pi> <3>) ) = ( -frac<1><2>, frac> <2>) egin D_> & = f_x imes a + f_y imes b & = (e^ + x y e^) imes -frac<1> <2>+ (x^2 e^ + 1) imes frac><2>, soit x=2 y=0 & = (1) imes -frac<1> <2>+ (4 + 1 ) imes frac> <2> & = frac<5sqrt<3>-1> <2>end]

Vecteur de gradient de f

Le (vec) est le vecteur unitaire

Soit (vec) être un nombre quelconque de variables x, y, z, …, ou noté (x_1, x_2, x_3, cdots). On peut aussi écrire la formule sous la forme :

Exemple

Trouver la dérivée directionnelle (D_> f( vec )), pour (f(x,y,z) = sin(yz) + ln(x^2)) en ((1,1,pi)) dans la direction de (vec = langle 1, 1, -1 angle)

[commencer g(x) & = x^2 h(z) & = ln(z) f_x & = h'( g ) cdot g' = frac<2> f_y & = z cos(yz) f_z & = y cos(yz) abla f(x,y,z) & = langle frac<2>, z cos(yz), y cos(yz) angle abla f(1,1,pi) & = langle 2, pi cos(pi) , 1 cos(pi) angle & = langle 2, -pi, -1 angle vec & = langle 1, 1, -1 angle vec & = frac>Vert> = langle frac<1>>, frac<1>>, frac<-1>> angle D_ > f( 1,1,pi ) & = langle 2, -pi, -1 angle cdot langle frac<1>>, frac<1>>, frac<-1>> angle & = frac<2>> + frac<-pi>> + frac<1>> & = frac<3 - pi>> end]

Théorème

La valeur maximale de (D_> f(vec)) est donné par (Vert abla f(vec) Vert) et se produira dans la direction donnée par ( abla f (vec)).

Le vecteur gradient ( abla f(x_0, y_0)) est orthogonal (ou perpendiculaire) à la courbe de niveau f(x,y) = k au point P(x0,y0). De même, le vecteur gradient ( abla f(x_0,y_0,z_0)) est orthogonal à la surface de niveau f(x,y,z)=k au point (x0,y0,z0).


Différence entre gradient et dérivée directionnelle ?

Je ne comprends pas la différence. En fait, je comprends la dérivée directionnelle, mais je ne vois pas en quoi le gradient est différent. What is the gradient, other than a tool to calculate the directional derivative? Why is the gradient a vector? What does a gradient tell us?

What is the gradient, other than a tool to calculate the directional derivative?

You've almost answered your own question there.

A rough informal way to think of the gradient is as a tool that's capable of telling you the directional derivative -- but lequel directional derivative? We haven't specified a direction yet!

Speaking very roughly and very informally:
--the gradient tells you how the function is changing in général or in various directions
--the directional derivative tells you how the function is changing in a specific direction.


Directional derivative: angle trail is descending at

A hiker is going down a hill whose shape is given by z = e^(4-x^2-2y^2). Suppose that the trail the hiker is on follows the path of the steepest descent from the point P(1, 1/2, e^(2.5)). Find the angle the trail is descending at (compared to the horizontal plane).

To find the direction of the steepest descent, I found the gradient which is equal to <fX, foui>

gradient at P = <e^(4-x^2-2y^2)*-2x , e^(4-x^2-2y^2)*-4y>

Plug in the points x = 1 and y = 1/2 (coordinates of p)

gradient at P = <-2e^2.5, -2e^2.5>. This is the direction of the steepest ascent. The direction of the steepest descent is in the direction of <2e^2.5, 2e^2.5 > or the unit vector <1/sqrt(2), 1/sqrt(2) >

But how do I find the angle the trail is descending at?

Baron

Junior Member

magnitude of gradient = sqrt( 4( e^2.5)^2 + 4( e^2.5)^2) = sqrt(8e^5) = 2sqrt(2)*e^(5/2)

but how is the angle of descent the magnitude of the gradient? I know the magnitude of the gradient represents the greatest rate of change of the hill but I don't see the connection between the magnitude of the gradient and the angle.

DrPhil

Senior Member

magnitude of gradient = sqrt( 4( e^2.5)^2 + 4( e^2.5)^2) = sqrt(8e^5) = 2sqrt(2)*e^(5/2)

but how is the angle of descent the magnitude of the gradient? I know the magnitude of the gradient represents the greatest rate of change of the hill but I don't see the connection between the magnitude of the gradient and the angle.

Baron

Junior Member

That makes sense. Because the question is asking for the angle of descent, the tangent of the angle should be equal to the negative slope or the negative magnitude of the gradient so:

tan θ = - 2sqrt(2)*e^(5/2)

θ = arctan( - 2sqrt(2)*e^(5/2))

DrPhil

Senior Member

A hiker is going down a hill whose shape is given by z = e^(4-x^2-2y^2). Suppose that the trail the hiker is on follows the path of the steepest descent from the point P(1, 1/2, e^(2.5)). Find the angle the trail is descending at (compared to the horizontal plane).

To find the direction of the steepest descent, I found the gradient which is equal to <fX, foui>

gradient at P = <e^(4-x^2-2y^2)*-2x , e^(4-x^2-2y^2)*-4y>

Plug in the points x = 1 and y = 1/2 (coordinates of p)

gradient at P = <-2e^2.5, -2e^2.5>. This is the direction of the steepest ascent. The direction of the steepest descent is in the direction of <2e^2.5, 2e^2.5 > or the unit vector <1/sqrt(2), 1/sqrt(2) >

But how do I find the angle the trail is descending at?

I hadn't checked your work yet. I don't like your answer - seems too large. Hmmm - maybe what I don't like is the question! It doesn't make sense that <x,y> are map coordinates and z is an elevation.

(displaystyle displaystyle z = e^ <4-x^2-2y^2>)

(displaystyle displaystyle ln z = 4 - x^2 - 2 y^2)

That is the same as you got - but what does it mean? A gradient must be a dimensionless ratio, such as feet/feet. But x and y in the function don't look like feet, and certainly don't have the same dimensions as z.

Oh well - just treat it as a math problem, ne pas a map problem. I think you are doing ok.

HallsofIvy

Elite Member

DrPhil

Senior Member

SORRY - I should have gone back and corrected that post! I did "fix" my error in a subsequent post.

I treated z(x,y) as the function, so I got the gradient as a vector field in R^2. That is, at every point (x,y) the gradient has a magnitude and an azimuthal angle. At the point (1, 1/2) I agreed with the student that the azimuthal angle would be pi/4. But we wound up with a magnitude of (displaystyle 2 sqrt<2> z ), with (displaystyle z=mathrm e ^<2.5>), which when considered as the slope is precipitous. Do you have any comments on that result?

BTW, I did spend one year working in the UK, and was impressed with how well trained the Brits are in vectors and matrices. But I tried not to pick up the language differences.


As explained by Dima in his answer, you should be familiar with the mathematical concept of gradient in order to better understand the gradient in the field of image processing.

My answer is based on the answer of mevatron to this question.

Here you find a simple initial image of a white disk on a black background:

you can compute an approximation of the gradient of this image. As Dima explained in his answer, you have two component of the gradient, an horizontal and a vertical component.

The following images shows you the horizontal component:

it shows how much the gray levels in your image change in the horizontal direction (it is the direction of positive x, scanning the image from left to right), this change is "encoded" in the grey level of the image of the horizontal component: the mean grey level means no change, the bright levels mean change from a dark value to a bright value, the dark levels mean a change from a bright value to a dark value. So, in the above image you see the brighter value in the left part of the circle because it is in the left part of the initial image that you have the black to white transition that gives you the left edge of the disk similarly, in the above image you see the darker value in the right part of the circle because it is in the right part of the initial image that you have the white to black transition that gives you the right edge of the disk. In the above image, the inner part of the disk and the background are at a mean grey level because there is no change inside the disk and in the background.

We can make analogous observations for the vertical component, it shows how the image change in the vertical direction, i.e. scanning the image from the top to the bottom:

You can now combine the two components in order to get the magnitude of the gradient and the orientation of the gradient.

The following image is the magnitude of the gradient:

Again, in the above image the change in initial image is encoded in the gray level: here you see that white means an high change in the initial image while black means no change at all. So, when you look at the image of the magnitude of the gradient you can say "if the image is bright it means a big change in the initial image if it is dark it means no change or very llittle change".

The following image is the orientation of the gradient:

In the above image the orientation is again encoded as gray levels: you can think at the orientation as the angle of an arrow pointing from the the dark part of the image to the bright part of the image the angle is referred to an xy frame where the x runs from left to right while the y runs from top to bottom. In the above image you see all the grey level from the black (zero degree) to the white (360 degree). We can encode the information with color:

in the above image the information is encode in this way:

red: the angle is between 0 and 90 degree

cyan: the angle is between 90 and 180 degree

green: the angle is between 180 and 270 degree

yellow: the angle is between 270 and 360 degree

Here it is the C++ OpenCV code for producing the above images.

Pay attention to the fact that, for the computation of the orientation, I use the function cv::phase which, as explained in the doc, gives an angle of 0 when both the vertical component and the horizontal component of the gradient are zero that may be convenient but from a mathematical point of view is plainly wrong because when both components are zero the orientation is not defined and the only meaningful value for an orientation kept in a floating-point C++ type is a NaN .

It is plainly wrong because a 0 degree orientation, for example, is already related to an horizontal edge and it cannot be used to represent something else like a region with no edges and so a region where orientation is meaningless.


Examples

For example, if f describes an m -variate d -vector-valued function and x is some point in its domain, then, e.g., with this particular ppform f that describes a scalar-valued bilinear polynomial,

is the Jacobian of that function at that point (which, for this particular scalar -valued function, is its gradient, and it is zero at the origin).

As a related example, the next statements plot the gradients of (a good approximation to) the Franke function at a regular mesh:

Here is the resulting plot.


14.6: Directional Derivatives and the Gradient - Mathematics

The Gradient (also called the Hamilton operator) is a vector operator for any N-dimensional scalar function , where is an N-D vector variable. For example, when , may represent temperature, concentration, or pressure in the 3-D space. The gradient of this N-D function is a vector composed of components for the partial derivatives:

  • The direction of the gradient vector is the direction in the N-D space along which the function increases most rapidly.
  • The magnitude of the gradient is the rate of the increment.

In image processing we only consider 2-D field:

When applied to a 2-D function , this operator produces a vector function:

where and . The direction and magnitude of are respectively

Now we show that increases most rapidly along the direction of and the rate of increment is equal to the magnitude of .

Consider the directional derivative of along an arbitrary direction :

This directional derivative is a function of , defined as the angle between directions and the positive direction of . To find the direction along which is maximized, we let

which is indeed the direction of .

Substituting these into the expression of , we obtain its maximum magnitude,


The Gradient of a Differentiable Function from Rn to R

If $f$ is differentiable at $mathbf$ then the gradient of $f$ at $mathbf$ is defined since the differentiability of a function at a point implies the existence of all directional derivatives of the function at that point (and hence the existence of the partial derivatives at that point).

For example, consider the following function $f : mathbb^3 o mathbb$ defined for all $(x, y, z) in mathbb^3$ by:

Then the partial derivatives of $f$ at an arbitrary point $(x, y, z) in mathbb^3$ are:

Therefore the gradient of $f$ at $(x, y, z)$ is:

Now suppose that $f$ is differentiable at $mathbf$ . Then all of the directional derivatives of $f$ at $mathbf$ exist and we will soon see that in fact for any vector $mathbf in mathbb^n$ we have that:

We will use this property in proving the following theorem which tells us that the maximum rate of change at a point in a differentiable multivariable real-valued function will always be in the direction of the gradient vector at that point.


Mikkelsen and 3D Graphics

Since I wrote this post I've written a new technical paper called "Surface Gradient Based Bump Mapping Framework" which does a better and more complete job describing the following.
All my papers can be found at https://mmikkelsen3d.blogspot.com/p/3d-graphics-papers.html

For those interested in the paper Bump Mapping Unparametrized Surfaces on the GPU
which discusses an alternative method to normal mapping. I thought I'd comment on a few additional variants/use-cases.
For instance listing 2 computes the screen-space derivative of the height value. This can also be achieved using precomputed derivative maps. These texture space derivatives can be transformed to screen-space using the chain rule.

// set bFlipVertDeriv to true when texST has flipped t coordinate
int2 dim dbmap.GetDimensions(dim.x, dim.y)
const float2 dBdUV = dim*(2*dbmap.Sample(sampler, In.texST).xy-1)


// chain rule
const float2 TexDx = ddx(In.texST)
const float2 TexDy = ddy(In.texST)
const float fS = bFlipVertDeriv ? -1 : 1 // resolved compile time
float dBs = dBdUV.x * TexDx.x + fS*dBdUV.y * TexDx.y
float dBt = dBdUV.x * TexDy.x + fS*dBdUV.y * TexDy.y

A demo incl. source is available for download and a method for achieving parallax occ./POM mapping, without tangent space, is described in this post.

The advantage to using derivative maps is a better looking visual during texture magnification especially.
The downside is of course using two channels instead of one. Advantages to either method over conventional normal mapping is of course no precomputed tangent space is needed. There are no tangent space splits in the visible region and the method works whether the surface is tessellated or just a standard triangular model.

I also want to point out that one of the significant observations made in the paper is that the underlying parametrization is irrelevant. What determines Blinn's perturbed normal is the distribution of heights and the shape of the surface. Not how the distribution of heights or the surface are parametrized. This can also be exploited in a domain shader to calculate the new normal when displacement mapping.
To do this the derivative is, again, sampled from a precomputed derivative map. It is then transformed to the corresponding domain space derivative using the chain rule. Finally, the domain space derivatives are used as dBs and dBt in listing 1 where vSigmaS and vSigmaT are replaced with the domain space surface derivatives.


Voir la vidéo: : Directional Derivatives and the Gradient Vector 12 (Décembre 2021).