Какие функции принято называть элементарными и почему? И при чём тут Ватсон? Разберёмся со всем по порядку. Обещаю, будет понятно и интересно, хоть и не совсем элементарно.
Когда я был школьником, какое-то время моим хобби была охота за функциями, для того чтобы рисовать на миллиметровке их графики, собирая своеобразную коллекцию. Тогда я был вооружён мощным оружием: калькулятором МК-52. До компьютера с графическим, а не текстовым дисплеем (ZX-Spectrum + домашний телевизор), нам всем ещё надо было дорасти, и мне, и доступным мне компьютерам.
Чтобы поддержать этот интерес, папа мне подсунул справочник по математике Марка Яковлевича Выгодского, в котором можно было выуживать интересные примеры функций с необычными графиками в различных координатах: декартовых, параметрических и полярных. Название справочника мне тогда казалось несколько ироничным:
Содержание явно не выглядело элементарным. Но вот что было интересно: всë, что я находил в справочнике, можно было составить из функций, доступных на калькуляторе. Присмотревшись к клавиатуре, мы найдём там, кроме «бухгалтерской» арифметики — сложения, вычитания, умножения и деления, ряд функций, вот они, жёлтенькие:
Точно такой же набор входит и в число элементарных функций, перечисленных в справочнике. А кто это решил, что эти функции в чём-то элементарнее других? Чаще встречаются? А почему? И отчего в этот клуб не берут другие функции? Это исторически сложившаяся терминология, или какая-то теория тут всё же, есть? Давайте разбираться.
* * *
Мы начнём с самых простых функций и постепенно будем добавлять к ним новые, глядя на то, что получается.
Самыми простыми операциями можно считать арифметические операции, определённые на поле вещественных чисел, а самой простой функцией — вещественную константу. Из этих функций и операций мы можем получить систему арифметических функций. Я буду записывать системы функций несколько нетрадиционным способом в форме пары множеств:
Первый элемент в паре задаёт множество функций системы. В случае это единственная функция, которая возвращает указанную константу для любых аргументов: На калькуляторе она соответствует кнопкам с цифрами. Второе множество определяет набор операторов, позволяющих комбинировать функции, создавая из них новые функции. Например, сложение функций можно определить так: Прочие арифметические операторы над функциями определяются подобным образом.
Этот набор операций и функций функционально полон и замкнут. Это значит, что с его помощью можно получить любую константу, и любая комбинация этих операций и функций тоже будет константой, если не пытаться делить на ноль. С этой системой мы знакомимся класса, так, до третьего. И графики она порождает скучные — это горизонтальные прямые.
Теперь добавим к константе в системе арифметических функций простейшую зависимость, которой у нас ещё не было — тождественное преобразование: Эта функция ничего не делает и кажется абсолютно бесполезной. Но обратите внимание, на выделенном мною блоке клавиатуры калькулятора, над клавишей с нулём синим цветом написано НОП
. По существу, это и есть тождественное преобразование, для которого создатели калькулятора выделили целую команду.
Из функций и уже можно собрать произвольную линейную функцию:
Сумма, разность и композиция любых линейных функций оставляют их линейными, образуя полную и замкнутую систему линейных функций:
Здесь появились два новых символа — кружочек и звёздочка. Кружочек обозначает композицию функций, или подстановку: а звёздочка символизирует операцию замыкания системы. Дело в том, что хотя и сами являются линейными, это далеко не все мыслимые линейные функции. Однако все возможные арифметические комбинации этих базовых функций порождают всё множество линейных функций. Замыкание и обозначает множество всех комбинаций базовых функций с помощью перечисленных операций.
Таким же образом, с формальной точки зрения, любой язык порождается конечным набором слов и конечным набором правил — грамматикой языка. Хотя грамматический подход очень близок к обсуждаемой нами теме, мы сейчас туда не полезем, чтобы не отвлекаться от функций.
К линейным функциям от относятся, например, такие:
Графики линейных функций тоже не особо радуют разнообразием, но по крайней мере, они уже могут быть наклонными.
Умножение двух нетривиальных линейных функций это уже функция квадратичная. Последующие перемножения и композиции могут повышать степень получающегося многочлена неограниченно. Таким образом, добавляя к линейным функциям умножение, мы получаем полную и замкнутую систему полиномиальных функций или многочленов:
Графики полиномов — всевозможные параболы, уже могут быть достаточно интересными. Они могут аппроксимировать функции, как степенные ряды, или как полиномы Чебышёва, красиво интерполировать точки. А в параметрических координатах они могут использоваться как кривые Безье и ими уже можно нарисовать хоть зайца из «Ну погоди», хоть собственный портрет. Впрочем, правильную окружность одними полиномами не нарисовать.
Наконец, добавив к полиномиальным функциям деление, мы получим систему рациональных функций, отношений двух многочленов:
Рисовать их графики поначалу интересно из-за разрывов и асимптот, но быстро становится ясно, что ничего принципиально нового по сравнению в полиномами они не предлагают. (В комментариях подсказывают, что рациональные функции, если правильно их использовать, способны принести много пользы, и даже нарисовать окружность). Вот несколько примеров рациональных функций от :
Классе в пятом, при решении уравнений, мы встречаемся с корнями: квадратными кубическими и т.д. Как нужно расширить систему рациональных функций, чтобы можно было ими пользоваться: ввести новую операцию для возведения в степень, или новую функцию? Для того, что чтобы получить и корни и многое другое, достаточно добавить к нашему набору пару взаимно обратных функций: экспоненту и натуральный логарифм. Эта добавка взрывообразно расширяет систему рациональных функций. Она позволяет выражать любые показательные и логарифмические функции, которые можно получить, пользуясь хорошо известными тождествами:
Это значит, что квадратный корень, или , вместе с десятичным логарифмом мы уже имеем. Кроме того, в вещественных числах нам становятся доступны гиперболические функции:
Обратные гиперболические функции можно выразить через логарифмы:
Наконец, перейдя к комплексным числам, мы получаем все тригонометрические и обратные тригонометрические функции, в соответствии со знаменитой формулой Эйлера. Всё это богатство и составляет систему элементарных функций, которая определяется через четыре базовые функции, арифметику и композицию:
и включает в себя и тригонометрию, и радикалы, и модуль, и многое-многое другое. Таким образом, мы, наконец, получаем доступ ко всему, что изображено жёлтым цветом на выделенной части клавиатуры калькулятора и ко всему разнообразию графиков, доступных с помощью справочника Выгодского.
Естественным образом, все указанные нами системы образуют иерархию, которой мы, в общих чертах, следуем, изучая школьную программу математики, переходя из первого класса к одиннадцатому:
Впервые подобную классификацию (только гораздо формальнее, чем мы) произвёл Жозеф Лиувилль в первой половине XIX века. Позже, уже в XX веке, ещё более формально множество элементарных функций определили Готфри Харди и упомянутый в заголовке Джордж Невил Ватсон.
Но почему же все они остановились на этом минимальном наборе, не включив него, например, крайне полезные функции Бесселя, W-функцию Ламберта, или функцию ошибок ?
Дело в том, что мы не рассмотрели ещё одну важную операцию, превращающую одну функцию в другую: взятие производной. Все перечисленные нами системы остаются замкнутыми, если мы добавим в них оператор дифференцирования . В том числе, и система элементарных функций:
Действительно, любая производная любой элементарной функции остаётся элементарной. Интегрирование таким свойством уже не обладает: очень легко найти элементарную функцию, чья первообразная элементарной уже не будет. Однако никакая функция из не требует для своего определения интегрирования, все они могут быть выражены как конечная композиция элементарных функций и операций.
Именно вопросом элементарности первообразных и занимался Лиувилль, выстраивая цепочку пополнений в системах функций (дифференциальных полях), начиная с констант, через линейные функции к рациональным. Он же доказал теорему, которая известна сейчас как теорема Лиувилля, из которой следует единственность и достаточность логарифмического и экспоненциального дополнения рациональных функций до элементарных.
Таким образом, формально и строго элементарность функции определяется через замкнутость и полноту дифференциального поля, к которому она принадлежит, а также через конечность своего представления в этом поле. Все эти свойства системы элементарных функций не нарушатся, если мы добавим к ним какие-то спецфункции: функции Бесселя, эллиптические, гипергеометрические функции или ту же функцию ошибок. Однако система элементарных функций минимальна и тем только заслуживает особого имени.
Я не случайно начал рассказ с отсылки к калькулятору. Сейчас результаты работ Лиувилля и его последователей используются при разработке систем символьной алгебры, символьного дифференцирования, интегрирования и решения дифференциальных уравнений. И вот тут-то языковая модель функции становится как нельзя кстати!
В завершение я хочу сделать ещё одно замечание. Хорошо известны со школы свойства экспоненты и логарифма:
Они превращают эту пару функций в преобразование, которое, сохраняя алгебраическую структуру, меняет сложение и вычитание на умножение и деление и наоборот. В этом состоит глубокий смысл этих функций и их роль в системе элементарных функций, множество операций которой оказывается замкнутым относительно этого автоморфизма.
* * *
Со времени моих экспериментов с микрокалькулятором прошло около сорока лет, и за это время я не только разобрался с названием справочника, но и стал достаточно искушённым в рисовании графиков элементарных функций.
Так что всем, дочитавшим, делаю подарочек, построенный исключительно элементарными методами:
using Plots;
bonne(phi,lam,t) = let
ϕ₀ = 83/180*π
ρ = cot(ϕ₀) - ϕ₀ - ϕ(t)
E = λ(t)*cos(ϕ(t))/ρ
(ρ*sin(E), -cot(ϕ₀) + ρ*cos(E))
end;
ϕ(t) = 0.9*pi/2*cos(50t)*(cos(51t))+0.12;
λ(t) = 0.9*pi*sin(50t)*(cos(51t));
plot(legend=false,size=(550,500),bg="black",lw=0.75,la=0.95);
plot!([bonne(ϕ,λ,t + π/2) for t in 0:0.001:π]);
plot!([bonne(ϕ,λ,t - π/2) for t in 0:0.001:π],lc="orangered");
png("bonne.png");
Здесь используется проекция Боннэ от эпициклоиды на поверхности сферы.
Комментарии (16)
Refridgerator
30.11.2023 07:48+2Впрочем, правильную окружность одними полиномами не нарисовать
График функции (i-x)/(i+x) на комплексной плоскости от действительного (от минус бесконечности до плюс бесконечности) будет окружность, я гарантирую это.
UPD: новый редактор хабра всё ещё не очень хорошо работает с формулами в комментариях, особенно когда дело касается их редактирования.
Refridgerator
30.11.2023 07:48+1но быстро становится ясно, что ничего принципиально нового по сравнению в полиномами они не предлагают
Категорически не согласен.
1) Рациональными функциями можно строить интерполяционные функции за O(n), в которых координаты узловых точек заданы явным образом. Более того, можно задавать не только значения узловых точек - но и и произвольное количество производных, и даже разрывы.
2) Рациональными функциями описываются передаточные функции в электрических схемах, причём от их степени будет зависеть количество элементов в этой схеме (и наоборот).
3) Только рациональными многочленами можно описать функции, значения которых не превышают некоторых заданных при всех значениях аргумента. В обычных многочленах значения всегда стремятся к бесконечности.
Arastas
30.11.2023 07:48+1Вроде сначала говорили про систему функций и было хорошо, а потом вдруг бах и дифференциальноe полe...
элементарность функции определяется через замкнутость и полноту дифференциального поля, к которому она принадлежит, а также через конечность своего представления в этом поле. <...> Однако система элементарных функций минимальна и тем только заслуживает особого имени.
А разве система линейный функций не будет замкнутой и полной? И туда вроде тоже можно добавить дифференцирование. Что я упустил?
И ещё вопрос - а операция if считается элементарной? Как можно получить, например, кусочно-постоянные функции?
Refridgerator
30.11.2023 07:48+1Кусочно-непрерывные функции можно получить используя корень, например. Не очень практично, зато из элементарных.
omxela
30.11.2023 07:48Все эти свойства системы элементарных функций не нарушатся, если мы добавим к ним какие-то спецфункции: функции Бесселя, эллиптические, гипергеометрические функции или ту же функцию ошибок. Однако система элементарных функций минимальна и тем только заслуживает особого имени.
А что значит "минимальна"? Это кажется несколько субъективным критерием. Не проще ли признать тот, на мой взгляд, очевидный факт, что дело в истории и договоренностях. В основе этого, пусть не написанного явно, договора лежит то обстоятельство, что "элементарные" функции изучают дети в школе, а Бесселя или мою любимую функцию ошибок - нет. В этом смысле давно ли гиперболические функции попали в элементарные? Полагаю, тогда, когда засветились на клавиатуре калькулятора. Или, скажем, полиномы Чебышёва - элементарны? Это ведь просто полиномы. Вот и получается, что границы понятия "элементарная функция" достаточно размыты. Всё определяется текущими традициями и договорённостями.
belch84
30.11.2023 07:48Функцию Минковского ?(x) тоже же можно считать элементарной? Вычисляется с помощью элементарных операций, график несложно построить, она монотонная, даже производная у неё есть. Вращая график, можно построить элегантную
вазу Минковского
MasterMentor
30.11.2023 07:48+1А вот если бы в те славные юные годы Вам попались эти книги, так Вы бы вообще "прибалдели": алгебра графиков дана там как в Вашей статье (кратко и в той же форме), но нагляднее, чем у Выгодского. :)
MasterMentor
30.11.2023 07:48По определению.
Всё множество элементарных функций можно получить конечным числом арифметических действий (сложение, умножение, возведение в степень и обратные им функции) и композиций (подстановок) из «основных элементарных функций» (линейная, степенная, показательная и логарифмическая функции; тригонометрические и обратные им функции). Каждую элементарную функцию можно задать формулой.
OldFisher
А как математика глядит на функции-бедолаги, которые сами элементарными не являются, а вот их производные - таки да?
samsergey Автор
С интересом, поскольку они и есть материал для дальнейшего расширения дифференциальных полей.
Naf2000
Это какие?
OldFisher
Безымянные страдальцы, выразимые через дифференциальные уравнения, которые считают численными методами. Кеплеровское орбитальное движение, к примеру.
Naf2000
Меня интересуют их производные, которые являются элементарными функциями
OldFisher
Что-то вроде y'(x) = sin(x) / x? Такого добра много.
Naf2000
А точно. Что-то я совсем забыл про такие интегралы. Спасибо