Категории
Самые читаемые
onlinekniga.com » Научные и научно-популярные книги » Математика » Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов

Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов

Читать онлайн Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 26 27 28 29 30 31 32 33 34 ... 125
Перейти на страницу:

• unary — унарные операторы (с одним операндом);

• nullary — нуль-арные операторы (без операнда — это одна, две и три пары кавычек);

• precedence — операторы старшинства (включая логические операторы);

• functional — функциональные операторы.

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

> ?operators[вид];

где вид — название вида оператора, указанное выше. Будет выведена страница справки по операторам заданного вида. А для изучения примеров применения операторов нужно задать и исполнить команду

> ?operators[examples];

Команда

> ?define;

позволяет ознакомиться с функций define. С ее помощью можно определять новые операторы.

3.1.3. Применение бинарных (инфиксных) операторов

Бинарные операторы, именуемые также инфиксными, используются с двумя операндами, обычно размещаемыми по обе стороны от оператора. В ядро Maple включено около трех десятков бинарных операторов. Основные из них перечислены в таблице 3.1. Чуть позже мы рассмотрим и другие бинарные операторы. Примеры вычисления выражений с бинарными операторами (файл ор):

> 2+3-(-4);

9

> [2^3,2**3];

[8,8]

> 7 mod 5;

2

> [[email protected],[email protected]@2];

[3, 3(2)]

> [х@х,х@@х];

[x(2), x(x)]

> [х$3,х$4];

[х, x, x, x, x, x, x]

Таблица 3.1. Бинарные операторы

Обозначение Оператор Обозначение Оператор + Сложение @ Оператор композиции - Вычитание @@ Повторение композиции * Умножение , Разделитель выражений / Деление := Присваивание ** или ^ Возведение в степень .. Задание интервала mod Остаток от деления , Разделитель выражений $ Оператор последовательности &* Некоммутативное умножение . Разделительная точка &<string> Нейтральный оператор || Конкатенация (объединение)

> int(х^2,х=1..4);

21

> S: = `Hello` || ` my ` || `friend!`;

S := Hello my friend!

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

> f:=а->1/(1+а);([email protected]@3)(а);

> f(5);

> g:=а->1/(1+а^2);([email protected]@3)(а);

> g(2);

А вот еще один пример применения этого оператора для составления цепного радикала и вычисления ряда таких цепочек в цикле:

> f := х -> sqrt(1 + х);

> f(f(0));

√2

> f(f(f(0)));

> ([email protected]@10)(x);

> for k from 1 to 10 do ([email protected]@k)(0) = evalf(([email protected]@k)(0)); od;

3.1.4. Работа с множествами

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

• union — включает первый операнд (множество) во второй;

• intersect — создает множество, содержащее общие для операндов элементы;

• minus — исключает из первого операнда элементы второго операнда.

В любом случае в результирующем множестве устраняются повторяющиеся элементы. Примеры вычисления выражений с этими операторами приведены ниже (файл sets):

> {a,a,b,с,с,d} union {e,e,f,g};

{f,g,a,b,e,с,d}

> {a,a,b,с,с,d} intersect {a,c,e,e,f,g};

{a, c}

> {a,a,b,c,c,d} minus {a,d};

{b, c}

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

3.1.5. Новый оператор in в множествах

Начиная с Maple 8 для удобства работы с множествами был добавлен новый оператор in. Он может использоваться в виде (файл sets):

element in objs

или

element in SetOf(type)

где element — элемент множества или списка objs, type — тип выражения. Применение оператора in поясняет несколько примеров:

> a in {а, b, с, d};

а ∈ {b, а, с, d}

> evalb(%);

true

> 3 in {1,2,3} intersect ({1,2,6} minus {1,4,7});

3 ∈ {2}

> evalb(%);

false

> evalb(1 in '{1,2,3} intersect ({1,2,6} minus {1,4,7})');

false

> is( у in SetOf( real ) ) assuming x :: fraction;

false

> is( x in SetOf( real ) ) assuming x :: fraction;

true

> coulditbe( x in SetOf ( integer ) ) assuming x ::rational;

true

3.1.6. Применение унарных арифметических операторов

Унарные операторы используются с одним операндом. Они могут быть префиксными, если оператор стоит перед операндом, и постфиксными, если он стоит после операнда. К унарным относятся семь операторов, приведенных в табл. 3.2.

Таблица 3.2. Унарные операторы

Обозначение Оператор + Унарный плюс (префикс) - Унарный минус (префикс) ! Факториал (постфикс) . Десятичная точка (префикс или постфикс) $ Последовательность (префикс) not Логическое отрицание (префикс) &string Метка (префикс)

Примеры применения унарных операторов в Maple 9.5:

> [-x,x+(-x),х+(+х)];

[-x, 0, 2х]

> 20!;

2432902008176640000

> .234;

.234

> 2.34;

2.34

> 2*%;

4.68

> а$3;

а, a, а

3.1.7. Применение оператора % и команды history

Мы уже неоднократно отмечали, что в Maple оператор % обеспечивает подстановку в строку ввода (или в выражение) последнего результата операции, %% — предпоследнего и %%% — третьего с конца. Есть еще одна иногда полезная возможность проследить за ходом частных вычислений внутри документа — применение команды-функции history.

Функция history(expr) или history() создает список переменных вида Oi, где индекс i=1, 2, 3… . Этим переменным можно присваивать значения в диалоговом режиме и отслеживать результаты вычислений. Команда off;, вводимая после использования данной функции, завершает работу с ней. Ниже представлен диалог с применением функции history:

> history();

O1 := 2;

2

O2 := sin(1.);

.8414709848

O3 := O1*O2;

1.682941970

O4 := off;

> %;

history

К сожалению, полученный результат и значения глобальных переменных Oi после завершения работы с данной функцией становятся недоступными, так что практической пользы от ее применения не так уж много. Разумеется, внутри блока history вы можете присвоить результат другой переменной, и он сохранится. При каждом очередном применении функции history нумерация переменных Oi начинается с начала, так что какой-либо преемственности при использовании этой функции нет.

Функция history может применяться в качестве средства начальной отладки вычислений. Внутри фрагмента программы, заданного функцией history, можно задавать построения графиков. Например, при исполнении фрагмента программы

> history();

O1 := sin(х);

sin(x)

O2 := plot(O1,х=0..20) ;

O3:= off;

будет построен график синусоиды. В целом работа с функцией history отличается не слишком высокой стабильностью, так что возможности этой функции пока остаются не слишком востребованными.

3.1.8. Работа с логическими операторами

Логические операторы, именуемые также булевыми, указывают на логическую связь величин (или выражений). Они представлены рядом бинарных операторов, приведенных в табл. 6.3 и реализованы во всех СКМ.

Таблица 3.3. Бинарные логические операторы

Обозначение Оператор < Меньше <= Меньше или равно > Больше >= Большее или равно = Равно о Не равно And Логическое «и» Or Логическое «или»

Конструкции с этими операторами, такие как х=у, возвращают логическое значение — константу true, если условие выполняется, и false, если оно не выполняется. Кроме того, к логическим операторам относится унарный оператор not — он представляет логическое «нет». Для возврата логических значений выражений с этими операторами в Maple 9.5 используется функция evalb(условие), например (файл evalb):

1 ... 26 27 28 29 30 31 32 33 34 ... 125
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов.
Комментарии