Полный дифференциал и линейное приближение

Полный дифференциал — это лучшая линейная оценка того, как изменится функция при малом сдвиге сразу по всем переменным.

Полный дифференциал $df = \dfrac{\partial f}{\partial x}\,dx + \dfrac{\partial f}{\partial y}\,dy$ — главная линейная часть приращения функции.

Складываем вклады осей

Если сдвинуться на малые $\Delta x$ и $\Delta y$, приращение $\Delta f$ примерно равно сумме вкладов по каждой оси:

$$\Delta f \approx \frac{\partial f}{\partial x}\Delta x + \frac{\partial f}{\partial y}\Delta y = df$$

Это многомерный аналог $\Delta f \approx f'(x)\Delta x$. Дифференциал — плоскость, касательная к поверхности; он заменяет кривую поверхность плоскостью вблизи точки.

Зачем это нужно

Полный дифференциал — основа теории погрешностей. Если измерены $x$ и $y$ с погрешностями $\Delta x, \Delta y$, то погрешность $f$ оценивается через $df$. Также из него выводится правило дифференцирования сложных функций и понятие касательной плоскости.

Проверяем точность приближения

import math

def f(x, y):
    return x*x + x*y

def fx(x, y):
    return 2*x + y

def fy(x, y):
    return x

x0, y0 = 2.0, 3.0
dx, dy = 0.01, 0.02

df = fx(x0, y0)*dx + fy(x0, y0)*dy        # линейная оценка
delta_real = f(x0+dx, y0+dy) - f(x0, y0)   # истинное приращение

print("Дифференциал df =", round(df, 6))
print("Реальное dF     =", round(delta_real, 6))
print("Ошибка приближ. =", round(abs(delta_real - df), 6))

Вывод:

Дифференциал df = 0.110000
Реальное dF     = 0.110200
Ошибка приближ. = 0.000200

Ошибка крошечная и квадратична по шагу: уменьшив $dx, dy$ вдвое, мы уменьшим её вчетверо.

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

Дифференцируемость — это больше, чем существование частных производных. Функция дифференцируема в точке, если приращение представимо в виде $df + o(\rho)$, где $\rho = \sqrt{\Delta x^2 + \Delta y^2}$ — расстояние сдвига, а остаток стремится к нулю быстрее $\rho$. Существуют коварные функции, у которых частные производные есть, а дифференциала нет (поверхность «излома»). Но для гладких функций всё хорошо.

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

  • Считать $df$ точным значением $\Delta f$ — это лишь приближение, верное для малых сдвигов.
  • Складывать погрешности линейно без учёта знаков (для гарантированной оценки берут модули).
  • Полагать, что наличие частных производных автоматически даёт дифференцируемость.

Итог

  • $df = f_x\,dx + f_y\,dy$ — линейная оценка приращения функции.
  • Ошибка приближения квадратична по размеру шага.
  • Дифференциал — основа теории погрешностей и касательной плоскости.
Проверьте себя
1. Полный дифференциал функции f(x,y) равен…
Af_x·dx − f_y·dy
Bf_x·dx + f_y·dy
Cf_x·f_y
D(f_x + f_y)·dx
2. Как ведёт себя ошибка линейного приближения при уменьшении шага вдвое?
AУменьшается вдвое
BУменьшается примерно вчетверо
CНе меняется
DРастёт