Команды преобразования выражений.
Для некоторых команд Maple существуют две формы: активная и пассивная. Имя активной команды начинается со строчной буквы. После ввода такой команды и нажатия клавиши Enter, она сразу выполняется.
Пассивная форма команды не выполняется немедленно ядром Maple, а просто в области вывода отображает математическую запись того, что она может сделать. Имя пассивной команды начинается с прописной буквы. В дальнейшем, используя команду value( ) пассивная команда может быть исполнена. Однако, основное предназначение пассивных команд - использование их как средства документирования производимых действий в обычной математической форме. |
В данном разделе лекции рассмотрен ряд наиболее часто используемых при выполнении аналитических вычислений команд.
< a )> | упрощение выражений |
раскрытие скобок в выражении | |
нахождение максимального числа независимых сомножителей выражения, линейных по заданным переменным с коэффициентами наиболее простой формы | |
< a )> | сокращение алгебраической дроби |
< a )> | приведение нескольких членов разложения к одному |
приведение подобных членов | |
рационализация дробей | |
ограничения на неизвестные | |
< B> | добавочные ограничения на неизвестные |
Рассмотрим более подробно эти команды.
Команда simplify( )предназначена для упрощения разнообразных выражений, включающих рациональные дроби (алгебраические выражения), содержащих тригонометрические, обратные тригонометрические функции, логарифмы, экспоненты и т.д..Эта команда имеет несколько форм вызова, отличающихся наличием параметров, управляющих процедурой упрощения. Её самый простой синтаксис имеет вид:
simplify(выражение);
В скобках в качестве параметра передается выражение, подлежащее упрощению.
Команда simplify( ) ищет в выражении вызовы функций, квадратные корни, радикалы и степени и инициирует подходящие процедуры упрощения, которые хранятся в основной библиотеке Maple.
В вызове команды можно задать конкретные процедуры упрощения, и тогда только они будут использоваться для упрощения заданного выражения, а не весь возможный, установленный по умолчанию набор. Такой вызов обеспечивается следующей формой команды:
simplify(выражение, n1, n2 ...);
Здесь n1, n2 ... являются именами процедур упрощения: Ei, GAMMA, RootOf, @, hypergeom, ln, polar, power, radical, sqrt, trig и др.
В справке по команде simplify( )можно найти перечень возможных процедур упрощения, а также полную информацию о формулах упрощения при использовании того или иного параметра (используя гиперссылки в системе помощи или набрав команду ?simplify[имя], где имя- одно из значений параметров функции).
При упрощении выражения можно предположить, что на переменные в нем наложены некоторые ограничения. Это осуществляется заданием ключевого параметра assume=свойство. Форма вызова команды в этом случае имеет вид: |
simplify(выражение,assume=свойство);
где параметр свойствоможет принимать одно из следующих значений:
complex-комплексная область,
real- действительная область,
pozitiv- положительные действительные числа,
integer - целые числа,
RealRange(a,b)- интервал (a,b)действительных чисел.
При вызове команды упрощения сложно последним (или единственным, не считая самого упрощаемого выражения) параметром указать параметр с именем symbolic.
В этом случае, если выражение содержит многозначные функции, то относительно них будет осуществлено формальное символическое упрощение. Отметим, что этот параметр надо использовать с осторожностью, так как в большинстве случаев результат упрощения не верен на всей комплексной плоскости, а также не всегда известно, какая ветвь многозначной функции использовалась при упрощении. |
Команда simplify( )позволяет задать правила упрощения в виде равенств. Эти правила задаются вторым параметром функции в виде множества. Синтаксис команды в этом случае:
simplify(выражение,{равенство1. равенство2, ...});
Если какое-то выражение при упрощении должно равняться нулю, то такое правило можно задать, просто внеся выражение без знака равенства в список правил. Подробнее ознакомиться с использованием собственных правил упрощения можно на странице Справки, отображаемой командой ?simplify[siderels] |
Основное назначение команды expand( )- представить произведение в виде суммы, т.е. данная команда раскрывает скобки в алгебраическом выражении. Для частного двух полиномов (рациональная алгебраическая дробь) эта команда раскрывает скобки в числителе и делит каждый член полученного выражения на знаменатель, с которым она не производит никаких преобразований. Команда имеет следующий синтаксис:
expand(ВЫРАЖЕНИЕ) expand(ВЫРАЖЕНИЕ, выр1, выр2, ..., вырN) где ВЫРАЖЕНИЕявляется выражением, в котром надо раскрыть скобки, выр1, выр2, ..., вырN- необязательные параметры, указывают системе на подвыражения, в которых скобки раскрывать не надо. |
Данная функция знает правила преобразования тригонометрических выражений, выражений с экспоненциальными функциями, полиномами и др..
Основное предназначение команды factor( ) - разложение на множители полинома от нескольких переменных. Под полиномом в Maple понимается выражение, содержащее неизвестные величины, в которых каждый член представлен в виде произведения целых неотрицательных степеней неизвестных величин с числовым или алгебраическим коэффициентом, т.е. коэффициент может быть целым, дробным, с плавающей точкой, комплексным числом и даже представлять собой алгебраическое выражение с другими переменными.
Синтаксис команды: factor(Выражение) factor(Выражение, пар) где необязательный второй параметр парслужит для указания, над каким числовым полем следует осуществлять разложение полинома. Он может иметь значения: real, complex, а также один радикал или список|множество радикалов. |
Если второй параметр не указан, команда factor( ) раскладывает полином на множители над числовым полем, которому принадлежат коэффициенты полинома.
При применении команды factor( ) к алгебраической рациональной дроби (отношение двух полиномов) сначала осуществляется приведение дроби к нормальной форме (сокращение общих множителей числителя и знаменателя), а после этого и числитель, и знаменатель раскладываются на множители (с учетом поля коэффициентов).
Команда normal( )приводит выражение, содержащее алгебраическую дробь, к общему знаменателю и упрощает полученную алгебраическую дробь, сокращая и числитель, и знаменатель на наибольший общий делитель. Команда имеет две формы вызова:
normal(f); normal(Выражение, expanded); где параметр expanded служит для указания того, что после сокращения дроби в числителе и знаменателе раскрываются скобки. Если параметр Выражение задан в виде списка, множества, последовательности, ряда, уравнения, отношения, или функции, то команда normal(f)последовательно применяется к компонентам f. |
Команда combine( )приводит несколько членов в выражении, представленном суммой, произведением или степенями неизвестных, к одному члену, используя разнообразные правила, которые по существу противоположны правилам, применяемым командой expand( ). Команда имеет несколько форм вызова:
combine(s) combine(s, пар) combine(s, пар, symbolic) где s - выражение, которое надо "свернуть" пар - необязательный параметр, который указывает на функции, пправила преобразования которых (и только они !) должны применяться при выполнении команды. В качестве этого параметра могут быть использованы: |
abs | arctan | conjugate | exp |
icombine | ln | piecewise | poligon |
power | Psi | radical | range |
Signum | trig |
symbolic - параметр, предписывающий команде combine( ) не обращать внимания на интервалы изменения аргументов (на ограничения значений аргументов) функций, указанных в качестве второго параметра. В этом случае осуществляется формальное символическое преобразование в соответствии с правилами преобразования этих функций.
Более подробную информацию об опциях команды combine( ) можно получить, выполнив команду ?combine[опция].
Команда collect( )приводит подобные члены в обобщенных полиномах нескольких переменных, в которых в качестве неизвестных могут выступать функции с аргументами, являющимися неизвестными величинами.
Синтаксис этой команды имеет несколько форм: collect(выражение, x) collect(выражение, x, func) collect(выражение, x, alg, func) |
где x - параметр, указывающий на величину, относительно степени которой осуществляется приведение коэффициентов. Этот параметр может быть: именем неизвестной величины (x или y, или др.), списком или множеством в случае полинома нескольких переменных ([x,y,z] или {x,y,z}), именем функции с АРГУМЕНТОМ-неизвестной (exp(x) или cos(z)).
func - имя команды, которая применяется к полученным в результате коэффициентам при соответствующих степенях неизвестных. Обычно используются команды simplifyили factor.
alg- параметр, определяющий алгоритм приведения подобных членов для полиномов от НЕСКОЛЬКИХ переменных. Неизвестные, при степенях которых приводятся подобные члены, должны быть заданы в виде списка или множества. Этот параметр может принимать два значения: recursive(значение по умолчанию) или distributed. |
Параметр recursiveинициирует следующий алгоритм: приводятся подобные члены при степенях первой неизвестной в СПИСКЕ, далее в полученных коэффициентах приводятся подобные члены относительно степеней второй неизвестной в списке и т.д. Если при использовании этого алгоритма параметр x представляет из себя МНОЖЕСТВО, то порядок приведения подобных членов определяется системой Maple и может меняться от сеанса к сеансу.
Параметр distributed указывает на приведение коэффициентов при членах, содержащих всевозможные произведения степеней неизвестных в списке или множестве, причем суммарная степень всех переменных возрастает от наименьшей к наибольшей.
Под рационализацией дробей понимается избавление от иррациональности в знаменателе. Команда rationalize( ) и производит именно такое преобразование над числовыми и алгебраическими дробями.
Синтаксис команды: rationalize(F) где F - выражение или список выражений. |
Эта команда может рационализировать алгебраическую дробь, знаменатель которой содержит трансцендентные функции типа sin(), ln(), exp() и т.п.. Однако, если аргумент этих функций является дробью с иррациональностями в знаменателе, то эти конструкции не участвуют в процессе рационализации. |
Зачастую без введения определенных ограничений на некоторые выражения ничего нельзя сказать о свойствах математических объектов, в которых они фигурируют. Одни ограничения вытекают из области определения независимых переменных, другие мы накладываем сами в процессе решения задачи. Команда assume( ) накладывает ограничения на неизвестные величины Maple. Синтаксис команды:
assume(x, свойство)
Здесь x -любая неопределенная переменная Maple или выражение с такими переменными.
свойство - параметр, принимающий значения, равные названиям свойств (зарезервированные символьные имена Maple), имени типа данных или числовому диапазону.
Некоторые свойства числовых переменных и выражений:
Название свойства | Описание |
negative | Отрицательные вещественные числа (нуль не включается) |
nonnegative | Неотрицательные вещественные числа (нуль включается) |
positive | Положительные вещественные числа (нуль не включается) |
natural | Натуральные числа (целые, большие или равные нулю) |
posint | Целые строго больше нуля |
odd | Нечетные числа |
even | Четные числа |
complex | Комплексные числа |
NumeralNonZero | Комплексные числа, исключая 0 |
real | Вещественные числа |
rational | Рациональные числа (дроби и целые) |
irrational | Иррациональные числа |
integer | Целые числа |
fraction | Только дробные числа |
prime | Простые числа |
Пару параметров (x, свойство) можно заменить математическим отношением, если, конечно, это возможно. Например, (x, negative) соответствует отношению (x<0). Команда assume( ) может получать несколько пар (х, свойство) или математических отношений в качестве своих параметров. В этом случае все заданные ограничения действуют одновременно.
НОВОЕ ограничение, накладываемое новой командой assume( ) на переменную, ОТМЕНЯЕТ все предыдущие ограничения. Если по ходу решения задачи необходимо постепенно добавлять ограничения на переменную, то используют команду additionaly( ), параметры которой полностью соответствуют параметрам команды assume( ). |
Если на переменную наложены ограничения, то в области вывода в выражении с этой переменной сразу же за её именем по умолчанию отображается символ тильда ( ~). Эту функциональность можно изменить, используя команды основного меню Options -> Assumed Variables. При выборе подкоманды No Annotation пользователь вообще не будет информирован об ограничениях, переменная с ограничениями будет продолжать отображаться, как и все переменные без ограничений. Подкоманда Phrase отображает в области вывода словесное сообщение о том, что на переменную наложены ограничения. А подкоманда Trailing Tildes позволяет включить режим отображения переменных с наложенными ограничениями, если он был отключен.
Отобразить информацию о наложенных на неизвестную величину ограничениях можно с помощью команды about(x).
Дополнительные функции, позволяющие получить информацию о переменных: