Каждое алгебраическое выражение хранися системой 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( ) можно задать несколько подвыражений в виде списка. Ее результатом будет ИСТИНА тогда и только тогда, когда найдено хотя бы одно из подвыражений в списке.
Еще одна булева функция hastype( выражение, тип) определяет, содержит ли выражение подвыражения заданного типа. Если из выражения необходимо выделить не операнды, содержащие подвыражения заданного типа, а сами подвыражения, то следует использовать функцию indets( выражение, тип). Эта функция возвращает в виде множества все подвыражения указанного типа. | |