Чтение онлайн

на главную

Жанры

Maple 9.5/10 в математике, физике и образовании

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

Шрифт:

 end proc

В этой процедуре имеется обращение к ранее составленной процедуре IntExpMonomialR. Обратите внимание на то, что в процедуре введено предупреждение об определенных проблемах, связанных с использованием функции degree (сообщение начинается с символов ###). Тем не менее, процедура работает, в чем убеждают, по крайней мере, следующие примеры:

> р:=(х^2+1)*(1-3*х);

р := (х² + 1)(1 - 3х)

> expand(р);

х² - 3х³ + 1 - 3x

> int(р*ехр(х),х);

ех(-24 + 23х - 10х² + 3х³)

> IntExpPolynomial(р,х);

(24 - 23х + 10х² - 3х³)еx

> IntExpPolynomial(р,х);

(24 - 23х + 10х² - 3х³)еx

10.7. Дополнительные возможности Maple-языка

10.7.1. Переназначение определений

В большинстве случаев Maple-язык использует достаточно длинные идентификаторы для своих определений, например функций. Однако с помощью функции alias можно изменить любое определение на другое, если оно кажется пользователю более удобным. Функция alias записывается в виде

alias(e1, е2, ..., eN)

где е1, е2, …, eN — ноль или более равенств.

Эта функция возвращает список переназначений и осуществляет сами переназначения. Например, для замены имени функции BesselJ на более короткое имя BJ достаточно параметром функции alias записать BJ=BesselJ:

> alias(ВJ=BesselJ);

BJ, Fx

> [BJ(0,1.),BesselJ(0,1.)];

[.7651976866, .7651976866]

Можно также переназначить функцию пользователя:

> alias(Fx=F(x));

BJ, Fx

> diff(F(x),x);

> int(F(x),x=a..b);

Для отмены переназначения, например BJ, используется та же функция alias с повтором переназначения:

> alias(BJ=BJ);

Fx

> BJ(0,1.);

BJ(0, 1.)

Обратите внимание на то, что BJ исчезло из списка переназначений и функция BJ(0,1.) уже не вычисляется, поскольку ее больше нет.

10.7.2. Модули

Модули придают языку программирования Maple некоторые свойства языков объектно-ориентированного программирования. Они служат для реализации абстрактного типа данных на основе инкапсуляции — объединения данных и процедур их обработки. Модули

задаются ключевым словом module с пустыми скобками и завершаются словами end module или просто end:

name := module

export eseq; local lseq; global gseq;

option optseq; description desc;

 Тело модуля

end module (или просто end)

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

• модуль не имеет списка входных параметров;

• в модуле могут размещаться данные;

• модули могут использоваться для создания пакетов процедур, доступ к которым обеспечивается командой with;

• модули имеют свойства в виде локальных переменных и методы в виде процедур интерфейса модулей;

• реализация абстрактных типов данных с помощью модулей скрыта от пользователя;

• модули могут содержать оператор export eseq, объявляющий экспортируемые переменные модуля;

• для доступа к экспортируемым переменным модуля может использоваться специальный оператор «:-» (двоеточие и минус);

• модули и процедуры могут вкладываться друг в друга без ограничения уровня вложенности;

• модули могут иметь специальные конструкторы объектов.

Следующий пример демонстрирует создание модуля pt в котором заданы две операции (сложения plus и умножения times) и показан доступ к ним:

> pt:= module

export plus, times;

plus : = (a,b) -> a + b;

times := (a,b) -> a * b;

end module;

pt := module export plus, times; end module

> pt:-plus(3,5);

8

> pt:-times(3,7);

21

Детальную информацию о модулях и о конструкторах объектов можно найти в справках по ним. Некоторые пакеты уже в Maple 8 реализованы не в виде процедур, а в виде модулей (например, в виде модуля сделан пакет LinearAlgebra). В простейшем виде модули могут использоваться всеми пользователями системы Maple, но их серьезное применение (например, с целью создания полноценных пакетов Maple) требует серьезного знакомства с техникой объектно-ориентированного программирования. Такое знакомство выходит за рамки данной книги.

10.7.3. Макросы

Макрос — это макрокоманда, короткая запись длинных определений. По сравнению с переназначениями макросы более гибки и могут использоваться для сокращения операций загрузки новых определений из библиотеки и пакетов. Макросы создаются с помощью функции macro:

macro(e1, е2, ..., en)

где е1, е2, …, en — ноль или более равенств.

В следующем примере функция numbperm с помощью макроса заменена на np:

> with(combinat, numbperm);

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

Черный Маг Императора 13

Герда Александр
13. Черный маг императора
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Черный Маг Императора 13

Последняя Арена 4

Греков Сергей
4. Последняя Арена
Фантастика:
рпг
постапокалипсис
5.00
рейтинг книги
Последняя Арена 4

Маяк надежды

Кас Маркус
5. Артефактор
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Маяк надежды

Великий перелом

Ланцов Михаил Алексеевич
2. Фрунзе
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Великий перелом

Сопротивляйся мне

Вечная Ольга
3. Порочная власть
Любовные романы:
современные любовные романы
эро литература
6.00
рейтинг книги
Сопротивляйся мне

Инквизитор Тьмы 2

Шмаков Алексей Семенович
2. Инквизитор Тьмы
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Инквизитор Тьмы 2

Мастер Разума V

Кронос Александр
5. Мастер Разума
Фантастика:
городское фэнтези
попаданцы
5.00
рейтинг книги
Мастер Разума V

Бандит 2

Щепетнов Евгений Владимирович
2. Петр Синельников
Фантастика:
боевая фантастика
5.73
рейтинг книги
Бандит 2

Истребители. Трилогия

Поселягин Владимир Геннадьевич
Фантастика:
альтернативная история
7.30
рейтинг книги
Истребители. Трилогия

Гардемарин Ее Величества. Инкарнация

Уленгов Юрий
1. Гардемарин ее величества
Фантастика:
городское фэнтези
попаданцы
альтернативная история
аниме
фантастика: прочее
5.00
рейтинг книги
Гардемарин Ее Величества. Инкарнация

Падение Твердыни

Распопов Дмитрий Викторович
6. Венецианский купец
Фантастика:
попаданцы
альтернативная история
5.33
рейтинг книги
Падение Твердыни

"Дальние горизонты. Дух". Компиляция. Книги 1-25

Усманов Хайдарали
Собрание сочинений
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Дальние горизонты. Дух. Компиляция. Книги 1-25

Ох уж этот Мин Джин Хо 2

Кронос Александр
2. Мин Джин Хо
Фантастика:
попаданцы
5.00
рейтинг книги
Ох уж этот Мин Джин Хо 2

Энфис 6

Кронос Александр
6. Эрра
Фантастика:
героическая фантастика
рпг
аниме
5.00
рейтинг книги
Энфис 6