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

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

Шрифт:

> save my_proc, `my_lib.m`: # запись файла my_proc и

> # библиотечного файла my_lib.m;

> load `my_lib.m`: # считывание библиотечного файла

> # my_lib.m.

10.5.2. Создание своей библиотеки процедур

Если приведенные выше примеры составления процедур кажутся вам простыми, значит, вы неплохо знаете программирование и, скорее всего, уже имеете несколько полезных процедур, которые вы хотели бы сохранить — если не для потомков, то хотя бы для своей повседневной работы. Сделать это в Maple довольно просто.

Прежде всего надо определить имя своей библиотеки, например mylib, и создать для нее на диске каталог (папку) с заданным именем. Процедуры в Maple ассоциируются с таблицами. Поэтому вначале надо задать таблицу-пустышку под будущие процедуры:

> restart;

> mylib :=table;

mylib := table([])

Теперь надо ввести свои библиотечные процедуры. Они задаются с двойным именем — вначале указывается имя библиотеки, а затем в квадратных скобках имя процедуры. Для примера зададим три простые процедуры с именами f1, f2 и f3:

> mylib[f1] :=proc(x::anything) sin(x) +cos(x) end:

> mylib[f2]:=proc(x::anything) sin(x)^2+cos(x)^2 end:

> mylib[f3]:=proc(x::anything) if x=0 then 1 else sin(x)/x fi end:

Рекомендуется тщательно проверить работу процедур, прежде чем записывать их на диск. Ограничимся, скажем, такими контрольными примерами:

> mylib[f1](х);

sin(x) +cos(x)

> mylib[f1](1.);

1.381773291

> mylib[f2](x);

sin(x)² +cos(x)²

> simplify(mylib[f2](x));

1

> evalf(mylib[f3](x));

> sin(0)/0;

Error, division by zero

> mylib[f3](0);

1

> evalf(mylib[f3](.5));

.9588510772

Можно построить графики введенных процедур-функций. Они представлены на рис. 10.5.

Рис. 10.5. Построение графиков процедур-функций f1, f2 и f3

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

> with(mylib);

[f1,f2,f3]

Теперь надо записать эту библиотеку под своим именем на диск с помощью команды save:

> save(mylib, `с:/mylib.m`);

Обратите особое внимание на правильное задание полного имени файла. Обычно применяемый для указания пути знак \ в строках Maple-языка используемся как знак продолжения строки. Поэтому надо использовать либо двойной знак \\, либо знак /. В нашем примере файл записан в корень диска С. Лучше поместить библиотечный файл в другую папку (например, в библиотеку, уже имеющуюся в составе системы), указав полный путь до нее.

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

> restart;

С помощью команды with можно убедиться в том, что этих определений уже нет:

> with(mylib);

Error, (in pacman:-pexports) mylib is not a package

После этого командой read надо загрузить библиотечный файл:

> read(`с:/mylib.n`);

Имя файла надо указывать по правилам, указанным для команды save. Если все выполнено пунктуально, то команда with должна показать наличие в вашей библиотеке списка процедур f1, f2 и f3:

> with(mylib);

[f1, f2, f3]

И, наконец, можно вновь опробовать работу процедур, которые теперь введены из загруженной библиотеки:

> f1(x);

sin(x) +cos(x)

> simplifу(f2(у));

1

> f3(0);

1

> f3(1.);

.8414709848

Описанный выше способ создания своей библиотеки вполне устроит большинство пользователей. Однако есть более сложный и более «продвинутый» способ ввода своей библиотеки в состав уже имеющейся. Для реализации этого Maple имеет следующие операции записи в библиотеку процедур s1, s2, … и считывания их из файлов file1, file2, …:

savelib(s1, s2, sn, filename)

  • Читать дальше
  • 1
  • ...
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • ...

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

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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