В математике выражение — это письменное расположение символов , следующее контекстно-зависимым синтаксическим соглашениям математической нотации . Символы могут обозначать числа ( константы ), переменные , операции и функции . [1] Другие символы включают знаки препинания и скобки , используемые для группировки , где нет четко определенного порядка операций .
Выражения обычно отличают от формул : выражения являются своего рода математическим объектом , тогда как формулы являются утверждениями о математических объектах. [2] Это аналогично естественному языку , где именная группа относится к объекту, а целое предложение относится к факту . Например, является выражением, тогда как неравенство является формулой.
Оценить или упростить выражение означает найти числовое значение , эквивалентное выражению. [3] [4] Выражения можно оценить или упростить , заменив операции , которые в них появляются, их результатом. Например, выражение упрощается до , а оценивается до
Выражение часто используется для определения функции , принимая переменные в качестве аргументов или входных данных функции и назначая выходные данные в качестве оценки результирующего выражения. [5] Например, и определяют функцию, которая сопоставляет каждому числу его квадрат плюс один. Выражение без переменных будет определять постоянную функцию . Обычно два выражения считаются равными или эквивалентными, если они определяют одну и ту же функцию. Такое равенство называется « семантическим равенством», то есть оба выражения «означают одно и то же».
Формальное выражение — это своего рода строка символов , созданная по тем же правилам производства, что и стандартные выражения, однако они используются без учета смысла выражения. Таким образом, два формальных выражения считаются равными, только если они синтаксически равны, то есть если они являются одним и тем же выражением. [6] [7] Например, формальные выражения «2» и «1+1» не равны.
Самая ранняя письменная математика, вероятно, началась с меток счета , где каждая метка представляла одну единицу, вырезанную на дереве или камне. Примером раннего счета является кость Ишанго , найденная около Нила и датируемая более 20 000 лет назад , которая, как полагают, показывает шестимесячный лунный календарь . [8] Древний Египет разработал символическую систему с использованием иероглифов , назначая символы для степеней десяти и используя символы сложения и вычитания, напоминающие ноги в движении. [9] [10] Эта система, записанная в текстах, таких как математический папирус Ринда (ок. 2000–1800 гг. до н. э.), оказала влияние на другие средиземноморские культуры . В Месопотамии развилась похожая система, с числами, записанными в формате с основанием 60 ( шестидесятеричном ) на глиняных табличках, написанных клинописью , техникой, возникшей у шумеров около 3000 г. до н. э. Эта система с основанием 60 сохраняется и сегодня для измерения времени и углов .
«Синкопированная» стадия математики ввела символические сокращения для часто используемых операций и величин, ознаменовав переход от чисто геометрических рассуждений. Древнегреческая математика , в значительной степени геометрическая по своей природе, опиралась на египетские числовые системы (особенно аттические цифры ), [11] с небольшим интересом к алгебраическим символам, до прибытия Диофанта Александрийского , [12] который стал пионером формы синкопированной алгебры в своей « Арифметике» , которая ввела символическую манипуляцию выражениями. [13] Его нотация представляла неизвестные и степени символически, но без современных символов для отношений (таких как равенство или неравенство ) или показателей степеней . [14] Неизвестное число называлось . [15] Квадрат был ; куб был ; четвертая степень была ; и пятая степень была . [16] Так, например, то, что было бы записано в современной нотации как: Было бы записано в синкопированной нотации Диофанта как:
В VII веке Брахмагупта использовал разные цвета для представления неизвестных в алгебраических уравнениях в « Брахмаспхутасиддханте» . Греческие и другие древние математические достижения часто оказывались в ловушке циклов всплесков творчества, за которыми следовали длительные периоды застоя, но это начало меняться по мере распространения знаний в ранний современный период .
Переход к полностью символической алгебре начался с Ибн аль-Банны аль-Марракуши (1256–1321) и Абу аль-Хасана ибн Али аль-Каласади (1412–1482), которые ввели символы для операций с использованием арабских букв . [17] [18] [19] Знак плюс (+) появился около 1351 года у Николая Орезма , [20] вероятно, происходя от латинского et (что означает «и»), в то время как знак минус (−) был впервые использован в 1489 году Иоганнесом Видманом . [21] Лука Пачоли включил эти символы в свои работы, хотя многое из них было основано на более ранних работах Пьеро делла Франческа . Символ радикала (√) для квадратного корня был введен Кристофом Рудольфом в 1500-х годах, а скобки для указания приоритета — Никколо Тартальей в 1556 году. « Новая алгебра » Франсуа Виета (1591) формализовала современные символьные манипуляции. Знак умножения (×) впервые использовал Уильям Отред , а знак деления (÷) — Иоганн Ран .
Рене Декарт еще больше развил алгебраическую символику в своей работе «Геометрия» (1637), где он ввел использование букв в конце алфавита (x, y, z) для обозначения переменных , а также декартовой системы координат , которая связала алгебру и геометрию. [22] Исаак Ньютон и Готфрид Вильгельм Лейбниц независимо друг от друга разработали исчисление в конце XVII века, и обозначения Лейбница стали стандартом.
В элементарной алгебре переменная в выражении — это буква , которая представляет число, значение которого может изменяться. Вычислить выражение с переменной — значит найти значение выражения, когда переменной присвоено заданное число. Выражения можно вычислять или упрощать, заменяя операции , которые появляются в них, их результатом или объединяя подобные члены . [23]
Например, возьмем выражение ; его можно вычислить при x = 3, выполнив следующие шаги:
, (замените x на 3)
(используйте определение показателя степени )
(упрощать)
Член — это константа или произведение константы и одной или нескольких переменных. Вот несколько примеров: Константа произведения называется коэффициентом . Члены, которые являются константами или имеют одинаковые переменные, возведенные в одинаковые степени, называются подобными членами . Если в выражении есть подобные члены, вы можете упростить выражение, объединив подобные члены. Мы складываем коэффициенты и сохраняем ту же переменную.
Любая переменная может быть классифицирована как свободная переменная или связанная переменная . Для заданной комбинации значений свободных переменных выражение может быть оценено, хотя для некоторых комбинаций значений свободных переменных значение выражения может быть неопределенным . Таким образом, выражение представляет собой операцию над константами и свободными переменными, и ее выходом является результирующее значение выражения. [24]
Для неформализованного языка, то есть в большинстве математических текстов за пределами математической логики , для отдельного выражения не всегда возможно определить, какие переменные свободны, а какие связаны. Например, в , в зависимости от контекста, переменная может быть свободной и связанной, или наоборот, но они не могут быть свободными оба. Определение того, какое значение предполагается свободным, зависит от контекста и семантики . [25]
Выражение часто используется для определения функции или обозначения композиции функций, принимая переменные в качестве аргументов или входов функции и назначая выход в качестве оценки результирующего выражения. [26] Например, и определяют функцию, которая связывает с каждым числом его квадрат плюс один. Выражение без переменных будет определять постоянную функцию . Таким образом, два выражения называются эквивалентными, если для каждой комбинации значений для свободных переменных они имеют одинаковый выход, т. е. они представляют одну и ту же функцию. [27] [28] Эквивалентность между двумя выражениями называется тождеством и иногда обозначается с помощью
Например, в выражении переменная n связана, а переменная x свободна. Это выражение эквивалентно более простому выражению 12 x ; то есть Значение для x = 3 равно 36, что можно обозначить
Полином состоит из переменных и коэффициентов , которые включают только операции сложения , вычитания , умножения и возведения в степень неотрицательных целых чисел, и имеет конечное число членов. Проблема оценки полинома часто возникает на практике. В вычислительной геометрии полиномы используются для вычисления приближений функций с использованием полиномов Тейлора . В криптографии и хэш-таблицах полиномы используются для вычисления k -независимого хэширования .
В первом случае полиномы оцениваются с использованием арифметики с плавающей точкой , что не является точным. Таким образом, различные схемы оценки, как правило, дадут немного разные ответы. Во втором случае полиномы обычно оцениваются в конечном поле , и в этом случае ответы всегда точны.
Для оценки одномерного многочлена наиболее наивный метод будет использовать умножения для вычисления , использовать умножения для вычисления и так далее для общего количества умножений и сложений. Используя лучшие методы, такие как правило Горнера , это можно свести к умножениям и сложениям. Если разрешена некоторая предварительная обработка, возможна еще большая экономия.
Вычисление — это любой тип арифметического или неарифметического вычисления , который является «хорошо определенным». [29] Идея о том, что математические утверждения должны быть «хорошо определенными», обсуждалась математиками по крайней мере с 1600-х годов , [30] но соглашение о подходящем определении оказалось неуловимым. [31] Кандидатное определение было предложено независимо несколькими математиками в 1930-х годах. [32] Самый известный вариант был формализован математиком Аланом Тьюрингом , который определил хорошо определенное утверждение или вычисление как любое утверждение, которое может быть выражено в терминах параметров инициализации машины Тьюринга . [33] [ нужна страница ] Определение Тьюринга распределяло «хорошо определенность» на очень большой класс математических утверждений, включая все правильно сформированные алгебраические утверждения и все утверждения, написанные на современных языках программирования. [34]
Несмотря на широкое распространение этого определения, существуют некоторые математические концепции, которые не имеют четко определенной характеристики в рамках этого определения. К ним относятся проблема остановки и игра занятого бобра . Остается открытым вопрос о том, существует ли более мощное определение «хорошо определенного», которое способно охватить как вычислимые, так и «невычислимые» утверждения. [a] [35] Все утверждения, характеризуемые в современных языках программирования, четко определены, включая C++ , Python и Java . [34]
Распространенными примерами вычислений являются базовая арифметика и выполнение компьютерных алгоритмов . Вычисление — это преднамеренный математический процесс, который преобразует один или несколько входов в один или несколько выходов или результатов . Например, умножение 7 на 6 — это простое алгоритмическое вычисление. Извлечение квадратного корня или кубического корня числа с использованием математических моделей — это более сложное алгоритмическое вычисление.
Выражения могут быть вычислены с помощью стратегии оценки . [36] Для иллюстрации, выполнение вызова функции f(a,b)
может сначала оценить аргументы a
и b
, сохранить результаты в ссылках или ячейках памяти ref_a
и ref_b
, а затем оценить тело функции с этими переданными ссылками. Это дает функции возможность искать исходные значения аргументов, переданные через разыменование параметров (некоторые языки используют специальные операторы для этого), изменять их через присваивание , как если бы они были локальными переменными, и возвращать значения через ссылки. Это стратегия оценки вызова по ссылке. [37] Стратегия оценки является частью семантики определения языка программирования. Некоторые языки, такие как PureScript , имеют варианты с различными стратегиями оценки. Некоторые декларативные языки , такие как Datalog , поддерживают несколько стратегий оценки. Некоторые языки определяют соглашение о вызовах .
В переписывании стратегия сокращения или стратегия переписывания — это отношение, определяющее переписывание для каждого объекта или термина, совместимое с данным отношением сокращения. Стратегия переписывания определяет, какой из всех приводимых подтерминов ( редексов ) должен быть сокращен ( контрактирован ) в пределах термина. Одна из наиболее распространенных систем включает лямбда-исчисление .
Язык математики демонстрирует своего рода грамматику (называемую формальной грамматикой ) о том, как могут быть записаны выражения. Существуют два соображения относительно четкости определения математических выражений: синтаксис и семантика . Синтаксис касается правил, используемых для построения или преобразования символов выражения без учета какой-либо интерпретации или значения , придаваемого им. Выражения, которые синтаксически правильны, называются хорошо сформированными . Семантика касается значения этих правильно сформированных выражений. Выражения, которые семантически правильны, называются хорошо определенными .
Синтаксис математических выражений можно описать несколько неформально следующим образом: разрешенные операторы должны иметь правильное количество входов в правильных местах (обычно записанных с использованием инфиксной нотации ), подвыражения, составляющие эти входы, должны быть сами по себе правильно сформированы, иметь четкий порядок операций и т. д. Строки символов, которые соответствуют правилам синтаксиса, называются правильно сформированными , а те, которые не являются правильно сформированными, называются неправильно сформированными и не являются математическими выражениями. [38]
Например, в арифметике выражение 1 + 2 × 3 является правильно построенным, но
это не так.
Однако быть правильно сформированным недостаточно, чтобы считаться правильно определенным. Например, в арифметике выражение правильно сформировано, но не правильно определено. (См. Деление на ноль ). Такие выражения называются неопределенными .
Семантика — это изучение значения. Формальная семантика — это придание значения выражениям. Выражение, которое определяет уникальное значение или значение, называется хорошо определенным . В противном случае выражение называется плохо определенным или неоднозначным. [39] В общем, значение выражений не ограничивается обозначением значений; например, выражение может обозначать условие или уравнение , которое должно быть решено, или его можно рассматривать как объект сам по себе, которым можно манипулировать в соответствии с определенными правилами. Некоторые выражения, обозначающие значение, одновременно выражают условие, которое, как предполагается, выполняется, например, те, которые включают оператор для обозначения внутренней прямой суммы .
В алгебре выражение может использоваться для обозначения значения, которое может зависеть от значений, присвоенных переменным, встречающимся в выражении. Определение этого значения зависит от семантики, приписанной символам выражения. Выбор семантики зависит от контекста выражения. Одно и то же синтаксическое выражение 1 + 2 × 3 может иметь разные значения (математически 7, но также и 9) в зависимости от порядка операций, подразумеваемого контекстом (см. также Операции § Калькуляторы ).
Для действительных чисел произведение однозначно, поскольку ; следовательно, говорят, что обозначение хорошо определено . [40] Это свойство, также известное как ассоциативность умножения, гарантирует, что результат не зависит от последовательности умножений; поэтому спецификация последовательности может быть опущена. Операция вычитания неассоциативна; несмотря на это, существует соглашение, которое является сокращением для , поэтому оно считается «хорошо определенным». С другой стороны, деление неассоциативно, и в случае соглашения о скобках не являются хорошо установленными; поэтому это выражение часто считается плохо определенным.
В отличие от функций, неоднозначности обозначений можно преодолеть с помощью дополнительных определений (например, правил приоритета , ассоциативности оператора). Например, в языке программирования C оператор -
вычитания является ассоциативным слева направо , что означает, что a-b-c
определяется как (a-b)-c
, а оператор =
присваивания является ассоциативным справа налево , что означает, что a=b=c
определяется как a=(b=c)
. [41] В языке программирования APL есть только одно правило: справа налево — но скобки сначала.
Термин «выражение» является частью языка математики , то есть он не определяется в математике, а рассматривается как примитивная часть языка. Попытка определить термин не будет занятием математикой, а скорее будет вовлечением в своего рода метаматематику ( метаязык математики), обычно математическую логику . В математической логике математика обычно описывается как своего рода формальный язык , и правильно сформированное выражение может быть определено рекурсивно следующим образом: [42]
Алфавит состоит из :
При использовании этого алфавита рекурсивные правила формирования правильно сформированного выражения (WFE) следующие:
Правильно сформированное выражение можно рассматривать как синтаксическое дерево . [43] Листовые узлы всегда являются атомарными выражениями. Операции и имеют ровно два дочерних узла, тогда как операции , и имеют ровно один. Существует счетное бесконечное множество WFE, однако каждый WFE имеет конечное число узлов.
Формальные языки позволяют формализовать концепцию правильно построенных выражений.
В 1930-х годах Алонзо Чёрч и Стивен Клини ввели новый тип выражений, называемых лямбда-выражениями , для формализации функций и их оценки. [44] [b] Они составляют основу лямбда-исчисления — формальной системы , используемой в математической логике и теории языков программирования .
Эквивалентность двух лямбда-выражений неразрешима . Это также касается выражений, представляющих действительные числа, которые построены из целых чисел с использованием арифметических операций, логарифма и экспоненты ( теорема Ричардсона ).
Алгебраическое выражение — это выражение, составленное из алгебраических констант , переменных и алгебраических операций ( сложение , вычитание , умножение , деление и возведение в степень с рациональным числом ). [45] Например, 3 x 2 − 2 xy + c — это алгебраическое выражение. Поскольку извлечение квадратного корня равнозначно возведению в степень 1/2 , следующее также является алгебраическим выражением:
См. также: Алгебраическое уравнение и Алгебраическое замыкание
Полиномиальное выражение — это выражение, построенное с помощью скаляров (чисел элементов некоторого поля), неопределенных чисел и операторов сложения, умножения и возведения в степень неотрицательных целых чисел; например
Используя ассоциативность , коммутативность и дистрибутивность , каждое полиномиальное выражение эквивалентно полиному , то есть выражению, которое является линейной комбинацией произведений целых степеней неопределенных. Например, приведенное выше полиномиальное выражение эквивалентно (обозначим тот же полином как
Многие авторы не различают многочлены и многочленные выражения. В этом случае выражение многочленного выражения в виде линейной комбинации называется канонической формой , нормальной формой или развернутой формой многочлена.
В информатике выражение — это синтаксическая сущность в языке программирования , которая может быть оценена для определения ее значения [46] или не может быть завершена, в этом случае выражение не определено. [47] Это комбинация одной или нескольких констант , переменных , функций и операторов , которые язык программирования интерпретирует (в соответствии со своими особыми правилами приоритета и ассоциации ) и вычисляет для получения («возвращения», в среде с сохранением состояния ) другого значения. Этот процесс для математических выражений называется вычислением . В простых настройках результирующее значение обычно является одним из различных примитивных типов , таких как строка , логическое значение или число (например , целое число , число с плавающей точкой или комплексное ).
В компьютерной алгебре формулы рассматриваются как выражения, которые могут быть оценены как булевы, в зависимости от значений, которые даны переменным, встречающимся в выражениях. Например, принимает значение false, если x дано значение меньше 1, и значение true в противном случае.
Выражения часто противопоставляются утверждениям — синтаксическим сущностям, не имеющим значения (инструкциям).
За исключением чисел и переменных , каждое математическое выражение можно рассматривать как символ оператора, за которым следует последовательность операндов. В программном обеспечении компьютерной алгебры выражения обычно представляются таким образом. Это представление очень гибкое, и многие вещи, которые на первый взгляд не кажутся математическими выражениями, могут быть представлены и обработаны как таковые. Например, уравнение — это выражение с "=" в качестве оператора, матрица может быть представлена как выражение с "matrix" в качестве оператора и ее строками в качестве операндов.
См.: Выражение компьютерной алгебры
В математической логике «логическое выражение » может относиться как к терминам , так и к формулам . Термин обозначает математический объект, а формула обозначает математический факт. В частности, термины появляются как компоненты формулы.
Термин первого порядка рекурсивно строится из константных символов, переменных и функциональных символов . Выражение, образованное путем применения предикатного символа к соответствующему числу терминов, называется атомарной формулой , которая оценивается как истина или ложь в бивалентной логике , учитывая интерпретацию . Например, — это термин, построенный из константы 1, переменной x и бинарных функциональных символов и ; он является частью атомарной формулы , которая оценивается как истина для каждого вещественного значения x .
алгебраическое выражение над полем.
Декарт, Рене (2006) [1637]. Рассуждение о методе правильного направления своего разума и поиска истины в науках. Перевод Яна Маклина. Oxford University Press. ISBN 0-19-282514-3.