🔴 Сложный ⏱️ 50 минут

Функции нескольких переменных

📋 Содержание урока

Функции нескольких переменных 🏔️

До сих пор весь курс матанализа крутился вокруг функций одной переменной: $y=f(x)$, один вход — одно число на выходе. Но представь, что ты обучаешь нейросеть и смотришь на её функцию потерь. От чего она зависит? Не от одного числа — от каждого веса каждого слоя, а это могут быть миллионы, а то и миллиарды параметров одновременно. Функция потерь — это $L(w_1, w_2, \dots, w_n)$, и всё, что ты делал раньше с функциями одной переменной, теперь нужно как-то обобщить на этот случай. Сегодняшний урок — это именно такое обобщение, и начнём мы с самого скромного шага: с функции не от миллиона переменных, а всего от двух, $z=f(x,y)$. Это тот минимальный случай, где уже проявляется вся новая геометрия и все новые тонкости, но который ещё можно честно нарисовать и увидеть глазами.

Давай сразу проведём главную параллель, ради которой этот урок вообще стоит того внимания, которое ты ему уделишь. Когда ты видел график функции одной переменной $y=f(x)$, это была линия на плоскости — можно было буквально смотреть на неё и видеть, где функция растёт, где убывает, где у неё минимум. У функции двух переменных $z=f(x,y)$ график — это уже не линия, а целая поверхность в пространстве: холмистый ландшафт с горами, впадинами, седловинами. И вот ключевая мысль: функция потерь нейросети — это ровно такой же ландшафт, только не в трёхмерном, а в невообразимо многомерном пространстве. Когда специалисты по машинному обучению говорят про ландшафт функции потерь, они имеют в виду ровно ту геометрическую картинку, которую мы сегодня научимся строить и читать для функции двух переменных, — просто мысленно растянутую на миллионы измерений, которые нельзя нарисовать, но можно понимать по аналогии с тем, что нарисовать всё-таки можно.

Ты уже видел частный намёк на эту идею в теме рядов Фурье: там функция раскладывалась на простые слагаемые, и результат зависел уже не от одного числа, а от целой последовательности коэффициентов. Функции нескольких переменных идут дальше и делают эту многомерность явной: вместо «функция от одного числа» — «функция от вектора чисел». А раз аргумент теперь не число, а точка на плоскости (или в пространстве, или вообще в $n$-мерном пространстве), нужно заново продумать привычные вещи — что такое область определения, что такое график, что такое предел и непрерывность. Ничего в этих понятиях принципиально не меняется по духу, но геометрия усложняется настолько, что кое-какие интуитивные допущения, которые прекрасно работали для одной переменной, здесь начинают давать сбой — и один из таких коварных сбоев мы разберём отдельно и подробно, на конкретном контрпримере.

А ещё в этом уроке ты впервые встретишь понятие, без которого невозможно представить ни одну статью или лекцию по оптимизации в машинном обучении, — линии уровня. Это именно то, что рисуют на контурных графиках функции потерь: замкнутые кривые, вдоль которых значение функции не меняется, а градиентный спуск всегда движется перпендикулярно им. Понимание того, как выглядят линии уровня для разных типов поверхностей — «чаши», «седла», вытянутого «оврага», — это прямая интуиция для того, почему одни задачи оптимизации решаются легко и быстро, а другие заставляют алгоритм неделями петлять зигзагами по узкому извилистому дну.

История: откуда это взялось?

Функции нескольких переменных возникли в математике не как абстрактная прихоть теоретиков, а как прямой ответ на практические задачи механики и физики XVIII века, где результат почти никогда не зависит только от одной величины. Леонард Эйлер одним из первых начал систематически работать с выражениями вида $f(x,y)$, разрабатывая аппарат для задач гидродинамики и механики твёрдого тела, где скорость течения жидкости или положение точки тела естественным образом зависели сразу от нескольких пространственных координат и от времени. Уже тогда стало ясно, что многие приёмы анализа одной переменной — предел, непрерывность, экстремум — нуждаются в переосмыслении: понятие «подойти к точке слева или справа», прекрасно работавшее на числовой прямой, на плоскости попросту не имеет смысла, потому что подойти к точке можно бесконечным числом различных способов.

Настоящий взрывной рост интереса к функциям многих переменных случился с развитием термодинамики в XIX веке. Такие величины, как давление, объём, температура и энтропия газа, оказались связаны сложными зависимостями — уравнение состояния идеального газа $pV=nRT$ можно переписать как функцию $p=p(V,T)$, и её частные изменения (что будет с давлением, если чуть-чуть изменить объём при фиксированной температуре, и наоборот) стали центральным предметом изучения. Именно из термодинамики выросло понятие поверхности уровня как естественного инструмента: диаграммы состояния вещества, где линии постоянного давления или постоянной температуры рисуют на плоскости других двух переменных, — это прямые исторические предшественники современных контурных графиков функции потерь.

К концу XIX и в XX веке аппарат функций нескольких переменных стал фундаментом для целых новых областей: дифференциальной геометрии (изучение поверхностей и их кривизны через функции $z=f(x,y)$), теории оптимизации (поиск минимумов функций многих переменных — задача, которая веками стояла в экономике и инженерии, а сегодня лежит в сердце каждого алгоритма обучения нейросети) и вариационного исчисления. Сегодняшний урок — это тот самый порог, за которым весь дальнейший курс матанализа перестаёт быть «одномерным»: частные производные, градиент, кратные интегралы — все следующие темы прямо опираются на аппарат, который мы закладываем здесь.

Функция нескольких переменных: определение и область определения

Интуиция: правило с несколькими входами

Давай разберёмся с самой сутью, прежде чем переходить к формальностям. Функция одной переменной — это правило: дал одно число на входе, получил одно число на выходе. Функция нескольких переменных устроена ровно так же, только на входе теперь не одно число, а сразу несколько — упорядоченный набор, который удобно представлять как точку на плоскости $(x,y)$, точку в пространстве $(x,y,z)$ или, в общем случае, вектор $(x_1,x_2,\dots,x_n)$.

Представь, что ты оцениваешь стоимость квартиры. Она зависит не от одного параметра, а сразу от нескольких: площади, этажа, расстояния до метро, года постройки дома. Формально это функция $P(\text{площадь}, \text{этаж}, \text{расстояние}, \text{год})$ — функция четырёх переменных, и хотя её нельзя нарисовать в виде привычного графика, формально это ничем принципиально не отличается от функции двух переменных, кроме количества входов. В машинном обучении та же идея доведена до предела: функция потерь нейросети — это функция от всех её весов одновременно, и единственная причина, по которой мы начинаем с двух переменных, а не с миллиона, — это то, что при $n=2$ ещё можно построить честную геометрическую картинку, на которую можно опираться дальше интуицией даже там, где нарисовать уже ничего нельзя.

Определение

Определение (функция двух переменных). Пусть задано множество $D \subseteq \mathbb{R}^2$. Функцией двух переменных называется правило $f$, которое каждой упорядоченной паре $(x,y) \in D$ ставит в соответствие единственное вещественное число $z=f(x,y)$. Множество $D$ называется областью определения функции, а множество всех значений $z$, которые функция принимает, — областью значений.

Аналогично определяется функция $n$ переменных: правило $f\colon D \to \mathbb{R}$, где $D \subseteq \mathbb{R}^n$, которое каждому набору $(x_1,x_2,\dots,x_n) \in D$ ставит в соответствие число $y=f(x_1,\dots,x_n)$. Функция потерь нейросети $L(w_1,\dots,w_n)$ — это в точности функция $n$ переменных в этом строгом смысле, где $n$ равно числу обучаемых параметров.

Область определения, если она не задана явно, находится по тем же принципам, что и для функции одной переменной: нужно исключить точки, где выражение теряет смысл (деление на ноль, отрицательное подкоренное выражение чётной степени, неположительный аргумент логарифма), — только теперь эти условия задают не набор запрещённых чисел на прямой, а некоторую область на плоскости или в пространстве.

Обрати внимание: слово «область» здесь не случайно — для функции двух переменных область определения, как правило, оказывается целой геометрической фигурой на плоскости $Oxy$ (кругом, полуплоскостью, полосой), а не просто набором отдельных точек, как это часто бывало для функции одной переменной.

Разбор примеров

Пример 1 (лёгкий). Найти область определения функции $f(x,y)=\sqrt{9-x^2-y^2}$.

Подкоренное выражение должно быть неотрицательным: $9-x^2-y^2 \ge 0$, то есть $x^2+y^2 \le 9$. Это множество точек плоскости, расстояние которых до начала координат не превышает $3$.

Ответ: $D=\{(x,y)\colon x^2+y^2\le9\}$ — замкнутый круг радиуса $3$ с центром в начале координат.

Пример 2 (средний). Найти область определения функции $f(x,y)=\dfrac{\ln(x+y-1)}{\sqrt{4-x^2-y^2}}$.

Здесь два условия сразу, и оба должны выполняться одновременно. Для логарифма в числителе нужно $x+y-1>0$, то есть $x+y>1$ — открытая полуплоскость выше прямой $x+y=1$. Для корня в знаменателе нужно $4-x^2-y^2>0$ (строгое неравенство, поскольку знаменатель дроби не может обращаться в ноль), то есть $x^2+y^2<4$ — открытый круг радиуса $2$.

Ответ: $D=\{(x,y)\colon x+y>1,\ x^2+y^2<4\}$ — пересечение полуплоскости и открытого круга, то есть «серпообразный» кусок круга, отрезанный прямой.

Пример 3 (сложный, машинное обучение и статистика). Функция логарифмического правдоподобия для одного наблюдения $x$ из нормального распределения с параметрами $\mu$ (среднее) и $\sigma$ (стандартное отклонение) задаётся формулой

$$\ell(\mu,\sigma) = -\ln\sigma - \frac12\ln(2\pi) - \frac{(x-\mu)^2}{2\sigma^2}$$

Найти область определения этой функции как функции двух переменных $\mu$ и $\sigma$.

Формально в выражении встречаются $\ln\sigma$ (требует $\sigma>0$) и деление на $\sigma^2$ (требует $\sigma\ne0$, но это уже покрыто первым условием). Переменная $\mu$ входит в выражение только через многочлен $(x-\mu)^2$, который определён при любом вещественном $\mu$ без всяких ограничений.

Ответ: $D=\{(\mu,\sigma)\colon \mu\in\mathbb{R},\ \sigma>0\}$ — открытая верхняя полуплоскость (относительно оси $\sigma$). Это не просто формальность: стандартное отклонение $\sigma$ физически обязано быть положительным числом, и то, что математическое условие «логарифм определён только для положительных чисел» ровно совпадает со статистическим требованием «дисперсия положительна», — не случайное совпадение, а иллюстрация того, что область определения функции часто напрямую кодирует содержательные ограничения задачи, а не только формальные требования к арифметике.

Почему это важно

Область определения функции нескольких переменных — это не техническая деталь для галочки, а первое, что нужно продумать перед любым дальнейшим анализом: где вообще эта функция имеет смысл, откуда и куда можно двигаться, исследуя её поведение. В машинном обучении область определения часто оказывается ограничением на допустимые значения параметров модели — например, требование положительности дисперсии, требование, чтобы вероятности лежали в интервале $(0,1)$, или требование, чтобы веса в определённой параметризации не выходили за границы, при которых модель вообще определена. Понимание того, где функция потерь корректно определена, а где — нет, это тот самый первый шаг, без которого бессмысленно даже задавать вопрос о минимуме или градиенте.

Геометрическая интерпретация: график как поверхность в пространстве

Интуиция: от линии к ландшафту

Давай разберёмся, что происходит с графиком, когда переменная становится не одной, а двумя. График функции одной переменной $y=f(x)$ — это множество точек $(x,f(x))$ на плоскости, то есть кривая линия. Для функции двух переменных естественный шаг — рассматривать множество точек $(x,y,f(x,y))$ в трёхмерном пространстве: каждой точке $(x,y)$ из области определения ставится в соответствие точка над ней (или под ней) на высоте $z=f(x,y)$. Результат — уже не линия, а поверхность: холмистый ландшафт, где $z$ играет роль высоты.

Представь, что ты стоишь на равнине и смотришь на гору. Функция $z=f(x,y)$ — это в точности функция высоты рельефа: $x$ и $y$ — это твои координаты «на карте» (север-юг, запад-восток), а $z$ — высота над уровнем моря в этой точке. Именно поэтому выражение «ландшафт функции» — не просто красивая метафора, а буквальное геометрическое описание: график функции двух переменных и есть ландшафт в самом прямом смысле слова.

Определение

Определение (график функции двух переменных). Графиком функции $z=f(x,y)$ с областью определения $D$ называется множество точек трёхмерного пространства

$$\Gamma_f = \{(x,y,z) \in \mathbb{R}^3 \colon (x,y)\in D,\ z=f(x,y)\}$$

Это множество, как правило, представляет собой поверхность в пространстве $\mathbb{R}^3$.

Для функции трёх переменных $w=f(x,y,z)$ аналог графика — множество точек четырёхмерного пространства $(x,y,z,w)$ — уже невозможно ни нарисовать, ни представить напрямую: при $n\ge3$ переменных график живёт в пространстве размерности $n+1\ge4$, недоступном прямому зрительному восприятию. Именно поэтому функция двух переменных — это граничный, последний случай, где геометрическая интуиция ещё полностью доступна глазу.

Разбор примеров

Пример 1 (лёгкий). Описать геометрически график функции $z=x^2+y^2$.

Зафиксируем произвольную высоту $c>0$ и посмотрим, какая кривая получится в сечении плоскостью $z=c$: это $x^2+y^2=c$ — окружность радиуса $\sqrt{c}$. При $c=0$ сечение вырождается в единственную точку $(0,0)$ — вершину. При $c<0$ сечений вовсе нет, поскольку $x^2+y^2\ge0$ всегда.

Ответ: график — параболоид вращения (круглая «чаша»), с вершиной (минимумом) в начале координат и неограниченным ростом высоты во все стороны. Это простейший и самый частый пример поверхности с единственным минимумом, к которому и стремится любой разумный алгоритм оптимизации.

Пример 2 (средний). Описать геометрически график функции $z=x^2-y^2$.

В сечении плоскостью $y=0$: $z=x^2$ — обычная парабола, направленная вверх, с минимумом в начале координат при движении вдоль оси $x$. В сечении плоскостью $x=0$: $z=-y^2$ — парабола, направленная вниз, с максимумом в начале координат при движении вдоль оси $y$.

Ответ: график — гиперболический параболоид, в народе называемый «седлом»: в одном направлении поверхность выгибается вверх, в перпендикулярном направлении — вниз, и в самой точке $(0,0,0)$ нет ни минимума, ни максимума — это седловая точка. Такие точки крайне важны в оптимизации: там градиент функции равен нулю (поверхность «плоская» в этом смысле в одной конкретной точке), но это вовсе не означает, что найден минимум.

Пример 3 (сложный, машинное обучение). Пусть простейшая модель линейной регрессии с двумя весами $w_1,w_2$ и функцией потерь среднего квадрата ошибки на некотором наборе данных имеет вид $L(w_1,w_2)=3w_1^2+w_2^2-2w_1w_2$. Определить геометрический тип поверхности этого ландшафта функции потерь и оценить, есть ли у неё единственный минимум.

Перепишем выражение, выделив полный квадрат по переменной $w_1$:

$$L(w_1,w_2) = 3\left(w_1-\frac{w_2}{3}\right)^2 + w_2^2-\frac{w_2^2}{3} = 3\left(w_1-\frac{w_2}{3}\right)^2+\frac{2w_2^2}{3}$$

Оба слагаемых — неотрицательные квадраты с положительными коэффициентами, и оба одновременно обращаются в ноль только при $w_2=0$ и $w_1=0$.

Ответ: это эллиптический параболоид (наклонённая «чаша», оси которой не совпадают с осями $w_1,w_2$, что видно из смешанного слагаемого $-2w_1w_2$ в исходной записи) с единственным минимумом $L(0,0)=0$ в начале координат. Такая форма ландшафта — типичный «хороший случай» для градиентного спуска: какой бы точки на поверхности алгоритм ни коснулся, спуск вдоль градиента рано или поздно приведёт его в единственную низшую точку, хотя, как мы увидим в разделе про линии уровня, наклон осей эллипса всё же способен заметно замедлить сходимость.

Почему это важно

Геометрическая интерпретация графика как поверхности — это не просто красивая картинка для учебника: именно она стоит за интуицией всей теории оптимизации в машинном обучении. Когда говорят, что нейросеть «застряла в локальном минимуме» или «попала в седловую точку», это буквальное геометрическое утверждение про форму многомерного ландшафта функции потерь — только представить его целиком невозможно (слишком много измерений), а вот двумерный аналог, который мы разобрали в этом разделе, полностью нагляден и передаёт ту же самую геометрию: чаши, сёдла, овраги — весь этот словарь заимствован напрямую из того, что можно увидеть глазами именно для функции двух переменных.

Линии уровня и поверхности уровня

Интуиция: топографическая карта

Давай разберёмся с инструментом, который используют, чтобы описать трёхмерную поверхность двумерным рисунком, — линиями уровня. Представь топографическую карту в походном атласе: горы на ней изображены не как трёхмерная модель, а как система замкнутых кривых, каждая из которых соответствует одной и той же высоте. Двигаясь вдоль такой кривой, ты остаёшься на постоянной высоте; чем ближе друг к другу нарисованы соседние кривые, тем круче склон в этом месте.

Ровно ту же самую идею применяют к любой функции двух переменных $z=f(x,y)$: фиксируют конкретное значение $c$ и находят все точки $(x,y)$, для которых $f(x,y)=c$. Получившаяся кривая на плоскости $Oxy$ называется линией уровня. Набор линий уровня для разных значений $c$ — это в точности контурный график, который ты наверняка видел в статьях про градиентный спуск: система вложенных овалов, показывающая, как устроена «чаша» или «овраг» функции потерь, если посмотреть на неё сверху.

Определение

Определение (линия уровня). Линией уровня функции $z=f(x,y)$, соответствующей значению $c$, называется множество точек плоскости

$$\{(x,y) \in D \colon f(x,y)=c\}$$

На всех точках одной линии уровня функция принимает одно и то же значение $c$; линии уровня, соответствующие разным значениям $c$, никогда не пересекаются (иначе в точке пересечения функция принимала бы сразу два разных значения, что противоречит самому определению функции).

Для функции трёх переменных $w=f(x,y,z)$ аналогичную роль играет поверхность уровня — множество точек пространства $\{(x,y,z) \colon f(x,y,z)=c\}$: не кривая на плоскости, а целая поверхность в пространстве.

Разбор примеров

Пример 1 (лёгкий). Найти линии уровня функции $f(x,y)=x^2+y^2$ при $c=1,4,9$.

При каждом значении $c>0$ уравнение $x^2+y^2=c$ задаёт окружность радиуса $\sqrt{c}$ с центром в начале координат.

Ответ: при $c=1$ — окружность радиуса $1$, при $c=4$ — окружность радиуса $2$, при $c=9$ — окружность радиуса $3$. Все линии уровня — концентрические окружности, что полностью согласуется с геометрическим образом кругового параболоида из предыдущего раздела: чем выше поднимаешься по «чаше», тем больше радиус окружности сечения.

Пример 2 (средний). Найти и описать линии уровня функции $f(x,y)=xy$.

При $c\ne0$ уравнение $xy=c$ равносильно $y=\dfrac{c}{x}$ — это гипербола, расположенная в первой и третьей координатных четвертях при $c>0$ и во второй и четвёртой при $c<0$. При $c=0$ уравнение $xy=0$ распадается на объединение двух координатных осей — это вырожденный случай, отдельный от «типичных» гипербол.

Ответ: линии уровня — семейство гипербол с асимптотами вдоль осей координат (при $c=0$ — сами оси). Такая картина линий уровня характерна для седловых поверхностей.

Пример 3 (сложный, машинное обучение). Функция потерь двух весов задана как $L(w_1,w_2)=w_1^2+10w_2^2$. Найти линии уровня и объяснить, что эта геометрия говорит о поведении градиентного спуска с фиксированным шагом обучения.

Уравнение линии уровня $w_1^2+10w_2^2=c$ (при $c>0$) можно переписать как $\dfrac{w_1^2}{c}+\dfrac{w_2^2}{c/10}=1$ — это уравнение эллипса с полуосью $\sqrt{c}$ вдоль оси $w_1$ и полуосью $\sqrt{c/10}$ вдоль оси $w_2$. Поскольку $\sqrt{c/10}\ll\sqrt{c}$, эллипс сильно вытянут вдоль оси $w_1$ и заметно сжат вдоль оси $w_2$.

Ответ: линии уровня — сильно вытянутые эллипсы, что говорит об очень разной кривизне ландшафта вдоль двух направлений: вдоль $w_2$ функция растёт в десять раз «круче», чем вдоль $w_1$. Это классический пример плохо обусловленного ландшафта функции потерь: градиентный спуск с единым шагом обучения для обоих весов будет резко колебаться (зигзагом) в узком «овраге» вдоль оси $w_2$, вместо того чтобы плавно и быстро двигаться к минимуму вдоль пологого направления $w_1$. Именно эта геометрическая картина стоит за причинами, по которым в реальном обучении нейросетей используют не простой градиентный спуск, а более продвинутые методы (момент, адаптивный шаг обучения для каждого параметра), компенсирующие именно такую вытянутость линий уровня.

Почему это важно

Линии и поверхности уровня — это не вспомогательный чертёжный приём, а полноценный самостоятельный язык описания функции нескольких переменных, который особенно ценен именно тогда, когда полный трёхмерный график нарисовать либо неудобно, либо (при трёх и более переменных) вовсе невозможно. Контурные графики функции потерь, которые встречаются в любой статье про оптимизацию нейросетей, — это линии уровня в чистом виде, и умение читать их (по форме линий уровня определять, где ландшафт крутой, где пологий, где вытянутый овраг, а где идеально круглая чаша) — практический навык, напрямую переносимый в анализ реальных задач обучения моделей.

Предел и непрерывность функции нескольких переменных

Интуиция: подойти к точке можно бесконечным числом способов

Давай разберёмся с самой тонкой темой этого урока. Для функции одной переменной предел в точке $x_0$ означал, что нужно проверить приближение к этой точке ровно с двух сторон — слева и справа, и если оба односторонних предела совпадают, предел существует. На плоскости всё устроено принципиально сложнее: к точке $(x_0,y_0)$ можно приближаться не с двух сторон, а бесконечным числом различных способов — по прямой, по параболе, по спирали, по абсолютно любой кривой, проходящей через эту точку. Предел функции в точке $(x_0,y_0)$ существует и равен $L$ только тогда, когда, каким бы путём ты к этой точке ни подходил, значение функции всегда стремится к одному и тому же числу $L$.

Именно здесь кроется самая коварная ловушка всей темы: очень заманчиво проверить предел только вдоль прямых линий, проходящих через точку, убедиться, что для всех них получается одно и то же число, и сделать вывод, что предел существует. Но прямых — это лишь одно (хотя и бесконечное) семейство путей среди бесконечного множества всех возможных кривых, и существуют функции, для которых предел по любой прямой совпадает, а по какой-то другой кривой (например, параболе) — отличается. Разберём это на конкретном примере ниже — это один из самых важных контрпримеров во всём курсе многомерного анализа, и его стоит запомнить надолго.

Определение

Определение (предел функции двух переменных). Число $L$ называется пределом функции $f(x,y)$ в точке $(x_0,y_0)$, если для любого $\varepsilon>0$ найдётся такое $\delta>0$, что для всех точек $(x,y)$, отличных от $(x_0,y_0)$ и удовлетворяющих условию $\sqrt{(x-x_0)^2+(y-y_0)^2}<\delta$ (то есть лежащих в круге радиуса $\delta$ с выколотым центром), выполняется неравенство $|f(x,y)-L|<\varepsilon$. Обозначение: $\displaystyle\lim_{(x,y)\to(x_0,y_0)} f(x,y)=L$.

Содержательно это означает: значение функции можно сделать сколь угодно близким к $L$, взяв точку $(x,y)$ достаточно близко к $(x_0,y_0)$, причём «достаточно близко» понимается как «в пределах некоторого круга», а не «вдоль какого-то одного направления». Именно круговая (а не одномерная) форма окрестности и заставляет предел проверяться сразу по всем направлениям и путям подхода.

Определение (непрерывность). Функция $f(x,y)$ называется непрерывной в точке $(x_0,y_0)\in D$, если $\displaystyle\lim_{(x,y)\to(x_0,y_0)} f(x,y) = f(x_0,y_0)$, то есть предел существует, конечен и совпадает со значением функции в этой точке. Функция непрерывна на множестве, если она непрерывна в каждой его точке.

Разбор примеров

Пример 1 (лёгкий). Доказать непрерывность функции $f(x,y)=\dfrac{x+y}{x^2+1}$ в точке $(0,0)$.

Знаменатель $x^2+1\ge1>0$ при любых $x$, значит он никогда не обращается в ноль, и функция — это отношение двух непрерывных выражений (многочлена в числителе и никогда не зануляющегося многочлена в знаменателе), что гарантирует непрерывность всюду на плоскости, в том числе в точке $(0,0)$: $f(0,0)=\dfrac{0+0}{0+1}=0$, и предел при $(x,y)\to(0,0)$ тоже равен $0$ — просто прямой подстановкой, без всяких дополнительных проверок по направлениям.

Ответ: функция непрерывна в точке $(0,0)$ (и на всей плоскости), значение и предел совпадают и равны $0$.

Пример 2 (средний, предел по прямым разный). Исследовать, существует ли предел $\displaystyle\lim_{(x,y)\to(0,0)} \frac{xy}{x^2+y^2}$.

Подойдём к началу координат вдоль семейства прямых $y=kx$ при разных значениях углового коэффициента $k$:

$$f(x,kx) = \frac{x\cdot kx}{x^2+k^2x^2} = \frac{kx^2}{x^2(1+k^2)} = \frac{k}{1+k^2}$$

Это выражение не зависит от $x$ и остаётся постоянным вдоль всей прямой, но само число $\dfrac{k}{1+k^2}$ разное для разных $k$: при $k=0$ получаем $0$, при $k=1$ получаем $\dfrac12$, при $k=-1$ получаем $-\dfrac12$.

Ответ: предел не существует, поскольку уже вдоль разных прямых получаются разные значения — единственный числовой предел просто не может согласовать одновременно и $0$, и $\dfrac12$, и $-\dfrac12$. Это самый простой и явный тип отсутствия предела, доступный уже на уровне сравнения прямых между собой.

Пример 3 (сложный, ключевой контрпример). Исследовать, существует ли предел $\displaystyle\lim_{(x,y)\to(0,0)} \frac{x^2y}{x^4+y^2}$.

Сначала проверим предел вдоль произвольной прямой $y=kx$ (включая ось $x$ при $k=0$):

$$f(x,kx) = \frac{x^2\cdot kx}{x^4+k^2x^2} = \frac{kx^3}{x^2(x^2+k^2)} = \frac{kx}{x^2+k^2}$$

При $k\ne0$ это выражение стремится к $\dfrac{0}{k^2}=0$ при $x\to0$. При $k=0$ (ось $x$): $f(x,0)=\dfrac{0}{x^4}=0$. Получается, что абсолютно вдоль любой прямой, проходящей через начало координат, предел равен $0$ — казалось бы, это уже достаточное основание сказать, что предел функции равен $0$.

Но теперь подойдём к началу координат не по прямой, а по параболе $y=x^2$:

$$f(x,x^2) = \frac{x^2\cdot x^2}{x^4+(x^2)^2} = \frac{x^4}{x^4+x^4} = \frac{x^4}{2x^4} = \frac12$$

Это выражение равно $\dfrac12$ для любого $x\ne0$, а значит при $x\to0$ (то есть при движении вдоль этой параболы к началу координат) предел равен $\dfrac12$, а вовсе не $0$.

Ответ: предел не существует. Функция подобрана так, что вдоль каждой отдельной прямой она стремится к $0$, но вдоль параболы $y=x^2$ — к $\dfrac12$, и эти два числа не совпадают. Проверка одних только прямых прошла «успешно» и дала бы неверный вывод о существовании предела — этот пример прямо демонстрирует, почему проверки по прямым линиям категорически недостаточно, чтобы гарантировать существование предела функции двух переменных: нужно либо доказать существование предела универсальным способом (например, оценкой через неравенства, работающей сразу для всех направлений и путей), либо найти хотя бы одну кривую (не обязательно прямую), вдоль которой предел отличается от предполагаемого.

Почему это важно

Разница между «предел по прямым существует» и «предел существует» — это не педантичная придирка, а содержательная граница, которую обязан понимать любой, кто анализирует поведение многомерных функций, включая функции потерь в машинном обучении. Когда исследуют поведение ландшафта функции потерь вблизи критической точки (например, чтобы понять, минимум это, максимум или седло), ограничиться проверкой лишь нескольких направлений — вдоль осей координат, скажем, — принципиально недостаточно: ландшафт может вести себя совершенно по-разному вдоль какой-то более хитрой траектории, не совпадающей ни с одной координатной осью или прямой. Именно поэтому в следующих темах курса (частные производные, экстремумы функции нескольких переменных) появятся куда более аккуратные и универсальные инструменты анализа, которые не опираются на «выборочную» проверку конечного числа направлений.

Практика: 30 заданий

Базовые задания (1–10)

Задание 1: Найти область определения функции $f(x,y)=\sqrt{16-x^2-y^2}$.


Задание 2: Найти область определения функции $f(x,y)=\dfrac{1}{x-y}$.


Задание 3: Найти линии уровня функции $f(x,y)=x^2+y^2$ при $c=1$, $c=4$ и $c=9$.


Задание 4: Вычислить значение функции $f(x,y)=x^2y-3xy+5$ в точке $(2,-1)$.


Задание 5: Найти область определения функции $f(x,y)=\ln(x-y)$.


Задание 6: Найти линии уровня функции $f(x,y)=y-x^2$.


Задание 7: Найти область определения функции $f(x,y)=\sqrt{x}+\sqrt{y}$.


Задание 8: Определить геометрический тип поверхности $z=x^2+y^2$ и найти её минимум.


Задание 9: Вычислить предел $\displaystyle\lim_{(x,y)\to(1,2)} (x^2+3xy-y)$.


Задание 10: Проверить непрерывность функции $f(x,y)=\dfrac{x+y}{x^2+1}$ в точке $(0,0)$.


Средние задания (11–20)

Задание 11: Найти область определения функции $f(x,y)=\dfrac{\ln(x+y)}{\sqrt{x-y}}$.


Задание 12: Найти и описать линии уровня функции $f(x,y)=x^2-y^2$ при $c>0$, $c<0$ и $c=0$.


Задание 13: Исследовать существование предела $\displaystyle\lim_{(x,y)\to(0,0)} \dfrac{x^2-y^2}{x^2+y^2}$ вдоль семейства прямых $y=kx$.


Задание 14: Описать поверхности уровня функции трёх переменных $f(x,y,z)=x^2+y^2+z^2$ при $c>0$, $c=0$ и $c<0$.


Задание 15: Найти область определения функции трёх переменных $f(x,y,z)=\sqrt{z-x^2-y^2}$.


Задание 16 (машинное обучение и статистика): Найти область определения функции правдоподобия $\ell(\mu,\sigma)=-\ln\sigma-\dfrac{(x-\mu)^2}{2\sigma^2}$ (постоянное слагаемое опущено), где $x$ — фиксированное наблюдение.


Задание 17: Доказать, что $\displaystyle\lim_{(x,y)\to(0,0)} \dfrac{xy}{\sqrt{x^2+y^2}}=0$.


Задание 18 (машинное обучение): Найти линии уровня функции потерь $L(w_1,w_2)=w_1^2+4w_2^2$ и определить, вдоль какой оси ландшафт круче.


Задание 19: Найти множество точек разрыва функции $f(x,y)=\dfrac{1}{x^2+y^2-4}$.


Задание 20: Функция задана как $f(x,y)=\dfrac{\sin(xy)}{y}$ при $y\ne0$. Найти доопределение $f(x,0)$, при котором функция становится непрерывной на всей плоскости.


Продвинутые задания (21–30)

Задание 21: Исследовать предел $\displaystyle\lim_{(x,y)\to(0,0)} \dfrac{xy}{x^2+y^2}$, проверив его вдоль прямых $y=kx$ с разными значениями $k$.


Задание 22 (ключевой контрпример): Исследовать предел $\displaystyle\lim_{(x,y)\to(0,0)} \dfrac{x^2y}{x^4+y^2}$, сначала вдоль произвольной прямой $y=kx$, а затем вдоль параболы $y=x^2$.


Задание 23: Функция задана как $f(x,y)=x+y$ при $x\ne y$ и $f(x,y)=0$ при $x=y$ (получена упрощением дроби $(x^2-y^2)/(x-y)$ вне прямой $x=y$). Найти множество точек разрыва.


Задание 24 (машинное обучение, седловая точка): Для функции $z=x^2-y^2$ найти линии уровня и объяснить, почему точка $(0,0)$ — седловая, а не точка экстремума.


Задание 25: Доказать через переход к полярным координатам, что $\displaystyle\lim_{(x,y)\to(0,0)} \dfrac{x^3}{x^2+y^2}=0$.


Задание 26 (самостоятельный контрпример): По аналогии с заданием 22 исследовать предел $\displaystyle\lim_{(x,y)\to(0,0)} \dfrac{xy^2}{x^2+y^4}$ вдоль прямых $y=kx$ и вдоль кривой $x=y^2$.


Задание 27 (машинное обучение, теоретический вопрос): Объяснить, почему график функции потерь нейросети с миллионами параметров невозможно нарисовать напрямую, и почему понятие линий (точнее, поверхностей) уровня остаётся при этом полезным.


Задание 28 (машинное обучение): Функция кросс-энтропийных потерь для задачи с двумя классами записана как $L(p_1,p_2)=-y_1\ln p_1-y_2\ln p_2$ при условии $p_1+p_2=1$ (это выход функции softmax, живущий на вероятностном симплексе). Выразив $p_2=1-p_1$, найти область определения получившейся функции одной переменной $L(p_1)$.


Задание 29: Доказать через переход к полярным координатам, что $\displaystyle\lim_{(x,y)\to(0,0)} \dfrac{x^2y}{x^2+y^2}=0$, и сравнить с результатом задания 22, где похожая на вид функция не имела предела.


Задание 30 (обобщающая задача, машинное обучение): Для функции потерь $L(w_1,w_2)=aw_1^2+bw_2^2$ определить геометрический тип поверхности и вид линий уровня в трёх случаях: (а) $a=b>0$; (б) $a\ne b$, оба положительны; (в) $a>0$, $b<0$.


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

Разберём типичные ошибки, которые встречаются почти у каждого, кто только начинает работать с функциями нескольких переменных.

  • Считать, что существование предела по всем прямым гарантирует существование предела в целом. Это самая опасная и самая распространённая ошибка темы: пример 3 из раздела про предел и задание 22 прямо показывают функцию, у которой предел по абсолютно любой прямой равен $0$, но по параболе — $\dfrac12$. Проверка прямых — это проверка лишь одного (пусть и бесконечного) семейства путей среди бесконечного множества всех возможных кривых, и она никогда не может служить доказательством существования предела, только его опровержением.

  • Путать область определения функции с областью значений. Область определения — это допустимые входы (множество точек $(x,y)$, где формула имеет смысл), область значений — это то, какие числа $z$ функция вообще может принять. Например, у функции $f(x,y)=x^2+y^2$ область определения — вся плоскость $\mathbb{R}^2$, а область значений — только неотрицательные числа $[0,+\infty)$; смешивать эти два разных множества — типичная логическая ошибка.

  • Думать, что график функции двух переменных — это кривая, как и для функции одной переменной. График $z=f(x,y)$ — это поверхность в трёхмерном пространстве, а не линия: каждой точке плоскости $(x,y)$ соответствует единственная точка над ней (или под ней) на поверхности, и все такие точки вместе образуют двумерное множество, а не одномерное.

  • Считать, что линия уровня показывает, как меняется функция. На самом деле линия уровня — это, наоборот, множество точек, где функция вообще не меняется: на всей линии значение функции постоянно и равно фиксированному числу $c$. Изменение функции показывает не сама линия, а расстояние между соседними линиями уровня: чем оно меньше, тем круче ландшафт в этом месте.

  • Забывать, что деление на ноль и другие ограничения области определения работают на плоскости так же строго, как и для одной переменной, просто задают не отдельные точки, а целые линии или области. Например, для $f(x,y)=\dfrac1{x-y}$ исключается не одна точка, а вся прямая $x=y$ целиком — и об этой прямой легко забыть, интуитивно ожидая исключения одной «плохой» точки, как это привычно по одномерному случаю.

  • Проверять непрерывность только вдоль осей координат. Значения функции вдоль оси $x$ (при $y=0$) и вдоль оси $y$ (при $x=0$) — это лишь два частных сечения из бесконечного множества возможных; функция может быть прекрасно непрерывна вдоль обеих осей, но иметь разрыв вдоль какого-то другого направления или кривой, как в контрпримере из этого урока.

Главное запомнить

  • Функция нескольких переменных $z=f(x,y)$ (или, в общем случае, $y=f(x_1,\dots,x_n)$) ставит в соответствие набору чисел единственное число; область определения теперь, как правило, целая геометрическая область на плоскости или в пространстве, а не набор отдельных точек.

  • График функции двух переменных — это поверхность в трёхмерном пространстве, а не линия; для трёх и более переменных график живёт в пространстве размерности четыре и выше, недоступном прямому зрительному восприятию.

  • Линия уровня $f(x,y)=c$ — это множество точек, где функция принимает одно и то же фиксированное значение; поверхность уровня — прямой аналог для функции трёх переменных.

  • Линии уровня никогда не пересекаются между собой; расстояние между соседними линиями уровня отражает крутизну ландшафта функции в этом месте.

  • Предел функции двух переменных в точке требует, чтобы значение функции стремилось к одному и тому же числу при приближении к точке абсолютно любым путём, а не только вдоль двух направлений, как для функции одной переменной.

  • Существование предела по всем прямым, проходящим через точку, не гарантирует существования предела в целом — классический контрпример $\dfrac{x^2y}{x^4+y^2}$ демонстрирует это на числах: предел по прямым равен $0$, а по параболе $y=x^2$ равен $\dfrac12$.

  • Строгое доказательство существования предела чаще всего строится через оценку неравенствами (например, через теорему о сжатой величине) или через переход к полярным координатам, которые автоматически учитывают все направления подхода сразу.

  • Седловая точка — это точка, в которой поверхность ведёт себя как минимум в одном направлении и как максимум в другом; она не является экстремумом функции, хотя и обладает некоторыми чертами «плоского» поведения.

  • В машинном обучении ландшафт функции потерь $L(w_1,\dots,w_n)$ — это прямое многомерное обобщение поверхности $z=f(x,y)$, а линии уровня — это в точности контурные графики, которыми иллюстрируют поведение градиентного спуска.

  • Форма линий уровня (окружности, вытянутые эллипсы, гиперболы) напрямую отражает геометрию оптимизационной задачи: от неё зависит, будет ли градиентный спуск двигаться к минимуму по прямому пути или зигзагами по узкому оврагу.

Связь с другими темами курса

Этот урок закладывает геометрический и понятийный фундамент для всей дальнейшей многомерной части курса. Уже в следующем уроке про частные производные ты увидишь, как формализовать интуицию «наклона поверхности в определённом направлении», которую мы сегодня обсуждали лишь качественно, через сечения графика координатными плоскостями, — частная производная $\dfrac{\partial f}{\partial x}$ это в точности наклон касательной к сечению поверхности плоскостью $y=\text{const}$. А понятие седловой точки, введённое сегодня чисто геометрически (через сечения графика функции $z=x^2-y^2$), получит строгий аналитический критерий, не требующий рисовать сечения вручную.

Понятие линий уровня прямо связано с темой градиента, которая последует за частными производными: окажется, что вектор градиента в каждой точке перпендикулярен линии уровня, проходящей через эту точку, и указывает направление наискорейшего роста функции — это и есть математическая причина, по которой градиентный спуск, двигаясь против градиента, всегда «режет» линии уровня под прямым углом, а не идёт вдоль них.

Наконец, тема предела и непрерывности функции нескольких переменных подготавливает почву для понятия дифференцируемости в следующих уроках: чтобы функция была дифференцируема в точке (то есть допускала хорошее линейное приближение), одной лишь непрерывности недостаточно — придётся вернуться к вопросу «что происходит при подходе по разным путям», только теперь уже применительно не к самой функции, а к качеству её линейного приближения.

Интересные факты

  • Выражение «ландшафт функции потерь», давно ставшее стандартным в статьях по машинному обучению, — это не метафора «для красоты», а буквальное указание на то, что исследователи используют ровно ту геометрическую интуицию (горы, впадины, сёдла, овраги), которую даёт график функции двух переменных, просто мысленно перенесённую на пространство с миллионами измерений, где её нельзя увидеть напрямую.

  • Существуют специальные методы визуализации ландшафта функции потерь реальных нейросетей (например, метод нормализации по направлениям срезов, предложенный исследователями Ли и соавторами в 2018 году), которые строят именно двумерные срезы этого невообразимо многомерного объекта вдоль двух специально подобранных направлений — получившиеся картинки один в один похожи на разобранные в этом уроке параболоиды и сёдла, только для настоящих обученных сетей.

  • Контрпример «предел по прямым существует, а общего предела нет» — не изолированный математический курьёз, а классическая иллюстрация, встречающаяся практически в каждом учебнике многомерного анализа со времён формирования строгой теории пределов в конце XIX века; идея подобных контрпримеров восходит к тому же кругу вопросов, что и патологические примеры Вейерштрасса в анализе одной переменной, показывавшие, что интуиция может подводить там, где строгое доказательство необходимо.

  • Гиперболический параболоид (седловая поверхность) — не только абстрактный математический объект: это в точности форма многих архитектурных крыш и покрытий (например, знаменитого шедевра Феликса Кандела и других инженеров XX века), потому что такая поверхность может быть построена из прямых линий (она дважды линейчатая), что делает её конструктивно простой и одновременно очень прочной.

Лайфхаки и полезные трюки

  • Проверяя область определения функции двух переменных, выписывай все условия по отдельности (для каждого корня, логарифма, знаменателя своё неравенство), а потом соединяй их через пересечение — почти всегда удобнее нарисовать каждое условие как отдельную область на чертеже и посмотреть на их общую часть, чем пытаться держать всё в уме одной сложной системой неравенств.

  • Чтобы быстро понять геометрический тип поверхности $z=f(x,y)$, не пытайся представлять её целиком — подставь по очереди $x=0$ и $y=0$ и посмотри на получившиеся одномерные сечения: если оба сечения — параболы, направленные в одну сторону, перед тобой похожая на чашу поверхность; если в разные стороны — скорее всего, седло.

  • Если нужно доказать существование предела строго (а не просто «нащупать» вероятный ответ), почти всегда быстрее перейти к полярным координатам $x=r\cos\theta$, $y=r\sin\theta$ и посмотреть, стремится ли получившееся выражение к нулю равномерно по $\theta$ при $r\to0$ — если да, дальше искать контрпримеры среди кривых уже не нужно.

  • Если, наоборот, нужно опровергнуть существование предела, для начала попробуй прямые $y=kx$ — если результат зависит от $k$, дело сделано за одну строчку; но если результат от $k$ не зависит, не спеши с выводом о существовании предела — попробуй параболу вида $y=x^2$ (или $x=y^2$), она ловит куда более широкий класс «замаскированных» контрпримеров.

  • Читая контурный график функции потерь в любой статье по машинному обучению, в первую очередь смотри не на сами линии, а на расстояние между соседними линиями уровня: густо расположенные линии означают крутой участок ландшафта, редко расположенные — пологий, а вытянутые эллипсы вместо окружностей сразу сигнализируют о плохо согласованных масштабах разных параметров модели.

  • Держи в голове короткое эмпирическое правило: если тебя тянет доказать какое-то свойство функции двух переменных, проверив его «вдоль осей $x$ и $y$» и на этом остановиться, — это почти наверняка сигнал остановиться и спросить себя, не упускаешь ли ты какое-то другое направление или кривую, вдоль которой поведение функции окажется другим.

Функции нескольких переменных на первый взгляд кажутся просто «ещё одной темой матанализа», но на деле именно с этого урока начинается язык, на котором говорит всё современное машинное обучение: любая нейросеть, любой алгоритм оптимизации, любая статья о том, почему одна архитектура обучается быстрее другой, в конечном счёте описывает поведение функции многих переменных — её ландшафт, её линии уровня, её седловые точки. Сегодня ты увидел этот ландшафт своими глазами на примере функции двух переменных и разобрался с одной из самых коварных ловушек всей темы — иллюзией, что проверки по прямым достаточно. В следующем уроке мы сделаем следующий логичный шаг и научимся измерять крутизну этого ландшафта точно, в каждой отдельной точке и в каждом отдельном направлении, — с помощью частных производных.

Понял тему? Закрепи в боте! 🚀

Попрактикуйся на задачах и получи персональные рекомендации от AI

💪 Начать тренировку
💬 Есть вопрос? Спроси бота!