Основные формы записи выражений
Основные формы записи выражений
Возможны четыре основные формы записи выражений:
- f [х, у] — стандартная форма для f [х, у];
- f @ х — префиксная форма для f [ х ];
- х / / f — постфиксная форма для f [ х ];
- х ~ f ~ у — инфиксная форма для f [ х, у ].
Далее приведены примеры применения этих форм.
Ввод (In) |
Вывод (Out) |
F[x_] = 2*х^2 |
2X 2 |
F[a] |
2a 2 |
a//F |
2 a 2 |
f [x_, y_] = х^ 2 + у^2 |
y 2 +x 2 |
f[a,b] |
a 2 +b 2 |
a-f-b |
a 2 + b 2 |
Можно использовать ту или иную форму выражений в зависимости от класса решаемых математических задач.
Части выражений и работа с ними
Сложные выражения состоят из частей, которые могут интерпретироваться различным образом.
Тип части |
Зависимость |
Пример |
Function |
От аргументов или параметров |
Ехр[х], f [х,у] |
Command |
От аргументов или параметров |
Expand [ (х-1) ^2] |
Operator |
От операндов |
x + y+z, a = b |
Head |
От элементов |
{a,b,c} |
Object type |
От контекста |
RGBColor [r,g,b] |
Работа с частями выражений напоминает работу со списками. Для выделения любой заданной части выражения используются функция Part или двойные квадратные скобки;
- Part [expr, n] или expr [ [n] ] — выделяет п-ю часть выражения, начиная с начала;
- expr [ [-n] ] — выделяет п-ю часть выражения, начиная с конца;
- expr [ [nl,n2,…] ] — выделяет части выражения и показывает их в форме дерева;
- expr [[{nl, n2,…}]] — дает комбинацию нескольких частей выражения. Приведем примеры использования этих средств.
Ввод (In) |
Вывод (Out) |
f :=а + b*х^2 + с*х^3 |
|
Part[f, 3] |
ex 3 |
Part[f, 2] |
bx 2 |
f[[1]] |
a |
f[[3]] |
ex 3 |
f[[-1]] |
ex 3 |
Нередко выражения рассматриваются как возможные значения переменных. В этом случае используются операторы присваивания переменным заданных значений. Mathematica имеет два типа присваивания — с помощью символов «: =» и с помощью символа «=». Они различаются временем вычисления выражения, следующего за этими символами. Знак «: =» используется для задержки присваивания до вычисления правой части, например:
f[x_] := % + 2 х
Вывода здесь нет. Продолжим наш эксперимент: 1 + у^2
1 + y2
g[х_] = % + 2 х
1 + 2 х + у2
Теперь вывод есть, так как % (ссылка на предыдущий результат) определена в виде выражения 1 + у^2 и при задании [х_] использован оператор немедленного присваивания. Далее:
2 + z
2 + z
{f[a],g[a]>
{2 + 2a+z, 1 + 2 а + у2}
Следующие функции возвращают особые части выражения:
- Denominator [expr] — возвращает знаменатель выражения ехрг;
- First[expr] — возвращает первый элемент из ехрг;
- Last[expr] — возвращает последний элемент из ехрг;
- Rest [expr] — возвращает ехрг с удаленным первым элементом.
Ниже приводятся примеры применения этих функций.
Ввод (In) |
Вывод (Out) |
Denominator [ (х + 1) / (х ^ 2 + 2*х + 3) ] |
3+ 2х+ х^2 |
ехрг = а * b + с — d |
ab+ с- d |
First [expr] |
ab |
Last [expr] |
-d |
Rest [expr] |
c-d |
Работа с выражениями, умение их преобразовывать и выделять нужные фрагменты является важнейшей частью культуры символьных преобразований.
Удаление элементов выражения
Иногда возникает необходимость в удалении части выражения. Для этого используются следующие функции:
- Delete [expr, n] — удаляет элемент в позиции п в выражении ехрг. Если п отрицательно, позиция отсчитывается с конца;
- Deletefexpr, (i, j,…}] — стирает часть выражения в позиции {i, j ,…};
- Delete [expr, {{i1, j1,…}, {i2, j2,…},…}] — удаляет части выражения в нескольких указанных позициях;
- DeleteCases [expr, pattern] — удаляет все элементы выражения expr, которые совпадают с образцом pattern;
- DeleteCases[expr, pattern, levspec] — удаляет все части выражения ехрг на уровнях, указанных levspec и соответствующих образцу pattern.
Следующие примеры иллюстрируют применение этих функций.
Ввод (In) |
Вывод (Out) |
ехрr = а * b + с — d |
ab + с — d |
Delete [expr, 1] |
c-d |
Delete [expr, 3] |
ab+ с |
Delete [expr, {{!}, {3}}] |
с |
DeleteCases [expr, а*b] |
c-d |
DeleteCases [expr, с, 1] |
ab-d |
Обратите внимание на то, что в общем случае выражения могут быть многоуровневыми. Уровень задается спецификацией levspec.