Функции компьютерной алгебры
Функции компьютерной алгебры
Системы компьютерной алгебры имеют несколько характерных для них функций, выполняющих достаточно сложные преобразования выражений. Эти функции имеют вполне установившиеся названия (Simplify, Expand, Collect, Factor и т. д.) и встречаются практически во всех системах символьной математики. Настало время детально познакомиться с ними, что и делается в данном разделе.
Упрощение выражений — функция Simplify
Упрощение математических выражений — одна из самых важных задач символьной математики. Частенько невероятно сложное математическое выражение, пугающее новичков своим грозным видом, является просто нулем или единицей либо сводится к простому выражению после ряда вполне заурядных (хотя, порою, и довольно сложных) преобразований. Качество выполнения операции упрощения во многом определяется мощью ядра математической системы, поскольку зависит от числа заложенных в него функций и правил преобразования выражений.
С точки зрения простоты выражений они делятся на недостаточно простые и достаточно простые выражения. Недостаточно простые выражения таят в себе всевозможные «излишества»: сокращаемые общие члены, лишние переменные и функции, полиномы со степенями, допускающими понижение, и т. д. Это затрудняет качественный анализ выражений и может даже приводить к неоднозначным и даже неверным результатам.
Mathematica всегда старается упростить то или иное выражение, если для этого не требуется каких-либо особых средств. Например, сложные выражения, содержащие элементарные или специальные функции, превращаются в более простые выражения — в том лишь смысле, что они состоят из более простых функций. Следующие примеры иллюстрируют это.
Ввод (In) |
Вывод (Out) |
(Csc[x] Tan[w]) / (Cot[x] Sec[w]) |
Sec[x] Sin[w] |
BesselY[5/2, Е] |
SQRT(2/л)(Cos[E]-[3Cos[E]+3Sin[E]]/SQRT(E)) |
Однако так бывает далеко не всегда, и для проведения необходимых преобразований используются различные функции, описанные ниже.
Для упрощения выражений используется функция Simplify [ехрг]. Она исполняет последовательность алгебраических преобразований над выражением ехрг и возвращает простейшую из найденных форм (обычно это бывает нормальная форма выражения).
Функция Simplify работает с самыми различными математическими выражениями: многочленами, рациональными выражениями (состоящими из полиномов и их отношений), расширенными рациональными выражениями (имеющими дробные степени переменных), элементарными и специальными функциями, алгебраическими и тригонометрическими выражениями и т. д. Обычно она приводит выражения к нормальному виду, что автоматически означает и приведение к виду достаточно простых выражений.
Приведем наиболее характерные результаты действия функции Simplify.
Ввод (In) |
Вывод (Out) |
Комбинирование числовых подвыражений Simplify [6 х 2] |
12 х |
Приведение подобных множителей у произведений Simplify[x ^ 3 у х ^ 5] |
х 8 у |
Приведение подобных членов суммы Simplify[x + 12 + 4 х] |
5 х + 12 |
Упрощение тождеств, содержащих 0 или 1 Simplify [2+0] Simplify[l*x] |
2 х |
Распределение целочисленных показателей степени в произведениях Simplify[(5 х ^ 2 у ^ 3) ^ 2] |
5 х 4 у 5 |
Приведение общих знаменателей к выражениям с пониженной степенью или с исключением сокращаемых переменных Simplify [2 х / (х ^ 2- 1) — 1/(х + 1) ] |
1/(х + 1) |
Разложение полиномов и понижение степени выражений Simplify[(x + 1) ^ 2-х ^ 2] |
2 х + 1 |
Сокращение на наибольший полиномиальный делитель ; Simplify [ (х ^ 2 — 2 х у + у ^ 2 ) / (х ^ 2 — у ^ 2 ) ] |
(х -у)/(х + у) |
Следующие примеры дополнительно поясняют применение функции Simplify.
Ввод (In) |
Вывод (Out) |
Simplify[a*a — 2*а*b + b^2] |
(a-b) 2 |
Simplify [Exp [х] ^2/х] |
E 2x /X |
Sirnplif у [Sin [x-y] H-Sin [х+у] ] |
2Cos[y] Sin[x] |
Simplif у [Ехр [х] *Ехр [у] /Exp [z] ] |
E x+y-z |
Simplify [Exp [z*Log [b] ] ] |
b z |
Simplify [Log [x/y] ] |
Log[x/y] |
А := (Cos[4*x] — 4*Cos[2*x] +3)/ (4*Cos[2*x] + Cos[4*x] + 3) |
|
Simplify [A] |
Tan[x] 4 |
Simplify[6*Log[10] ] |
6Log[10] |
Simplify[6 Log[10], Complexity Function -> LeafCount] |
Log[ 1000000] |
Операция Simplify часто выполняется по умолчанию. Например, это обычно происходит при вычислении выражений, примеры чего приводились выше. Несомненно, это одна из наиболее важных и часто применяемых операций компьютерной алгебры.