Работа с выражениями
Математические выражения – основа описания алгоритмов вычислений. Фактически, вся символьная математика основана на тех или иных видах преобразований выражений. Такие преобразования и описаны в данном уроке.
Одним из важнейших понятий системы Mathematica является математическое выражение, или просто выражение – ехрг (от английского слова expression). Работа с математическими выражениями в символьном виде – основа основ символьной математики.
Выражение может быть представлено в общепринятом виде (как математическая формула или ее часть) с помощью операторов, например, а* (х + у + z) или х ^ у, оно может задавать и некоторую функцию f [х, у,…] или их комбинацию. Наряду с такой формой существует так называемая полная форма представления выражений, при которой основные арифметические операции задаются не операторами, а только соответствующими функциями. Ее примеры даны ниже.
Выражение ехрг | Полная форма ехрг | Комментарий |
---|---|---|
х + у + z | Plus [х, у, z] | Сложение |
х у z | Times [x, у, z] | Умножение |
х^n | Power [x,n] | Возведение в степень |
{a,b,c} | List [a,b, c] | Создание списка |
a › b | Rule [a,b] | Подстановка |
a=b | Set [a,b] | Присваивание |
Для вывода выражения ехрг в полной форме используется функция FullForm [ехрг ]. Примеры перевода выражений в полную форму:
1
+
x
^
2
+
(y
+
r)
^
2
+
2
3
+
x2
+
(y
+
z)
2
FullForm[
%
]
Plus[
3
, Power[x,
2
], Power[Plus[y, z],
2
]]
Integrate[a
*
Sin[b
*
x]
*
Exp[
-
c
*
x],x]
a [(be
-
cxCos[bx])
/
{
-
ib
+
c) (ib
+
c)
-
(ce
+
cxSin[bx]) \(
-
ib
+
c) (ib
+
c) ]
FullForm[
%
]
Times[a, Plus[Times[
-
1
, b, Power[Plus[Times[Complex[
0
,
-
1
], b], c],
-
1
],
Power[Plus[Times[Complex[
0
,
1
], b], c],
-
1
],
Power[E, Times[
-
l, c, x] ], Cos[Times[b, x] ] ],
Times[
-
1
, c, Power[Plus[Times[Complex[
0
,
-
1
], b], c],
-
1
],
Power[Plus[Times[Complex[
0
,
1
], b], c],
-
1
],
Power[E, Times[
-
1
, c, x] ], Sin[Times[b, x]]]]]
Для определения типа выражения служит функция Head [ехрr ]. Применительно к числовым выражениям она возвращает тип результата, как показано в приводимых ниже примерах.
Ввод (In) | Вывод (Out) |
---|---|
1+2+3 | 6 |
Head[%] | Integer |
Head[123/12345] | Rational |
Head[2*0.25] | Real |
Следующие примеры поясняют действие функции Head для символьных выражений:
- Head[f [x,y, z] – возвращает f;
- Head[a+b+c] – возвращает Plus;
- Head[x ^ n] – возвращает Power;
- Head[ {a, b, с} ] – возвращает List.
Другая пара примеров показывает применение Head в списках с разнородными выражениями:
{Head[
1
+
2
], Head[ab], Head[
5
/
7
], Head[
1
+
3i
], Head[e2]}
{Integer, Times, Rational, Complex, Power}
Head
/
@{
1
,
1
/
3
,
2.1
,
2
+
3i
, x, f[x], {
1
,
2
,
3
}, a
+
b, a
/
b}
{Integer, Rational, Real, Complex, Symbol, f, List, Plus, Times}
Обратите внимание на второй пример – в нем функция Head применяется к каждому выражению списка, что дает более компактную запись.