#import "../conf.typ": *

= Достаточные условия дифференцируемости функции нескольких переменных
#definition[
  Пусть $f$ определена в некоторой окрестности $x_0 in RR^n$. *Полным приращением* $f$ в
  точке $x_0$ называется
  #eq[
    $Delta f(x_0) = f(x_0 + Delta x) - f(x_0) = f(x_(0, 1) + Delta x_1, ..., x_(0, n) + Delta x_n) - f(x_(0, 1), ..., x_(0, n))$
  ]
  $f$ называется *дифференцируемой* в $x_0$, если
  #eq[
    $Delta f(x_0) = (A, Delta x) + o(norm(Delta x)), Delta x -> 0$
  ]
  где $A in RR^n$ называется *градиентом*: $"grad" f(x_0) = A$
]

#definition[
  *Дифференциалом* дифференцируемой в $x_0$ функции $f$ назовём выражение $(A, Delta x)$ из
  определения дифференцируемости.
]

#definition[
  *Частной производной* в точке $x_0$ называется предел (если он существует):
  #eq[
    $(partial f) / (partial x_j) (x_0) = lim_(Delta x -> 0) (f(x_(0, 1), ..., x_(0, j) + Delta x, ..., x_(0, n)) - f(x_(0, 1), ..., x_(0, j), ..., x_(0, n))) / (Delta x)$
  ]
]

#theorem(
  "Необходимое условие дифференцируемости",
)[
  Если $f$ дифференцируема в точке $x_0 in RR$, то существуют частные производные $forall j = overline("1,n")$,
  причём
  #eq[
    $"grad" f(x) = ((partial f) / (partial x_1) (x_0), ..., (partial f) / (partial x_n) (x_0))$
  ]
]

#proof[
  Сразу следует из определения - есть предел по всем многомерным приращениям, а
  значит и по однокоординатным в том числе.
]

#theorem(
  "Достаточное условие дифференцируемости",
)[
  Если $f$ определена в некоторой окрестности точки $x_0$, вместе со своими
  частными производными, причём они непрерывны в $x_0$, то $f$ дифференцируема в $x_0$.
]

#proof[
  Воспользуемся $n$ раз "умным нулём", каждый из которых будет "снимать"
  приращение по одной из координат:
  #eq[
    $Delta f(x_0) = \
    f(x_(0, 1) + Delta x_1, ..., x_(0, n) + Delta x_n) - f(x_(0, 1) + Delta x_1, ..., x_(0, n - 1) + Delta x_(n - 1), x_(0, n)) + \
    f(x_(0, 1) + Delta x_1, ..., x_(0, n - 1) + Delta x_(n - 1), x_(0, n)) -
    f(x_(0, 1) + Delta x_1, ..., x_(0, n - 1), x_(0, n)) \ + ... +\
    f(x_(0, 1) + Delta x_1, x_(0, 2), ..., x_(0, n)) - f(x_(0, 1), ..., x_(0,n )) attach(=, t: "<NAME>") \
    (partial f) / (partial x_n) (x_(0, 1) + Delta x_1, ..., x_(0, n - 1) + Delta x_(n - 1), xi_n) Delta x_n + \
    (partial f) / (partial x_(n - 1)) (x_(0, 1) + Delta x_1, ..., x_(0, n - 2) + Delta x_(n - 2), xi_(n - 1), x_(0, n))Delta x_(n - 1) \
    + ... + \
    + (partial f) / (partial x_1) (xi_1, x_(0, 2), ..., x_(0, n)) Delta x_1 attach(=, t: Delta x -> 0 => forall n : xi_n -> 0) \
    sum_(i = 1)^n (partial f) / (partial x_i)(x_0) Delta x_i + o(norm(Delta x)), Delta x -> 0$
  ]
]
