Внутренняя структура объектов Maple.

Каждое алгебраическое выражение хранися системой Maple в виде древовидной структуры, обеспечивая тем самым доступ к любому ее члену или подвыражению, а также позволяя выполнять над ними разнообразные символьные преобразования. В представлении этой структуры каждый объект Maple делится на подобъекты первого уровня, которые, в свою очередь, также делятся на подобъекты и т.д.

Команды, позволяющие выделять части объектов:

rhs(уравн) Выделение правой части уравнения (или конца диапазона)
lhs(уравн) Выделение левой части уравнения (или начала диапазона)
numer(дробь) Выделение числителя числовой или алгебраической дроби
denum(дробь) Выделение знаменателя числовой или алгебраической дроби
nops(выр) Определяет количество операндов в выражении
op(выр) op(n,выр) Выдает операнды выражения в виде списка, Извлекает n-ый операнд выражения
select(б ф, выр) Выделяет в выражении операнды, для которых булева функция дает значение true
remove(б ф, выр) Выделяет в выражении операнды, для которых булева функция дает значение false
indets(выр, тип) Выделяет в выражении подвыражения заданного типа('*', '+' ...)

Познакомимся с этими командами более подробно.

Уравнение представляется в виде двух выражений, соединенных знаком равенства. Его не следует путать с операцией присваивания (:=). Уравнение является объектом Maple и служит для задания действительных уравнений. Его можно использовать в правой части операции присваивания, именуя тем самым уравнение.

Команды lhs( ) и rhs( ) позволяют выделить левую и правую части уравнений (или, применительно к диапазонам, их начало и конец).

 

Команды numer( ) и denom( ) выделяют, соответственно, числитель и знаменатель дроби, причем перед выделением этих частей дробей Maple осуществляет их упрощение, приводя к нормальной форме.

 

Команда nops( ) определяет количество операндов в выражении, а команда op( ) выдает их в виде последовательности выражений. Эта же команда позволяет извлечь конкретный операнд выражения, указав в качестве первого параметра его порядковый номер. Отметим, что операндами списка или множества являются его элементы.

 

Команды select( ) и remove( ) были ранее рассмотрены в разделе ???. Для работы этих команд необходимо в качестве первого параметра указать булеву функцию, результатом работы которой будет ответ true или false. Maple предлагает большое количество булевых функций, которые можно использовать в командах select( ) и remove( ) для работы со структурой выражений.

 

Команда has( выражение, подвыражение) определяет, содержится ли некоторое подвыражение в заданной выражении. Команда has( ) понимает только те подвыражения, которые могут быть определены с помощью команды op( ). Для выделения в выражении членов, содержащих некоторую функцию в команде has( ) следует задавать лишь ИМЯ этой функции (без аргументов).

В функции has( ) можно задать несколько подвыражений в виде списка. Ее результатом будет ИСТИНА тогда и только тогда, когда найдено хотя бы одно из подвыражений в списке.