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