Помимо меток при выводе результатов вычислений могут появляться и другие специальные объекты вывода, например корни RootOf, члены вида O(x^n), учитывающие погрешность при разложении функций в ряд, и обозначения различных специальных функций, таких как интегральный синус, гамма-функция и др. Примеры такого вывода приведены ниже:
> solve(х^7-х^2-1,х);
½+½I√3, ½-½I√3, RootOf(_Z 5+ _Z 4 - _Z 2- _Z - 1, index = 1),
RootOf(_Z 5+ _Z 4- _Z 2- _Z - 1, index = 2),
RootOf(_Z 5+ _Z 4- _Z 2- _Z - 1, index = 3 ),
RootOf(_Z 5+ _Z 4- _Z 2- _Z - 1, index = 4),
RootOf(_Z 5+ _Z 4- _Z 2- _Z - 1, index = 5)
> taylor(sin(x),x,5);
Часто встречаются также знаки ~ для отметки предполагаемых переменных, постоянные интегрирования и другие специальные обозначения. По мере упоминания в тексте таких объектов вывода они будут описаны.
3.5.5. Работа с частями выражений
Выражения (expr) или уравнения (eqn) обычно используются как сами по себе, так и в виде равенств или неравенств. В последнем случае объекты с выражениями имеют левую и правую части. Для простейших манипуляций с выражениями полезны следующие функции:
• cost(a) — возвращает число сложений и умножений в выражении а (функция пакета codegen);
• lhs(eqn) — выделяет левую часть eqn;
• rhs(eqn) — выделяет правую часть eqn;
• normal(expr) — дает нормализацию (сокращение) expr в виде дроби;
• numer(expr) — выделяет числитель expr;
• denom(expr) — выделяет знаменатель expr.
Ввиду очевидности действия этих функций ограничимся наглядными примерами их применения:
> with(codegen,cost):
> cost(х^3+b^2-х);
2 additions + 3 multiplications
> lhs(sin(x)^2+cos(x)^2=1);
sin(x)² + cos(x)²
> rhs(sin(x)^2+cos(x)^2=1);
1
> normal(2/4+3/6+6/12);
> f:=5*(a-b)^2/(а^2-2*а*b-b^2);
> numer(f);
5 (a-b)²
> denom(f);
a²-2ab-b²
Обратите внимание на то, что в старых версиях (до Maple 7) загрузка библиотечной функции cost выполнялась иначе — командой readlib(cost). Это обстоятельство может служить причиной неверной работы документов, созданных в старых версиях Maple, в среде последующих версий Maple.
3.5.6. Работа с уровнями вложенности выражений
В общем случае выражения могут быть многоуровневыми и содержать объекты, расположенные на разных уровнях вложенности. Приведем две функции для оценки уровней выражений и списков:
• nops(expr) — возвращает число объектов первого уровня (операндов) в выражении expr;
• op(expr) — возвращает список объектов первого уровня в выражении expr;
• op(n,expr) — возвращает n-й объект первого уровня в выражении expr. Ниже представлены примеры применения этих функций:
> nops(а+b/с);
2
> op(a+b/c);
> op(1,a+b/c);
а
> op(2,a+b/c);
Рекомендуется просмотреть и более сложные примеры на применение этих функций в справке.
3.5.7. Преобразование выражений в тождественные формы
Многие математические выражения имеют различные тождественные формы. Порою преобразование выражения из одной формы в другую позволяет получить результат, более удобный для последующих вычислений. Кроме того, различные функции Maple работают с разными формами выражений и разными типами данных. Поэтому большое значение имеет целенаправленное преобразование выражений и данных.
Основной функцией для такого преобразования является функция
convert: convert(expr, form, arg3,...)
Здесь expr — любое выражение, form — наименование формы, arg3, … — необязательные дополнительные аргументы.
convert — простая и вместе с тем очень мощная функция. Ее мощь заключается в возможности задания множества параметров. Их полный перечень (около восьмидесяти наименований) можно найти в справке по функции convert. Многие из этих параметров очевидны с первого взгляда, поскольку повторяют наименования типов чисел, данных или функций. Например, опции binary, decimal, hex и octal преобразуют заданные числа в их двоичное, десятичное, шестнадцатиричное и восьмеричное представление. Параметр vector задает преобразование списка в вектор (напоминаем, что список и вектор — разные типы данных), а параметр matrix — в матрицу. Приведем примеры применения функции convert (файл expr1):
Читать дальше
Конец ознакомительного отрывка
Купить книгу