Каждое алгебраическое выражение хранися системой 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(выражение, тип). Эта функция возвращает в виде множества все подвыражения указанного типа. | ![]() |