Иллюстрированный самоучитель по Mathematica

         

Упрощение выражений — функция 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 часто выполняется по умолчанию. Например, это обычно происходит при вычислении выражений, примеры чего приводились выше. Несомненно, это одна из наиболее важных и часто применяемых операций компьютерной алгебры.

Вообще говоря, понятие упрощения математических выражений не является однозначным. К примеру, некоторые пакеты символьной математики упрощают sin(x)/cos(x) к единой математической функции tan(x), тогда как другие упрощают tan(x) к sin(.r)/cos(.r), считая, что функции sin(x) и cos(.r) более простые, чем функция tan(.r).Эта неоднозначность часто путает неопытных пользователей, пытающихся проверить символьные системы примерами из справочников, — вполне возможно, что авторы их придерживались несколько иного подхода к упрощению выражений, чем разработчики той или иной математической системы.



Содержание раздела