Вход/Регистрация
Maple 9.5/10 в математике, физике и образовании
вернуться

Дьяконов Владимир Павлович

Шрифт:

Глава 10

Типовые средства программирования

По существу все описанные выше средства (операторы, команды и функции) систем Maple 9.5/10 являются компонентами языка программирования системы Maple. Но есть ряд типовых средств программирования (функции пользователя, условные выражения, циклы, средства вывода, маплеты и др.), которые и рассматриваются в данной главе [23, 51, 52]. Применение таких средств существенно расширяет возможности систем Maple в решении ряда математических и научно-технических задач.

10.1. Задание функций

10.1.1. Задание функции пользователя

Хотя ядро Maple 9 5/10, библиотека и встроенные пакеты расширения содержат свыше 3500 команд и функций, всегда может оказаться, что именно нужной пользователю (и порою довольно простой) функции все же нет. Тогда возникает необходимость в создании собственной функции, именуемой функцией пользователя. Для этого используется следующая конструкция:

name(x,y,...)->expr

После этого вызов функции осуществляется в виде name(х,у,…), где (x,y,…) — список формальных параметров функции пользователя с именем name. Переменные, указанные в списке формальных параметров, являются локальными. При подстановке на их место фактических параметров они сохраняют их значения только в теле функции (expr). За пределами этой функции переменные с этими именами оказываются либо неопределенными, либо имеют ранее присвоенные им значения.

Следующие примеры иллюстрирует сказанное (файл p1):

> restart;

> х:=0;y:=0;

х := 0
у := 0

> m:=(x,y)->sqrt(х^2+y^2);

> m(3,4);

5

> m(3., 4);

5.000000000

> [x,y];

[0, 0]

Нетрудно заметить, что при вычислении функции m(х,у) переменные х и у имели значения 3 и 4, однако за пределами функции они сохраняют нулевые значения, заданные им перед введением определения функции пользователя. Использование хотя бы одного параметра функции в виде числа с плавающей точкой ведет к тому, что функция возвращает результат также в виде числа с плавающей точкой.

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.3. Визуализация функции пользователя

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

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

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

10.1.4. Импликативные функции

Другой важный класс функций, которые нередко приходится задавать — импликативные функции, в которых связь между переменными задана неявно в виде какого-либо выражения. Самый характерный пример такой функции — это выражение для задания окружности радиусаr: х²+у²=r².

Итак, импликативные функции записываются как уравнения. Соответственно их можно решать с помощью функции solve. Следующие примеры иллюстрируют задание уравнения окружности в общем и в частном (численном) виде (файл p1):

> impf:=х^2+y^2=r^2;

impf := x² + у² = r²

> subs(х=а,impf);

а² + у² = r²

> solve(%);

> impf1:=х^2+у^2=25;

  • Читать дальше
  • 1
  • ...
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: