Смекни!
smekni.com

Использование команд преобразования выражений Maple для математических вычислений (стр. 1 из 4)

Кафедра: Информационные Технологии

Лабораторная работа

На тему:

"Использование команд преобразования выражений Maple для математических вычислений"

Москва, 2008 г

Цели работы:

· знать команды, наиболее часто используемые при выполнении аналитических вычислений;

· уметь применять указанные команды для решения математических задач.

1. Команды преобразования выражений

Процесс работы в Maple состоит в том, что пользователь создает переменные, присваивает им символьные выражения и производит над ними некоторые действия в соответствии с алгоритмом решения поставленной задачи, использую стандартные функции или написанные собственные процедуры.

Синтаксис вызова стандартной команды следующий:

команда (пар_1, пар_2,…, пар_n);

Здесь команда – это имя вызываемой функции, а пар_1, пар_2,… означают необходимые для выполнения команды параметры, которые могут быть переменными или даже выражениями, причем их тип должен соответствовать типу параметров используемой функции. Отметим, если команда завершается точкой с запятой, то результаты ее выполнения отображаются в области вывода, если команда завершается двоеточием, то она выполняется, но никакого вывода результатов не происходит.

Система обозначений функций в Maple интуитивно проста. Обычно имя функции соответствует действию, которое она выполняет (следует учесть, что все имена заданы на английском языке). Например, ясно, что функция с именем simplify () осуществляет некоторые упрощения над выражением, заданным в качестве ее параметра.

Для некоторых команд существуют активная и пассивная формы. Активная форма команды (в случае ее вызова) немедленно выполняется, а ее имя начинается со строчной буквы. Пассивная форма команды не выполняется немедленно, а просто в области вывода отображается математическая запись того, что она может сделать. Ее имя начинается с прописной буквы. В дальнейшем, если в операторе присваивания для некоторой переменной в правой части задана пассивная форма команды, то командой value () ее можно вычислить. Основное предназначение пассивных форм команд – это использование их как средства документирования производимых действий в обычной математической нотации. Примерами команд с двумя формами являются команда дифференцирования (diff и Diff), интегрирования (int и Int) и др.

Пример 1. Пассивная и активная формы команд.

> k:=Int (cos(x)^3, x);

> k=int (cos(x)^3, x);

> value(k);

Если команды и функции являются частью ядра системы Maple, то они всегда доступны пользователю. А для вызова других команд и функций необходимо подключить библиотеку или пакет, в которых они расположены. Для этого служат команды readlib () и with (). Первая подключает библиотеку, вторая – пакет. Параметром этих команд является имя библиотеки или пакета, функции которых пользователь желает использовать.

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

2. Упрощение выражения: simplify()

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

Эта команда имеет несколько форм вызова. Ее самый простой синтаксис имеет следующий вид: simplify (выражение).

В скобках указывается выражение, подлежащее упрощению. Команда simplify () ищет в выражении вызовы функций, квадратные корни, радикалы и степени и инициализирует подходящие процедуры упрощения. Реально команда simplify () реализована в виде набора процедур упрощения, хранящихся в основной библиотеке Maple. Перечислим некоторые из них, остальные можно найти в справке по этой команде (например, установив курсор в рабочем листе на ее имя и нажав клавишу <F1>): `simplify/exp` – для упрощения выражений с экспоненциальными функциями, `simрlifу/ln` – для упрощения выражений с логарифмами, `simplifу/sqrt` – для упрощения выражений, содержащих квадратные корни, `simplifу/trig` – для упрощения выражении с тригонометрическими функциями, `simplifу/radical` – для упрощения выражений с радикалами (дробные степени), `simplifу/power` – для упрощения выражений со степенями, экспонентами и логарифмами и т.д. По умолчанию Maple пытается использовать максимальный набор функций упрощения, подходящий к конкретному выражению.

В команде можно задать конкретные процедуры упрощения, и тогда только они будут использоваться для упрощения заданного выражения, а не весь возможный, установленный по умолчанию набор. Это обеспечивается следующим синтаксисом команды: simрlifу (выражение, nl, n2,…);

Здесь nl, n2 и т.д. являются именами процедур упрощения: Ei, GAMМА, RootOf, @, hypergeom, ln, polar, power, radical, sqrt, trig. Полную информацию о формулах упрощения при использовании перечисленных значений параметров можно получить с помощью команды? simplify [имя], где [имя] – одно из значений параметров функции упрощения.

Упрощения выражений можно проводить с различными видами чисел, например, положительными или принадлежащими некоторому отрезку действительных чисел. Это достигается с помощью параметра assume=свойство. Форма вызова команды при этом имеет вид: simplify (выражение, аssumе=свойство); где параметр свойство может принимать одно из следующих значений: complex – комплексная область, real – действительная область, positive – положительные действительные числа, integer – целые числа, RealRange (a, b) – интервал (а, b) действительных чисел.

Примеры использования команды упрощения выражений simplify() представлены ниже:

Пример 2. Упрощение выражений.

> c:=ln (exp(x))+x*ln (exp(x));

> simplify(c);

> simplify (c, assume=real);


> d:=1/sqrt(8)*(((1+sqrt(8))/10)^5+((1‑sqrt(8))/10)^5);

> simplify(d);

Как видно из примера 2, использование команды без параметров не упростило выражения ln (exp(x))+x·ln (exp(x)), тогда как второй оператор с предположением о действительной области изменения переменной х упростил заданное выражение. Maple по умолчанию работает с комплексными числами (т.е. при упрощении предполагается, что переменные изменяются в области комплексных чисел). При таком предположении упростить выражение с действительно невозможно.

Пример 3. Упрощение с предположением.

> f:=(sqrt (x^2));

> simplify(f);

> simplify (f, assume=real);

> simplify (f, assume=positive);

Команда simplify() позволяет задать правила упрощения в виде равенств. Эти правила задаются вторым параметром, который должен иметь следующий вид:

{равенствоl, равенство2,…}

Если какое-то выражение при упрощении должно равняться нулю, то такое правило можно задать, просто внеся выражение без знака равенства в список правил:

> k:=a+b^2+c^3+d+5;

> simplify (k, {c^3+d, a+b^2=1});

В этом примере предполагается, что выражение c^3+dравно 0.

Использование собственных правил для упрощения тригонометрических выражений позволяет получить именно тот его вид, который необходим для дальнейшей работы, так как третьим параметром можно определить, в какой последовательности должны отображаться неизвестные в упрощенном выражении. Этот параметр задается в двух формах: в виде множества и в виде списка. (Множество – последовательность выражений через запятую, заключенная в фигурные скобки, а список – это тоже объект Maple, который для данного частного случая можно охарактеризовать как последовательность выражений через запятую, заключенную в квадратные скобки.) Так вот, если параметр задан в виде множества, то алгоритм упрощения сортирует в выражении неизвестные по убыванию их степени в слагаемых выражения, учитывая степени всех неизвестных, а потом начинает упрощения в соответствии с заданными правилами. В случае со списком – сначала выражение сортируется по степеням первой неизвестной в списке, затем упрощается в соответствии с заданными правилами, затем полученное выражение сортируется по степеням второй неизвестной списка и упрощается и т.д.

Пример 4. Упрощение в соответствии с правилами пользователя.

> equ:={sin(x)^2+cos(x)^2=1};

e:=sin(x)^3–11*sin(x)^2*cos(x)+3*cos(x)^3‑sin(x)*cos(x)+2;