Ноль в нулевой степени

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
График функции z = xy вблизи x = 0, y = 0

Выражение 0⁰ (ноль в нулевой степени) многие учебники считают неопределённым и лишённым смысла[1][2]. Связано это с тем, что функция двух переменных [math]\displaystyle{ f(x, y) = x^y }[/math] в точке [math]\displaystyle{ (0, 0) }[/math] имеет неустранимый разрыв. В самом деле, вдоль положительного направления оси [math]\displaystyle{ X, }[/math] где [math]\displaystyle{ y = 0, }[/math] она равна единице, а вдоль положительного направления оси [math]\displaystyle{ Y, }[/math] где [math]\displaystyle{ x = 0, }[/math] она равна нулю. Поэтому никакое соглашение о значении 0⁰ не может дать непрерывную в нуле функцию.

Соглашение 00 = 1: аргументация сторонников

Некоторые авторы предлагают принять соглашение о том, что [math]\displaystyle{ 0^0 }[/math] равно 1. В пользу подобного варианта приводятся несколько доводов. Например, разложение в ряд экспоненты:

[math]\displaystyle{ e^x = 1 + \sum_{n = 1}^\infty \frac{x^n}{n!} }[/math]

можно записать короче, если принять [math]\displaystyle{ 0^0 = 1 }[/math]:

[math]\displaystyle{ e^x = \sum_{n = 0}^\infty \frac{x^n}{n!} }[/math]

(рассматриваемое соглашение используется при [math]\displaystyle{ x = 0,\ n = 0 }[/math]).

Если 0 относить к натуральным числам, то возведение в натуральную степень можно определить так:

[math]\displaystyle{ a^n = 1 \cdot \underbrace{a \cdot a \cdot \ldots \cdot a}_n, }[/math]

и тогда возведение любого числа (в том числе нуля) в нулевую степень будет давать 1.

Другое обоснование соглашения [math]\displaystyle{ 0^0 = 1 }[/math] опирается на «Теорию множеств» Бурбаки[3]: число различных отображений n-элементного множества в m-элементное равно [math]\displaystyle{ m^n, }[/math] при [math]\displaystyle{ m = n = 0 }[/math] получаем отображение пустого множества в пустое, а оно единственно. Разумеется, это нельзя считать доказательством (соглашения не нуждаются в доказательствах), тем более что в самой теории множеств соглашение [math]\displaystyle{ 0^0 = 1 }[/math] не используется.

В любом случае соглашение [math]\displaystyle{ 0^0 = 1 }[/math] чисто символическое, и оно не может использоваться ни в алгебраических, ни в аналитических преобразованиях из-за разрывности функции в этой точке. В свете современного математического анализа говорить о соглашении в данном случае вообще не уместно, данное выражение может и должно пониматься только в смысле предельного перехода при раскрытии неопредлённости. Пример для аналитических вычислений: выражение [math]\displaystyle{ (a^{-1/t})^t, }[/math] где [math]\displaystyle{ a }[/math] — произвольное положительное вещественное число. При [math]\displaystyle{ t \to 0 }[/math] мы получаем неопределённость типа [math]\displaystyle{ 0^0, }[/math] и, если не отличать предельную форму [math]\displaystyle{ 0^0 }[/math] (где каждый из нулей обозначает стремление к нулю) и значение [math]\displaystyle{ 0^0 }[/math] (где каждый из нулей и есть ноль), можно ошибочно посчитать, что предел равен 1. На самом деле данное выражение тождественно равно [math]\displaystyle{ a^{-1}. }[/math] Это означает, что бесконечно малая в бесконечно малой степени может в пределе дать любое значение, не обязательно единицу. Аналогичные ошибки могут быть сделаны, если использовать соглашение в алгебраических преобразованиях.

История различных точек зрения

Дискуссия по поводу определения [math]\displaystyle{ 0^0 }[/math] продолжается, по крайней мере, с начала XIX века. Многие математики тогда принимали соглашение [math]\displaystyle{ 0^0 = 1 }[/math], но в 1821 году Коши[4] причислил [math]\displaystyle{ 0^0 }[/math] к неопределённостям, таким, как [math]\displaystyle{ \frac{0}{0}. }[/math] В 1830-х годах Либри[англ.][5][6] опубликовал неубедительный аргумент в пользу [math]\displaystyle{ 0^0 = 1 }[/math] (см. Функция Хевисайда § История), и Мёбиус[7] встал на его сторону, ошибочно заявив, что [math]\displaystyle{ \lim_{t \to 0^+} f(t)^{g(t)} = 1 }[/math] всякий раз, когда [math]\displaystyle{ \lim_{t \to 0^+} f(t) = \lim_{t \to 0^+} g(t) = 0 }[/math]. Обозреватель, который подписал своё имя просто как «S», предоставил контрпример [math]\displaystyle{ (e^{-1/t})^t }[/math], и это немного успокоило дебаты. Больше исторических деталей можно найти в статье Кнута (1992)[8].

Более поздние авторы интерпретируют ситуацию выше по-разному. Некоторые утверждают, что наилучшее значение для [math]\displaystyle{ 0^0 }[/math] зависит от контекста, и поэтому определение его раз и навсегда проблематично[9]. Согласно Бенсону (1999), «Выбор, следует ли определять [math]\displaystyle{ 0^0, }[/math] основан на удобстве, а не на правильности. Если мы воздержимся от определения [math]\displaystyle{ 0^0 }[/math], то некоторые утверждения становятся излишне неудобными. <…> Консенсус заключается в использовании определения [math]\displaystyle{ 0^0 = 1 }[/math], хотя есть учебники, которые воздерживаются от определения [math]\displaystyle{ 0^0 }[/math]»[10].

Часть математиков считает, что [math]\displaystyle{ 0^0 }[/math] должно быть определено как 1. Например, Кнут (1992) уверенно утверждает, что [math]\displaystyle{ 0^0 }[/math] «должно быть 1», делая различие между значением [math]\displaystyle{ 0^0 }[/math], которое должно равняться 1, как это было предложено Либри, и предельной формой [math]\displaystyle{ 0^0 }[/math] (аббревиатура для предела [math]\displaystyle{ f(x)^{g(x)} }[/math] где [math]\displaystyle{ f(x), g(x) \to 0 }[/math]), что обязательно является неопределённостью, как указано Коши: «И Коши, и Либри были правы, но Либри и его защитники не понимали, почему истина на их стороне»[8].

Авторитетный сайт MathWorld, приведя мнение Кнута, всё же констатирует, что обычно значение [math]\displaystyle{ 0^0 }[/math] считается неопределённым, несмотря на то, что соглашение [math]\displaystyle{ 0^0 = 1 }[/math] позволяет в некоторых случаях упростить запись формул[11]. В России Большая российская энциклопедия, Большая советская энциклопедия, Математический энциклопедический словарь, Справочник по элементарной математике Выгодского, школьные учебники и другие источники однозначно характеризуют [math]\displaystyle{ 0^0 }[/math] как выражение, не имеющее смысла (неопределённость).

Раскрытие неопределённости 00

Если даны две функции [math]\displaystyle{ f(x) }[/math] и [math]\displaystyle{ g(x) }[/math], которые стремятся к нулю, то предел [math]\displaystyle{ f(x)^{g(x)} }[/math] в общем случае, как показано выше, может быть любым. Таким образом, с этой точки зрения [math]\displaystyle{ 0^0 }[/math] является неопределённостью. Для нахождения предела [math]\displaystyle{ f(x)^{g(x)} }[/math] в этом случае пользуются методами раскрытия неопределённости, как правило сначала взяв логарифм от данного выражения: [math]\displaystyle{ \ln\left(f(x)^{g(x)}\right) = \frac{g(x)}{\frac{1}{\ln f(x)}} }[/math], а потом воспользовавшись правилом Лопиталя.

Однако, при определённых условиях этот предел будет всегда равен единице. А именно: если функции [math]\displaystyle{ f }[/math] и [math]\displaystyle{ g }[/math] являются аналитическими в точке [math]\displaystyle{ 0 }[/math] (то есть в некоторой окрестности точки [math]\displaystyle{ 0 }[/math] совпадают со своим рядом Тейлора), и [math]\displaystyle{ f(0) = g(0) = 0 }[/math], а [math]\displaystyle{ f(x) \gt 0 }[/math] в окрестности [math]\displaystyle{ (0, \delta) }[/math], то предел [math]\displaystyle{ f(x)^{g(x)} }[/math] при [math]\displaystyle{ x }[/math] стремящемся к нулю справа равен 1[12][13][14].

Например, таким образом можно сразу убедиться, что

[math]\displaystyle{ \lim_{x \to 0^+} x^x = 1, }[/math]
[math]\displaystyle{ \lim_{x \to 0^+} (\sin x)^{\operatorname{tg} x} = 1, }[/math]
[math]\displaystyle{ \lim_{x \to 0^+} \left(e^{x+1} - e\right)^x = 1. }[/math]

При этом надо не забывать, что если хотя бы одна из функций не разлагается в ряд Тейлора в точке 0 или [math]\displaystyle{ f(x) }[/math] тождественно равен 0, то предел может быть любым, или его может не существовать. Например,

[math]\displaystyle{ \lim_{x \to 0^+} x^{a/\ln x} = e^a, }[/math]
[math]\displaystyle{ \lim_{x \to 0^+} \left(e^{-1/x}\right)^x = e^{-1}, }[/math]
[math]\displaystyle{ \lim_{x \to 0^+} 0^x = 0. }[/math]

Комплексный случай

Для комплексных чисел [math]\displaystyle{ u,v }[/math] выражение вида [math]\displaystyle{ u^v }[/math] для [math]\displaystyle{ u \ne 0 }[/math] многозначно и определяется как [math]\displaystyle{ e^{v \operatorname{Ln} u} }[/math], Однако комплексный логарифм [math]\displaystyle{ \operatorname{Ln} 0 }[/math] не определён ни в какой своей ветви, и это лишает смысла любое соглашение не только для [math]\displaystyle{ 0^0, }[/math] но и для любого [math]\displaystyle{ 0^z, }[/math] хотя часть авторов предлагает при [math]\displaystyle{ z \ne 0 }[/math] принять соглашение [math]\displaystyle{ 0^z=0 }[/math][15][16][17].

В компьютерах

Стандарт IEEE 754-2008, описывающий формат представления чисел с плавающей запятой, определяет три функции возведения в степень[18]:

  • Функция для возведения в целую степень: [math]\displaystyle{ \operatorname{pown}(x, y) }[/math]. Согласно стандарту, [math]\displaystyle{ \operatorname{pown}(x, 0) = 1 }[/math] для любого [math]\displaystyle{ x }[/math], в том числе, когда [math]\displaystyle{ x }[/math] равен нулю, NaN или бесконечности.
  • Функция для возведения в произвольную степень: [math]\displaystyle{ \operatorname{powr}(x, y) }[/math] — по сути равная [math]\displaystyle{ \exp\big(y\ln(x)\big) }[/math]. Согласно стандарту, [math]\displaystyle{ \operatorname{powr}(\pm 0, \pm 0) }[/math] возвращает значение «не число» NaN.
  • Функция для возведения в произвольную степень, которая особо определена для целых чисел: [math]\displaystyle{ \operatorname{pow}(x, y) }[/math]. Согласно стандарту, [math]\displaystyle{ \operatorname{pow}(x, \pm 0) = 1 }[/math] для всех [math]\displaystyle{ x }[/math] (так же, как и [math]\displaystyle{ \operatorname{pown}(x, 0) }[/math]). Данное соглашение в целом имеет разумное обоснование (см. ниже), однако вопрос может вызывать случай, когда x=NaN.

Во многих языках программирования ноль в нулевой степени равен 1. Например, в C++: pow(0, 0) == 1, в языке Haskell это верно для всех трёх стандартных операций возведения в степень: 0^0 == 1, 0^^0 == 1, 0**0 == 1. То же касается и стандартного калькулятора MS Windows.

Хотя общеизвестно, что [math]\displaystyle{ 0^0 }[/math] — это неопределённость, поведение некоторых функций, возвращающих в данном случае [math]\displaystyle{ 1 }[/math], не является результатом соглашения или ошибкой, оно имеет логическое обоснование. Дело в том, что в компьютерной арифметике числовые данные подразделяются на целые и вещественные. Это может неявно использоваться в некоторых функциях, реализующих операцию возведения в степень. Например, так сделано в калькуляторе Windows и функции pow в C++. Для целого и вещественного показателя степени используются различные алгоритмы, и функция возведения в степень анализирует показатель: если он равен целому числу, то вычисление степени идёт по другому алгоритму, в котором отрицательные и нулевое основания степени являются допустимыми. Если показатель степени принадлежит множеству целых чисел и равен 0, а основание - вещественное число, то операцию [math]\displaystyle{ 0^0 }[/math] следует определять не иначе как [math]\displaystyle{ \lim_{x\to 0} x^0 }[/math]. Поскольку 0 в показателе точный, предельный переход касается только основания и (в отличие от случая, когда показатель тоже вещественный) определён однозначно и равен [math]\displaystyle{ 1 }[/math]. Сказанное в полной мере относится и к случаю вычисления выражения [math]\displaystyle{ (\pm\infty)^0 }[/math].

Литература

Примечания

  1. БРЭ.
  2. БСЭ, 1969—1978: «При [math]\displaystyle{ x = 0 }[/math] степенная функция [math]\displaystyle{ x^a }[/math] … не определена при [math]\displaystyle{ a \lt 0 }[/math]; [math]\displaystyle{ 0^0 }[/math] определённого смысла не имеет».
  3. N. Bourbaki. Theory of Sets // Elements of Mathematics, Springer-Verlag, 2004, III, § 3.5.
  4. Augustin-Louis Cauchy. Cours d’Analyse de l'École Royale Polytechnique (1821). In his Oeuvres Complètes, series 2, volume 3.
  5. Guillaume Libri. Note sur les valeurs de la fonction 00x, Journal für die reine und angewandte Mathematik 6 (1830), 67-72.
  6. Guillaume Libri. Mémoire sur les fonctions discontinues, Journal für die reine und angewandte Mathematik 10 (1833), 303—316.
  7. A. F. Möbius. Beweis der Gleichung 00 = 1, nach J. F. Pfaff (нем.) // Journal für die reine und angewandte Mathematik : magazin. — 1834. — Bd. 12. — S. 134—136.
  8. 8,0 8,1 Donald E. Knuth, Two notes on notation, Amer. Math. Monthly 99 no. 5 (May 1992), 403—422 (arXiv: math/9205211 Архивная копия от 20 ноября 2018 на Wayback Machine [math.HO]).
  9. Например: Edwards and Penny (1994). Calculus, 4th ed, Prentice-Hall, p. 466; Keedy, Bittinger, and Smith (1982). Algebra Two. Addison-Wesley, p. 32.
  10. Donald C. Benson, The Moment of Proof : Mathematical Epiphanies. New York Oxford University Press (UK), 1999. ISBN 978-0-19-511721-9.
  11. Weisstein, Eric W. Power. Wolfram MathWorld. Дата обращения: 5 октября 2018. Архивировано 12 сентября 2018 года.
  12. Louis M. Rotando; Henry Korn. The indeterminate form 00 (англ.) // Mathematics Magazine : magazine. — 1977. — January (vol. 50, no. 1). — P. 41—42. — doi:10.2307/2689754.
  13. sci.math FAQ: What is 0^0?. www.faqs.org. Дата обращения: 30 августа 2019. Архивировано 2 декабря 2010 года.
  14. Leonard J. Lipkin. On the Indeterminate Form 00 // The College Mathematics Journal. — 2003. — Т. 34, вып. 1. — С. 55—56. — ISSN 0746-8342. — doi:10.2307/3595845. Архивировано 13 октября 2019 года.
  15. «Since log(0) does not exist, 0z is undefined. For Re(z) > 0, we define it arbitrarily as 0». (George F. Carrier, Max Krook and Carl E. Pearson, Functions of a Complex Variable: Theory and Technique, 2005, p. 15).
  16. «For z = 0, w ≠ 0, we define 0w = 0, while 00 is not defined». Mario Gonzalez, Classical Complex Analysis, Chapman & Hall, 1991, p. 56.
  17. «Let’s start at x = 0. Here xx is undefined». Mark D. Meyerson, The xx Spindle, Mathematics Magazine 69, no. 3 (June 1996), 198—206.
  18. IEEE Computer Society. IEEE Standard for Floating-Point Arithmetic § 9.2.1 (англ.) : journal. — IEEE, 2008. — 29 August. — ISBN 978-0-7381-5753-5. — doi:10.1109/IEEESTD.2008.4610935.