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