Еще один способ задания функции пользователя базируется на применении
name:=unapply(expr, var1, var2, ...)
Ниже даны примеры такого задания функции пользователя (файл p1):
> restart;
> fm:=unapply(sqrt(х^2+y^2),х,y);
> fm(4.,3.);
> fe:=unapply(х^2+y^2,х,y);
> fe(sin(х),cos(х));
> simplify(fe(sin(x),cos(x)));
Последний пример показывает возможность проведения символьных операций с функцией пользователя.
10.1.3. Визуализация функции пользователя
В ряде случаев весьма желательна визуализация результатов выполнения функций пользователя. Порой она может давать неожиданный результат. На рис. 10.1 представлены примеры задания двух функций пользователя от двух переменных и построение их графиков с помощью функции plot3d.
При задании функций пользователя рекомендуется просмотреть их графики в нужном диапазоне изменения аргументов. К сожалению, наглядными являются только графики функций одной и двух переменных.
Рис. 10.1. Примеры задания функций пользователя двух переменных с построением их графиков
10.1.4. Импликативные функции
Другой важный класс функций, которые нередко приходится задавать —
Итак, импликативные функции записываются как уравнения. Соответственно их можно решать с помощью функции solve. Следующие примеры иллюстрируют задание уравнения окружности в общем и в частном (численном) виде (файл p1):
> impf:=х^2+y^2=r^2;
> subs(х=а,impf);
> solve(%);
> impf1:=х^2+у^2=25;
> subs(х=4,impf1);
> solve(%);
Для графической визуализации импликативных функций служит функция implicitplot пакета plots. На рис. 10.2 представлено задание двух импликативных функций и построение их графиков.
Рис. 10.2. Задание двух импликативных функций и построение их графиков
В данном случае задано построение двух эллипсов. Верхний — это окружность, сплюснутая по вертикали, а второй — наклонный эллипс.
10.2. Управляющие структуры
10.2.1. Условные выражения
Программы, все инструкции которых выполняются строго последовательно называются
Простейшую конструкцию разветвляющихся программ в Maple-языке программирования задает оператор if или оператор
if <Условие сравнения> then <Элементы>
|elif <Условие сравнения> then <Элементы>|
|else <Элементы>|
fi;
В вертикальных чертах | | указаны необязательные элементы данной конструкции. Следующие два вида условных выражений чаще всего используются на практике:
if <Условие> then <Элементы 1> fi — если Условие выполняется, то исполняются Элементы 1, иначе ничего не выполняется;
if <Условие> then <Элементы 1> else <Элементы 2> fi — если Условие выполняется, то исполняются Элементы 1, иначе исполняются Элементы 2.
В задании условий используются любые логические конструкции со знаками сравнения (<, <=, >, >=, =, <>) и логические операторы and, or и not, конструкции с которыми возвращают логические значения true и false.Рассмотрим следующий простой пример (файл р2):
> х:=-5:
> if х<0 then print(`Negative`) fi;
> x:=1:
> if x<0 then print(`Negative`) fi;