define(oper, property1, property2, ...)
Здесь oper — имя определяемого оператора, property1, property2 и т.д. — наименования свойств. В принципе оператор define позволяет создавать операторы с новыми свойствами, которые отсутствуют у операторов и функций, встроенных в систему. Могут быть указаны следующие свойства операторов:
unary — унарный оператор;
binary — бинарный оператор;
diff — дифференциальный оператор;
linear — линейный оператор;
multilinear — множественный линейный оператор;
flat — ассоциативный оператор, для которого f(х,f(y,z)) = f(f(х, y), z) =f (х, у, z);
orderless — коммутативный симметричный оператор, такой что f(х, y) = f(y, х); antisymmetric — асимметричный оператор, такой что f(х, y) = -f(у, х); zero — нулевой оператор (например, V:=Vector(5,shape=zero) задает вектор с 5 нулевыми элементами);
identity — единичный оператор (например, M:=Matrix(3,3,shape=identity) задает единичную матрицу).
Следующий пример задает линейный оператор L:
> define(L,linear);
> L(а*х+b*х^2+с*х^3);
L(ax) + L(bx²) + L(cz³)
Для задания некоторых свойств операторов можно использовать уравнения и соотношения вида f(x)=value. Чтобы свойство выполнялось для всех аргументов (или некоторого класса аргументов), используется описание forall. Так, приведенный ниже пример задает оператор F, который вычисляет n- е число Фибоначчи (n>2):
> restart;
> define(fib,fib(0)=1,fib(1)=1,fib(n::posint)=fib(n-1)+fib(n-2));
> fib(6);
13
> fib(10);
89
> fib(20);
10946
Обратите внимание на то, что соотношения fib(0)=1 и fib(1)=1 задают начальные значения целочисленного массива чисел Фибоначчи, которые нужны для реализации обычного итерационного алгоритма их нахождения — напоминаем, что очередное число Фибоначчи равно сумме двух предшествующий чисел Фибоначчи.
3.2. Работа с математическими функциями
3.2.1. Понятие о функциях
Более двух сотен лет тому назад в обиход математиков пришло понятие функции, как некоторой зависимости одной величины, например f или у, от другой величины — независимой переменной х или t. Функции стали обозначать как f(x), f(t), y(x) и т.д. Могут быть и функции ряда переменных, например вида f(х, у, z , …). Хотя эти понятия не являются полными, мы ограничимся ими, помня, однако, что функции могут быть определены в различных интервалах изменения их аргументов.
В Maple функция это имеющий уникальное имя (идентификатор) объект математического выражения, выполняющий некоторое преобразование своих входных данных, представленных списком входных параметров . Суть этого преобразования соответствует некоторой функциональной зависимости возвращаемого функцией значения от входных параметров функции. Например, функция sin(x) возвращает значение, которое является синусом входного параметра х. Таким образом, признаком функции является возврат ею некоторого значения.
Входные параметры изначально являются формальными и представляются именами некоторых переменных. Особенностью функции является возврат ее значения в ответ на обращение к функции по имени с указанием фактических параметров в списке параметров функций. Фактические параметры могут быть различными константами, определенными переменными и даже вычисляемыми математическими выражениями.
К примеру, sin(x) является синтаксической формой записи математической функции синуса — sin(x). При этом х — формальный параметр. А уже в выражении sin(1.0) числовая константа 1.0 является фактическим параметром в виде вещественного числа, причем sin(1.0) возвращает численное значение синуса угла в 1 радиан. Функция atan2(x, y) является примером функции, имеющей список из двух формальных параметров — х и у.
Как правило, в системах символьной математики принципиально важно, как записан фактический параметр. Например, число 1. или 1.0 является вещественным, на что указывает разделительная точка. Если число представлено в виде 1, то оно рассматривается как целое и константа. Большинство систем символьной математики не вычисляет выражения вида sin(1) или sin(π/2), а выводит их в исходном виде. Это связано с тем, что такой вид дает о значении функции гораздо больше информации, чем просто ее вычисленное значение.
Благодаря свойству возврата значений функции применяются для построения математических выражений наряду с операторами. Например, математическое выражение 2*sin(x) содержит функцию sin(x) и оператор умножения *. Математические выражения могут быть как очень простыми (наподобие приведенного), так и очень сложными, включающими в себя операторы интегрирования, дифференцирования и иные специальные операторы и функции, а также сложную многоуровневую систему скобок.
Читать дальше
Конец ознакомительного отрывка
Купить книгу