Теперь
покажем, как можно пополнить библиотеку Maple
созданной вами процедурой и ввести справку о ней
в базу данных, чтобы можно было в дальнейшем
пользоваться ей как собственной Maple -
процедурой.
Предположим, что вы хотите использовать
в дальнейшем созданную вами процедуру оператора
аффинного преобразования для функции от одной
переменной.
> restart;aff:=proc(f,a::constant,b::constant)
unapply(f(a*x+b),x);
end;
> aff((x->x)*cos,Pi,exp(1))(x);
В том же пакете вы хотите сохранить
команду построения графика, содержащего кривые
исходной функции f и функции aff(f).
Назовем эту команду affplot
> affplot:=proc(f,a::constant,b::constant,r::range)
plot([f,aff(f,a,b)],r);
end;
Например, применяя ее к функции x*cos(x)
получим (рис. 72)
> affplot((x->x)*cos,Pi,exp(1),0..Pi);
Рис. 72
Прежде всего нужно создать каталог
вашей библиотеки. Пусть этот каталог e:\MapleV4\Mylib.
Теперь нужно записать в нее коды
созданных вами команд
> save aff,
affplot,`e:/MapleV5/MyLib/aff.m`;
Чтобы из любого сеанса Maple получить
доступ к процедурам, записанным в файле aff.m достаточно
ввести команду:
> read `e:/MapleV5/MyLib/aff.m`;
Для создания справки по команде нужно в
отдельном рабочем документе оформить текст
справки с возможными примерами использования
так, как вы хотели бы, чтобы выглядел ваш
справочный файл. Если придерживаться стандартов
справок Maple, то этот файл будет выглядеть
следующим образом
Оператор: aff - оператор аффинного
преобразования функции
Функция: affplot - функция построения
графика кривых исходной и преобразованной
функций
Способ вызова:
aff(f, a,b)
afftplot(f, a, b, r)
Параметры:
f - функция от одной переменной
a - число
b - число
r - диапазон изменения переменной, имеет тип range и
записывается в виде r1..r2, где r1, r2 - границы
диапазона.
Описание:
aff возвращает функцию, равную f(a*x+b).
affplot возвращает график с изображением
исходной функции f и функции aff(f).
Примеры:
> read `d:/MapleV5/MyLib/aff.m`:
aff(sin*cos,a,b)(x);
Error, aff expects its 2nd argument, a, to
be of type constant, but received a
Пример построения графика (рис. 73).
> affplot(sin*cos,exp(1),Pi/4,0..Pi);
Рис. 73
Теперь нужно сохранить его в виде
рабочего документа Maple (с расширением .mws) либо
текстового файла (с расширением .txt). После этого
вы должны включить его в базу данных справки.
Для этого существует специальная
команда makehelp . Она записывается в следующем
виде makehelp (название темы, файл справки,
библиотека) , где
название темы - название темы
создаваемого файла справки
текстовый файл - имя текстового файла,
содержащего текст справки
библиотека - библиотека, в которой
должен быть сохранен файл справки
Название темы должно быть записано в
форме `имя', или `имя1/имя2'.
Если задан третий аргумент, makehelp
должен сохранить файл в базе данных указанной
библиотеки.
Если эта база данных будет находиться в
созданном вами каталоге mylib , то ее имя будет ` e:\\maple4\\mylib\\maple.hdb`
. Предположим, что созданный вами файл справки
сохранен под именем ` e:\\maple4\\mylib\\aff.mws` , тогда
нужно ввести команды:
> readlib(makehelp):
> makehelp(`aff`,`d:/maplev5/mylib/aff.mws`,`d:/maplev5/mylib`):
During insert of aff - incorrect .hdb file
version - cannot update old versions
> makehelp(`affplot`,`d:/maplev5/mylib/aff.mws`,`d:/maplev5/mylib`):
During insert of affplot - incorrect .hdb
file version - cannot update old versions
Справка помощи по пакету aff готова.
Вы сможете получить доступ к справке
помощи после того как Вы зарегистрируете каталог
Вашей библиотеки.
Вообще говоря местонахождение (каталог)
системных файлов основной библиотеки (или
библиотек) определяется значением имени libname
. Это обычно одно имя, но можно задать
последовательность имен, определяющих
последовательность каталогов, которые будут
просматриваться по порядку при поиске команд.
Команда, определяющая нахождение
дополнительной библиотеки mylib вводится
следующим образом:
libname := libname, `/mylib`;
После этого команды, такие как readlib() и
with() просматривают обе библиотеки. Чтобы узнать
текущее имя библиотеки достаточно ввести libname; в сессии Maple.
Можно также определить начальное имя
библиотеки при загрузке программы введя в строку
загрузки опцию
maple.exe -b `/mylib`,
определяющую нахождение дополнительной
библиотеки.
В нашем случае для регистрации
библиотеки пользователя нужно ввести команду:
> libname:=libname,
`d:\\maplev5\\mylib`;
Теперь введя из командной строки
> ?`affplot`
вы вызовите окно справки помощи по
пакету shift .
|