Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

КМ - Maple

.pdf
Скачиваний:
78
Добавлен:
21.05.2015
Размер:
1.93 Mб
Скачать

Данные множественного типа

Неупорядоченные наборы — множества — создаются с помощью фигурных скобок. Из множеств автоматически удаляются повторяющиеся элементы.

> {a, b, g, a, a, c, c, f};

{f, g, a, b, c}

> {5, 7-4, pi, exp(ln(3)), sqrt(25), 3!};

{3, 5, 6, π}

Упорядоченные наборы — списки — создаются с помощью квадратных скобок:

> s1 := [5, 7-4, pi, exp(ln(3)), sqrt(25), 3!];

s1 := [5, 3, π, 3, 5, 6]

>s2 := [[a, b], [c, d]];

s3 := [[1, 2], [2, 5]];

s2 := [[a, b], [c, d]] s3 := [[1, 2], [2, 5]]

Списки широко применяются для задания векторов и матриц:

> V := array(1..6, s1);

V:= [5, 3, π, 3, 5, 6]

>M1 := array(1..2, 1..2, s2);

M2 := convert(s3, matrix);

M1 :=

c

d

 

a

b

M2 :=

2

5

 

1

2

Элементы векторов и матриц являются индексированными переменными. Допустимы операции вызова нужного элемента и присваивания ему нового значения.

>V[1] := V[3]*V[6]/3: evalm(V);

[2π, 3, π, 3, 5, 6]

21

> evalm(M1-a*M2);

0 b − 2a c − 2a d − 5a

> evalm(M1 &* M2);

a+ 2b 2a + 5b

c + 2d 2c + 5d

> evalm(M2^(-1));

5 2 2 1

Подробнее о векторах и матрицах будет сказано в разделе 4.1.

Константы

Константы — это простейшие именованные объекты, несущие заранее предопределенные значения. Их имена также заранее определены и не могут меняться. Обычные числовые константы не имеют имени и представлены просто числами.

> type(false, constant);

true

> type(exp(I*Pi), constant);

true

Именованные константы

Константа Описание

Pi

Число π = 3.141592654

 

 

 

 

 

 

 

 

 

 

 

 

n

1

 

 

 

Константа Эйлера γ

= n→∞ i=1

 

 

 

i

 

gamma

(

1)i

 

 

ln n

= 0.5772156649

i

lim

 

 

 

Catalan

Константа Каталана

 

2

= 0.9159655942

 

 

 

 

=1

 

(2i + 1)

 

 

 

 

 

Бесконечность

 

 

 

 

 

 

 

infinity

 

 

 

 

 

 

 

 

true

Логическая константа «Истина»

 

 

 

 

false

Логическая константа «Ложь»

 

 

 

 

FAIL

Логическая константа «Неопределенность»

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Подробную информацию о константах системы Maple можно получить, исполнив команду ?constants.

22

Переменные

Для явного указания типа переменных используется конструкция name::type. Для присваивания переменной значения используется оператор :=. Для отмены присваивания — одна из конструкций x := ’x’

или x := evaln(x).

Иногда расчеты предполагают, что переменные могут иметь определенные ограничения. Например, они не должны принимать отрицательных значений при обычном вычислении квадратного корня или логарифма числа. Для придания переменным статуса предполагаемых используются функция assume и команда assuming. Действие функции assume распространяется на весь документ, а команды assuming — только на одну операцию.

>sqrt(x^2);

ln(exp(2*y));

x2 ln(e2y )

>assume(x, positive): sqrt(x^2);

about(x);

x

Originally x, renamed x~:

is assumed to be: RealRange(Open(0),infinity)

ln(exp(2*y)) assuming y>-infinity; about(y);

2y

y:

nothing known about this object

Функцию assume, как и команду assuming, можно использовать не только для переменных, но и для целых выражений.

23

2.2Операторы и операнды

ВMaple имеется три типа операторов: бинарные (binary), с одним операндом (unary) и без операндов (nullary).

Некоторые операторы Maple в порядке их выполнения

Оператор

Тип

 

 

||

binary

::

binary

%

nullary

.

unary(prefix / postfix) / binary

!

unary(postfix)

^ @@

binary

* &* / @ intersect

binary

+ - union minus

binary

mod

binary

subset

binary

..

binary

< <= > >= = <> in

binary

$

unary(prefix) / binary

not

unary(prefix)

and

binary

or

binary

xor

binary

->

binary

,

binary

:=

binary

 

 

 

 

Подробную информацию об операторах можно получить, исполнив команду ?operators.

Для задания функций используется функциональный оператор ->:

>f := x -> exp(-I*x)*sin(x): f(Pi/2);

−I

>g := (x, y) -> sqrt(x^2+y^2): simplify(g(sin(x), cos(x)));

1

24

Функция define служит для создания операторов, тогда как функция definemore позволяет добавить свойства к уже определенному функцией define оператору.

>define(L, linear, L(1)=t): L(x^2+2*x+2);

L(x2) + 2L(x) + 2t

2.3Математические функции

Maple имеет полный набор элементарных функций.

Основные тригонометрические функции

Функция

Описание

 

 

sin(x)

Синус

cos(x)

Косинус

tan(x)

Тангенс

cot(x)

Котангенс

sec(x)

Секанс

csc(x)

Косеканс

arcsin(x)

Арксинус

arccos(x)

Арккосинус

arctan(x)

Арктангенс

arccot(x)

Арккотангенс

arcsec(x)

Арксеканс

arccsc(x)

Арккосеканс

sinh(x)

Синус гиперболический

cosh(x)

Косинус гиперболический

tanh(x)

Тангенс гиперболический

coth(x)

Котангенс гиперболический

sech(x)

Секанс гиперболический

csch(x)

Косеканс гиперболический

arcsinh(x)

Арксинус гиперболический

arccosh(x)

Арккосинус гиперболический

arctanh(x)

Арктангенс гиперболический

arccoth(x)

Арккотангенс гиперболический

arcsech(x)

Арксеканс гиперболический

arccsch(x)

Арккосеканс гиперболический

 

 

 

 

25

Основные математические функции

 

Функция

 

Описание

 

 

 

 

 

 

 

 

exp(x)

 

Экспоненциальная функция

 

 

ln(x)

 

Логарифм натуральный

 

log[b](x)

 

Логарифм по основанию b

 

sqrt(x)

 

Корень квадратный

 

abs(x)

 

Модуль

 

signum(x)

 

Знак

 

round(x)

 

Округленное значение

 

trunc(x)

 

Целая часть

 

frac(x)

 

Дробная часть

 

max(x1, ... , xN)

Максимальное из чисел x1, . . . , xN

 

min(x1, ... , xN)

Минимальное из чисел x1, . . . , xN

 

 

 

 

 

 

 

 

 

 

 

Основные функции для работы с целыми числами

 

 

 

 

 

 

 

 

Функция

Описание

 

 

 

 

 

 

 

 

factorial(n)

Факториал

iquo(n, m)

Целочисленное частное при делении n на m

irem(n, m)

Остаток от деления n на m

igcd(n1, ... , nN)

Наибольший общий делитель

lcm(n1, ... , nN)

Наименьшее общее кратное

ifactor(n)

Разложение на простые множители

isprime(n)

Проверка, является ли число n простым

 

 

 

 

 

 

 

 

 

Основные функции для работы с комплексными числами

 

 

 

 

 

 

 

 

 

 

 

 

 

Функция

 

Описание

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Re(z)

 

Действительная часть

 

 

 

Im(z)

 

Мнимая часть

 

 

abs(z)

 

Модуль

 

 

argument(z)

 

Главное значение аргумента

 

 

conjugate(z)

Комплексно-сопряженное число

 

 

 

 

 

 

 

 

 

 

 

 

 

 

26

Некоторые специальные математические функции

Функция

Описание

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Dirac(x)

 

 

 

 

 

 

 

 

 

 

 

 

 

δ(0),

x = 0;

 

Дельта-функция Дирака δ(x) = 0,

 

 

x = 0

 

 

 

 

 

 

 

 

 

 

 

1,

x > 0;

 

 

 

 

Heaviside(x)

Функция Хевисайда h(x) = 0,

x < 0

 

 

 

 

GAMMA(x)

Гамма-функция Эйлера

Γ(x) =

0 1

 

 

 

 

 

 

 

 

e ttx

1 dt

 

 

Beta(x, y)

 

 

 

 

 

 

 

 

 

x sin t

 

 

− t)y−1 dt

Бета-функция Эйлера B(x, y) =

 

tx−1(1

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

Si(x)

Интегральный синус Si x = 0

 

 

 

dt

 

 

 

 

 

t

 

 

 

x cos t 1

Ci(x)

Интегральный косинус Ci x = γ +ln x+

 

 

 

dt

 

 

t

Shi(x)

Интегральный гиперболический синус 0

 

 

x sinh t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Shi x =

 

 

 

 

dt

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Chi(x)

Интегральный гиперболический косинус

 

 

 

Chi x = γ + ln x + x

cosh t − 1

dt

 

 

 

 

 

 

 

 

Ei(n, x)

 

 

 

 

 

0

 

t

 

 

 

 

 

 

 

 

 

Интегральная

экспоненциальная функция

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e−xt

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dt, n 0, x > 0

 

 

 

 

 

 

 

 

 

Ei (n, x) =

 

n

 

 

 

 

 

 

 

 

 

 

1

 

t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ei(x)

Интегральная экспоненциальная функция

 

 

 

Ei (x) = νp

 

x

et

dt = γ + ln x + x

et 1

dt, x > 0

 

 

 

 

 

 

 

−∞ t

 

 

 

0

 

t

 

 

 

 

 

 

Li(x)

Интегральный

 

логарифм

 

 

 

 

 

 

 

 

 

 

 

x

 

dt

 

= Ei (ln x), x >

 

 

 

 

 

 

 

 

 

 

Li x = νp 0

 

1

 

 

 

 

 

 

 

 

 

ln t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.4 Работа с выражениями

Пользовательский интерфейс системы Maple позволяет представлять как вводимые, так и выводимые выражения в самых различных формах, в том числе и в естественном математическом виде. Однако в

27

данном пособии выражения записываются на Maple-языке без использования специальных средств для их представления. При наборе математических выражений удобно пользоваться палитрами математических символов (меню View Palettes).

Для упрощения выражений используют функцию simplify, а для их расширения — функцию expand:

> simplify(sin(x)^2+cos(x)^2);

1

> expand(sin(2*x));

2 sin(x) cos(x)

Для разложения выражения на множители используют функцию factor, а для комплектования по степеням — функцию collect:

> factor(x^2+2*x*y+y^2);

(x + y)2

> g := int(x*(exp(x)-exp(-x)), x);

g:= x ex ex +exx + e1x

>collect(g, exp(x));

(x − 1) ex +x + 1 ex

Для преобразования выражений в тождественные формы используют функцию convert:

> convert(2*sin(I*x)+2*sinh(x), exp);

2I

2 ex

2 ex

+ ex ex

 

1

 

1

1

 

1

> collect(%, exp);

(1 + I) ex 1 e+x I

Полный список возможных параметров функции convert можно получить, выполнив команду ?convert.

28

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

> combine(2*sin(t)*cos(t));

sin (2t)

> combine(exp(sin(alpha)*cos(beta)) *exp(cos(alpha)*sin(beta)));

esin (α+β)

Для замены одной части выражения на другую используют функцию подстановки subs, а для вычисления значения выражения в заданной точке — функцию eval:

> subs(x=0, sin(x)/cos(x));

sin (0) cos (0)

> eval(sin(x)/cos(x), x=0);

0

Для применения некоторого правила к выражению используется функция applyrule:

> applyrule(ln(x)=2, 4/(log[2](x)));

2 ln (2)

2.5Средства программирования системы Maple

Условный оператор

Условный оператор в Maple имеет следующую конструкцию:

if <Условие> then <Последовательность действий>

{ elif <Условие> then <Последовательность действий> }

[else

<Последовательность действий> ]

end if;

29

>x := 5:

if x < 0 then print(’Negative’)

elif x > 0 then print(’Positive’)

else print(’Zero’)

end if;

P ositive

Операторы цикла

Цикл в Maple может иметь одну из следующих конструкций:

for <Имя> from <Выражение> [ by <Выражение> ] [ to <Выражение> ] [ while <Условие> ]

do

<Последовательность действий> end do;

или

for <Имя> in <Набор значений> [ while <Условие> ] do

<Последовательность действий> end do;

или

while <Условие> do

<Последовательность действий> end do;

> for i in [1, 2, 5, -1, 7, 12] while i>0 do

print(i) end do;

1

2

5

30