ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 01.04.2021

Просмотров: 1350

Скачиваний: 16

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

Рассмотрим пример задания единичной матрицы.

> 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


background image

При подготовке процедур надо предусматривать их поведение при

возможных ошибках. При выявлении ошибки предусматривается вывод
соответствующего сообщения. Для этого используется функция

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


background image

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


background image

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


background image

При построении графика функции, заданной параметрически, про-

цедура

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