-
Математические выражения – основа описания алгоритмов вычислений. Фактически, вся символьная математика основана на тех или иных видах преобразований выражений. Такие преобразования и описаны в данном уроке.
-
Возможны четыре основные формы записи выражений: | f [х, у] – стандартная форма для f [х, у]; | f @ х – префиксная форма для f [ х ]; | х / / f – постфиксная форма для f [ х ]; | х ~ f ~ у – инфиксная форма для f [ х, у ]. | Далее приведены примеры применения этих форм. | Ввод (In) | Вывод (Out)
-
Иногда возникает необходимость в удалении части выражения. Для этого используются следующие функции: | Delete [expr, n] – удаляет элемент в позиции п в выражении ехрг. Если п отрицательно, позиция отсчитывается с конца; | Deletefexpr, (i, j,…}] – стирает часть выражения в позиции {i, j,…};
-
При создании программного обеспечения на языке Mathematica, а иногда и в ходе диалоговой работы с системой необходим контроль за некоторыми свойствами выражений. Следующие функции обеспечивают такой контроль:
-
Из описания указанных функций вытекает, что они наряду с полной формой могут задаваться укороченной формой. | Укороченная форма | Полная форма | f @ ехрг | f [expr] | f @@ ехрг | Apply [f, expr] | f /@ ехрг | Map[f, expr] | f //@ ехрг | MapAll [f, expr]
-
Использование подстановок при определении функций позволяет легко реализовывать рекуррентные алгоритмы, то есть алгоритмы, при которых очередной шаг вычислений основан на определенном преобразовании предшествующих шагов.
-
Приведем еще ряд примеров действия функций Apply, Map и Nest. | Ввод (In) | Вывод (Out) | Nest[f,x,3] | f [f[f [X]]] | Apply[f,{a,b,c}] | f[a, b, c] | s [x_,y_, z_]: =х+у+b | | N[Apply[s,{l,2,a}]] | 3. + b | Map[f,{a,b,c}] | {f [a], f [b], f [c] } | N[Map[Exp, {1.2.3}]]
-
Символьные преобразования – при всей их кажущейся таинственности осуществляются по определенным, хотя и весьма многочисленным, а потому для нас запутанным, правилам. Основные из них давно известны из математики и описаны в многочисленных справочниках и монографиях.
-
Системы компьютерной алгебры имеют несколько характерных для них функций, выполняющих достаточно сложные преобразования выражений. Эти функции имеют вполне установившиеся названия (Simplify, Expand, Collect, Factor и т. д.) и встречаются практически во всех системах символьной математики.
-
Расширение, или раскрытие, выражений – еще одна типовая операция компьютерной алгебры. По смыслу она противоположна упрощению выражений. Часто компактная форма представления выражений обусловлена определенными операциями по их упрощению.
-
К операциям, расширяющим выражения, относится также функция Collect: | Collect [expr, x] – выполняет приведение общих членов выражения по степеням переменной х; | Collect [expr, {x1, x2,…}] – выполняет приведение общих членов выражения по степеням переменных x1, х2,… | Эта операция особенно полезна, если результат можно представить в виде степенных многочленов.
-
Хотя представленные выше функции иногда применимы для тригонометрических выражений, для последних есть ряд специальных функций, дающих более надежные результаты в ходе преобразований тригонометрических функций. В названии этой группы функций имеется слово Trig.
-
Полиномом называют выражение, состоящее из нескольких частей одного вида. В западной математической литературе к ним часто относят степенной многочлен вида: | P(x) = a0 + a1x + a2 x2 + a3 x3 + ...
-
Разложение чисел, математических выражений и особенно полиномов на простые, множители является столь же распространенной операцией, что и функции Simplify, Collect и Expand. Имеется целый ряд функций, в названии которых есть слово Factor и которые решают указанные задачи:
-
Для работы с полиномами имеется множество функций, по большей части достаточно очевидных для знакомого с математикой пользователя: | Decompose [poly, x] – выполняет разложение полинома, если это возможно, на более простые полиномиальные множители;
-
Выше была описана сравнительно немногочисленная группа функций для работы с выражениями – их упрощения, расширения, выделения множителей и т. д. Эти функции способны решать большинство повседневных задач, связанных с аналитическими преобразованиями выражений.