ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 01.04.2021
Просмотров: 1350
Скачиваний: 16
Рассмотрим пример задания единичной матрицы.
> n := 3:
A := array(1..n, 1..n):
for i from 1 to n
do
for j from 1 to n
do
if i = j
then A[i, j] := 1
else A[i, j] := 0
end if
end do
end do:
evalm(A);
⎡
⎣
1 0 0
0 1 0
0 0 1
⎤
⎦
Процедуры
Общая форма задания процедуры в Maple:
<Имя процедуры> := proc(<Список параметров>)
[ local <Список локальныхпеременных
>; ]
[ global <Список глобальныхпеременных
>; ]
[ options <Список расширяющихключей>; ]
[ description <Комментарий к процедуре>; ]
<Тело процедуры>
end proc;
Процедура возвращает значение последнего выражения в ее теле.
Реализуем процедуру вычисления модуля комплексного числа:
> modc := proc(z)
sqrt(Re(z)^2+Im(z)^2)
end proc:
modc(3+4*I);
5
31
При подготовке процедур надо предусматривать их поведение при
возможных ошибках. При выявлении ошибки предусматривается вывод
соответствующего сообщения. Для этого используется функция
error
.
Реализуем процедуру вычисления квадратного корня из действительного
числа с использованием функции
error
:
> sqroot := proc(x)
if not (type(x, numeric) or type(x, realcons))
or signum(x) = -1
then error "invalid variable x: %1", x
else x^(1/2)
end if
end proc:
sqroot(-1);
Error, (in sqroot) invalid variable x: -1
Работа с файлами
Для записи данных в файл служит функция
writedata
:
writedata[APPEND](filename, data, format);
Данные могут задаваться списком, вектором или матрицей, фор-
мат данных может быть
integer
,
float
или
string
. Необязательный
указатель
APPEND
используется, если данные дописываются в уже со-
зданный файл.
> data := array([[1, 2, 3, 4], [5, 6, 7, 8]]):
writedata("c:/data.txt", data, integer):
Считывание данных из файла обеспечивает функция
readdata
:
readdata(filename, format, n);
Здесь
n
— числосчитываемых столбцов.
> data := readdata("c:/data.txt", integer, 2);
data
:= [[1
,
2]
,
[5
,
6]]
32
2.6
Специализированные пакеты Maple
Как уже было отмечено, помимо команд, находящихся в основной
библиотеке Maple, большое количество команд, расширяющих функци-
ональные характеристики программы в отдельных областях математики,
находится в соответствующих специализированных пакетах Maple. На-
пример, пакет
linalg
, содержащий процедуры и функции для работы с
векторами и матрицами.
Некоторые специализированные пакеты Maple перечислены ниже.
Чтобы получить более подробную информацию по каждому из пакетов,
нужно в области ввода ввести знак вопроса и, без пробела, название
интересующегопакета, после чегонажать <Enter>.
Некоторые специализированные пакеты системы Maple
Название пакета Описание
student
Математика и программирование
plots
Расширенные средства графики и анимации
plottools
Вспомогательные инструменты графики
geometry
Геометрия
numtheory
Теория чисел
linalg
Линейная алгебра
simplex
Линейная оптимизация
polytools
Работа с полиномами
orthopoly
Работа с ортогональными полиномами
sumtools
Работа с конечными и бесконечными суммами
powseries
Работа со степенными рядами
numapprox
Численная аппроксимация функций
DEtools
Дифференциальные уравнения
inttrans
Интегральные преобразования
stats
Математическая статистика
logic
Математическая логика
combinat
Комбинаторика
Networks
Теория графов
tensor
Тензоры и теория относительности
finance
Финансовая математика
33
3
Графика в Maple
3.1
Двумерная графика
Для построения двумерных графиков в Maple служит процеду-
ра
plot
. При построении графика функции, заданной явно, процеду-
ра
plot
записывается следующим образом:
plot(y(x), x = x1..x2, y1..y2, options);
Построим график функции
y
=
sin
x
x
:
> plot(sin(x)/x, x = -10..10);
–0.2
0.2
0.4
0.6
0.8
1
–10
–8
–6
–4
–2
2
4
6
8
10
x
Maple предоставляет возможность построения на одном рисунке
графиков нескольких функций:
> plot([cos(x), sin(x)/x], x=-2*Pi..2*Pi);
–1
–0.5
0
0.5
1
–6
–4
–2
2
4
6
x
34
При построении графика функции, заданной параметрически, про-
цедура
plot
записывается следующим образом:
plot([x(t), y(t), t=t1..t2], x1..x2, y1..y2, options);
> plot([sin(3*t), cos(5*t), t=0..2*Pi]);
–1
–0.5
0.5
1
–1
–0.5
0.5
1
Для построения графика сеточной функции, заданной в виде списка
точек
[[
x
1
, y
1
]
,
[
x
2
, y
2
]
, . . . ,
[
x
n
, y
n
]]
, процедура
plot
записывается следу-
ющим образом:
plot(A, x1..x2, y1..y2, options);
> A := [[n, sin(n/4)] $n=-12..12]:
plot(A, style=point, symbol=circle, symbolsize=15);
–1
–0.5
0
0.5
1
–10
–5
5
10
35