Работа с выражениями
Математические выражения – основа описания алгоритмов вычислений. Фактически, вся символьная математика основана на тех или иных видах преобразований выражений. Такие преобразования и описаны в данном уроке.
Одним из важнейших понятий системы 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+23 + 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 применяется к каждому выражению списка, что дает более компактную запись.
