Компьютерная алгебра
Компьютерная алгебра
- Работа с выражениями
- Выделения и подстановки в функциях
- Рекурсивные функции
- Инверсные функции
- Задание математических отношений
- Упрощение выражений
- Раскрытие и расширение выражений
- Функции преобразования тригонометрических выражений
- Основные операции над полиномами
- Функции для расширенных операций с выражениями
Математические выражения — основа описания алгоритмов вычислений. Фактически, вся символьная математика основана на тех или иных видах преобразований выражений. Такие преобразования и описаны в данном уроке.
Работа с выражениями
Одним из важнейших понятий системы 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+х^2+(у+г)^2+2
3 + х2 + (y+z)2
FullForm[%]
Plus[3, Power[x, 2], Power[Plus[у, 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[l + 2], Head[аЬ] , Head[ 5/7], Headfl + 3i], Head[e2]}
{Integer, Times, Rational, Complex, Power}
Head/@{l, 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}