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

Функции компьютерной алгебры. Упрощение выражений (функция Simplify). Функция полного упрощения FullSimplify.

Следующие примеры дополнительно поясняют применение функции Simplify.

Ввод (In) Вывод (Out)
Simplify[a*a -2*а*b + b^2] (a-b)2
Simplify [Exp [х] ^2/х] E2x /X
Sirnplif у [Sin [x-y] H-Sin [х+у] ] 2Cos[y] Sin[x]
Simplif у [Ехр [х] *Ехр [у] /Exp [z] ] Ex+y-z
Simplify [Exp [z*Log [b] ] ] bz
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). Эта неоднозначность часто путает неопытных пользователей, пытающихся проверить символьные системы примерами из справочников, – вполне возможно, что авторы их придерживались несколько иного подхода к упрощению выражений, чем разработчики той или иной математической системы.

Функция полного упрощения FullSimplify

Функция FullSimplify, область применения которой в Mathematica 4 заметно расширена, обладает заметно большими возможностями, чем функция Simplify. В частности, она обеспечивает упрощение выражений, содержащих специальные математические функции:

Simplify [Gamma [x] *x* (x+1) * (x+2) * (x+n) ]
x(1+x) (2 + x) (n+x) Garrma[x]
  
FullSimplify [Gamma [x] *x* (x+1) * (x+2) * (x+n) ]
(n+ x) Garrma[3 + x]
  
Simplify[Tan[x], ComplexityFunction > (Count[{#1}, _Tan, \ [Infinity]]*;)]
Tan[x]
  
FullSimplify [Tan [x], ComplexityFunction > (Count[{#1}, _Tan, \ [Infinity]] &)]

Как видно из этих примеров, функция FullSimplify обеспечивает упрощение даже в том случае, когда функция Simplify пасует. Неплохо упрощаются тригонометрические функции, особенно при использовании опции Complexity-Function, подсказывающей путь упрощения.

В то же время нельзя не отметить, что теоретический фундамент упрощения выражений находится лишь в начале своего возведения, так что не стоит удивляться, если отдельные выражения не будут упрощаться – даже в том случае, когда это в принципе возможно. Более того, с позиций истинного математика функции Simplify и FullSimplify делают не совсем понятно что. Тем не менее, часто эти функции позволяют получить вполне приемлемую, хотя вовсе не единственную и не самую простую форму упрощаемого выражения.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.