Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MAPLE.doc
Скачиваний:
221
Добавлен:
24.03.2015
Размер:
1.52 Mб
Скачать

10.1.2. Конструктор функций unapply

Еще один способ задания функции пользователя базируется на применении функции-конструктора unapply:

name:=unapply(expr, var1, var2, ...)

Ниже даны примеры такого задания функции пользователя (файл p1):

> restart;

> fm:=unapply(sqrt(х^2+y^2),х,y);

> fm(4.,3.);

5.000000000

> fe:=unapply(х^2+y^2,х,y);

fе:=(х,у)→х²+у²

> fe(sin(х),cos(х));

sin(x)² + cos(x)²

> simplify(fe(sin(x),cos(x)));

1

Последний пример показывает возможность проведения символьных операций с функцией пользователя.

Визуализация функции пользователя

В ряде случаев весьма желательна визуализация результатов выполнения функций пользователя. Порой она может давать неожиданный результат. На рис. 10.1 представлены примеры задания двух функций пользователя от двух переменных и построение их графиков с помощью функции plot3d.

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

Рис. 10.1. Примеры задания функций пользователя двух переменных с построением их графиков

18. Основы программирования в maple 15.Условные выражения. Циклы. Операторы пропуска и прерывания. Условные выражения

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

Простейшую конструкцию разветвляющихся программ в 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;

Negative

> x:=1:

> if x<0 then print(`Negative`) fi;

В этом примере анализируется значение х. Если оно отрицательно, то с помощью функции вывода print на экран выводится сообщение «Negative». А вот если х неотрицательно, то не выводится никакого сообщения. В другом примере если х неотрицательно, то выводится сообщение «Positive»:

> х:=-5:

> if х<0 then print(`Negative`) else print(`Positive`) fi;

Negative

> x:=1:

> if x<0 then print(`Negative`) else print(`Positive`) fi;

Positive

Приведем еще один пример, показывающий особую форму задания конструкции if-then-else-fi:

> х:=-5:

> `if` (х<0, print(`Negative`),print(`Positive`));

Negative

> x: =1:

> `if` (x<0, print(`Negative`),print(`Positive`));

Positive

В этой конструкции вида

`if `(Условие, Выражение1, Выражение2)

если Условие выполнятся, то будет исполнено Выражение1, в противном случае будет исполнено Выражение2. Ввиду компактности записи такая форма условного выражения нередко бывает предпочтительна, хотя она и менее наглядна. На рис. 10.3 представлено применение данной конструкции для моделирования трех типов сигналов.

Рис. 10.3. Применение конструкции с функцией if для моделирования сигналов

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]