Производная по направлению

Производная по направлению отвечает: с какой скоростью растёт функция, если идти не вдоль оси, а в произвольную сторону.

Производная по направлению $D_{\vec u} f = \nabla f \cdot \hat u$ — скорость изменения $f$ вдоль единичного вектора $\hat u$.

Связь с градиентом

Частные производные — это скорости вдоль осей. А что если идти под углом? Ответ красив: производная по любому направлению $\hat u$ — это проекция градиента на это направление:

$$D_{\vec u} f = \nabla f \cdot \hat u = |\nabla f|\cos\theta$$

где $\theta$ — угол между градиентом и $\hat u$. Отсюда сразу видно:

  • Максимум при $\theta = 0$: идём вдоль градиента, скорость $= |\nabla f|$.
  • Ноль при $\theta = 90^\circ$: идём вдоль линии уровня, функция не меняется.
  • Минимум при $\theta = 180^\circ$: идём против градиента, скорость $= -|\nabla f|$.

Важно: $\hat u$ обязан быть единичным, иначе формула даст неверный масштаб.

Проверка на Python

import math

def grad_f(x, y):
    # f = x^2 + y^2  =>  grad = (2x, 2y)
    return (2*x, 2*y)

def dir_deriv(g, u):
    length = math.hypot(*u)
    uhat = (u[0]/length, u[1]/length)   # нормируем
    return g[0]*uhat[0] + g[1]*uhat[1]

g = grad_f(1.0, 1.0)
print("grad f =", g, " |grad f| =", round(math.hypot(*g), 4))
print("D вдоль (1,1)  =", round(dir_deriv(g, (1, 1)), 4))   # макс
print("D вдоль (1,-1) =", round(dir_deriv(g, (1, -1)), 4))  # вдоль уровня
print("D вдоль (-1,-1)=", round(dir_deriv(g, (-1, -1)), 4))  # мин

Вывод:

grad f = (2.0, 2.0)  |grad f| = 2.8284
D вдоль (1,1)  = 2.8284
D вдоль (1,-1) = 0.0
D вдоль (-1,-1)= -2.8284

Максимум совпал с $|\nabla f|$, вдоль уровня вышел ровно ноль — формула работает.

Как работает под капотом

Производная по направлению — это предел $\lim_{t\to 0} \frac{f(\vec p + t\hat u) - f(\vec p)}{t}$. Подставив разложение Тейлора $f(\vec p + t\hat u) \approx f(\vec p) + t\,\nabla f \cdot \hat u$, получаем именно $\nabla f \cdot \hat u$. Скалярное произведение здесь не случайно: оно как раз и проецирует.

Частые ошибки

  • Не нормировать направление $\vec u$ — тогда скорость окажется завышенной в $|\vec u|$ раз.
  • Забывать знак: вдоль $-\nabla f$ производная отрицательна (функция убывает).
  • Думать, что производная по направлению — вектор. Это число.

Итог

  • $D_{\vec u} f = \nabla f \cdot \hat u$ — проекция градиента на направление.
  • Максимум скорости — вдоль градиента, ноль — вдоль линии уровня.
  • $\hat u$ обязательно единичный, результат — скаляр.
Проверьте себя
1. Производная функции по направлению ∇f равна…
A0
B|∇f| (максимальна)
C−|∇f|
Dне определена
2. Чему равна производная по направлению вдоль линии уровня?
A|∇f|
B0
C1
D−|∇f|
3. Что обязательно нужно сделать с вектором направления перед применением формулы D=∇f·u?
AУдвоить
BНормировать (сделать единичным)
CПовернуть на 90°
DНичего