Ноль в нулевой степени
Выражение 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].
Литература
- Степенная функция // Большая советская энциклопедия. — М.: Советская энциклопедия, 1969—1978.
- Степенная функция // Большая российская энциклопедия : [в 35 т.] / гл. ред. Ю. С. Осипов. — М. : Большая российская энциклопедия, 2004—2017.
Примечания
- ↑ БРЭ.
- ↑ БСЭ, 1969—1978: «При [math]\displaystyle{ x = 0 }[/math] степенная функция [math]\displaystyle{ x^a }[/math] … не определена при [math]\displaystyle{ a \lt 0 }[/math]; [math]\displaystyle{ 0^0 }[/math] определённого смысла не имеет».
- ↑ N. Bourbaki. Theory of Sets // Elements of Mathematics, Springer-Verlag, 2004, III, § 3.5.
- ↑ Augustin-Louis Cauchy. Cours d’Analyse de l'École Royale Polytechnique (1821). In his Oeuvres Complètes, series 2, volume 3.
- ↑ Guillaume Libri. Note sur les valeurs de la fonction 00x, Journal für die reine und angewandte Mathematik 6 (1830), 67-72.
- ↑ Guillaume Libri. Mémoire sur les fonctions discontinues, Journal für die reine und angewandte Mathematik 10 (1833), 303—316.
- ↑ 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,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]).
- ↑ Например: Edwards and Penny (1994). Calculus, 4th ed, Prentice-Hall, p. 466; Keedy, Bittinger, and Smith (1982). Algebra Two. Addison-Wesley, p. 32.
- ↑ Donald C. Benson, The Moment of Proof : Mathematical Epiphanies. New York Oxford University Press (UK), 1999. ISBN 978-0-19-511721-9.
- ↑ Weisstein, Eric W. Power . Wolfram MathWorld. Дата обращения: 5 октября 2018. Архивировано 12 сентября 2018 года.
- ↑ 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.
- ↑ sci.math FAQ: What is 0^0? . www.faqs.org. Дата обращения: 30 августа 2019. Архивировано 2 декабря 2010 года.
- ↑ 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 года.
- ↑ «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).
- ↑ «For z = 0, w ≠ 0, we define 0w = 0, while 00 is not defined». Mario Gonzalez, Classical Complex Analysis, Chapman & Hall, 1991, p. 56.
- ↑ «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.
- ↑ 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.