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

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

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

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 33 34 35 36 37 38 39 40 41 ... 125
Перейти на страницу:

3.4.5. Пакет для работы с гауссовыми целыми числами — GaussInt

Гауссово целое число — это число вида а+I*b, где а и b — любые целые рациональные числа. Таким образом они образуют решетку всех точек с целыми координатами на плоскости комплексных чисел. Пакет GaussInt содержит достаточно представительный набор функций для работы с этими числами:

> with(GaussInt);

Warning, the name Glgcd has been redefined

[GIbasis, GIchrem, GIdivisor, GIfacpoly, GIfacset, GIfactor, GIfactors, GIgcd, GIgcdex, GIhermite, GIissqr, GIlcm, GImcmbine, GInearest, GInodiv, GInorm, GInormal, GIorder, GIphi, GIprime, Glquadres, GIquo, GIrem, GIroots, GIsieve, GIsmith, GIsqrfree, GIsqrt, GIunitnormal]

Нетрудно заметить, что в этот набор входят уже известные числовые функции, к именам которых добавлены буквы GI. Например, функция GIfactor(c) раскладывает гауссово число (в том числе комплексное) на простые множители, GIgcd(c1,c2) находит наибольший общий делитель гауссовых чисел с1 и с2 и т.д. В связи с этим в особых комментариях пакет не нуждается.

3.5. Расширенные возможности Maple в работе с выражениями

3.5.1. Ввод выражений

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

Выражения в Maple могут оцениваться и изменяться в соответствии с заданными математическими законами и правилами преобразований. Например, функция упрощения выражений simplify способна упрощать многие математические выражения. Maple автоматически упрощает некоторые выражения, например, такие, как х+0, х-0, 1*х, х/1 и т.д. Но функцию можно применять и для выражений, записанных в качестве ее параметра в круглых скобках (файл expr):

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

1

> simplify((х^2-2*х*а+а^2)/(х-а));

x-а

Важно отметить, что один и тот же результат может быть получен от многих выражений. Поэтому получение исходного выражения по упрощенному возможно далеко не всегда, а чаще всего просто вообще невозможно.

Для выполнения любых математических операций необходимо обеспечить ввод в систему исходных данных — в общем случае математических выражений. Для ввода их и текстовых комментариев служат два соответствующих типа строк ввода. Переключение типа текущей строки ввода осуществляется клавишей F5. Строка ввода математических выражений имеет отличительный символ >, а строка ввода текстов такого признака не имеет.

В строке ввода может располагаться несколько выражений. Фиксаторами (указанием, что выражение окончено) их могут быть символы ; (точка с запятой) и : (двоеточие). Символ «;» фиксирует выражение и задает вывод результатов его вычисления. А символ «:» фиксирует выражение и блокирует вывод результатов его вычисления. Фиксаторы выполняют также функцию разделителей выражений, если в одной строке их несколько.

Ввод выражения оканчивается нажатием клавиши Enter. При этом маркер ввода (жирная мигающая вертикальная черта) может быть в любой позиции строки. Если надо перенести ввод на новую строку, следует нажимать клавиши Shift и Enter совместно. С помощью одного, двух или трех знаков % (в реализациях до Maple V R5 это был знак прямых кавычек ") можно вызывать первое, второе или третье выражение с конца сессии (файл expr):

> а:b:с:

> %;

с

> а:b:с:

> %%;

b

> a:b:c:

> %%%;

a

> 2+3:

> %;

5

> %%+5;

10

Особая роль при вводе выражений принадлежит знакам прямого апострофа (одиночного ' или двойного "). Заключенное в такие знаки выражение освобождается от одной пары (закрывающего и открывающего знаков '):

> ''factor(а^2+2*а*b^2+b^2)'';

'factor(a² +2 ab² +b²)'

> %;

factor(a² +2 ab² +b²)

> factor(а^2+2*а*b+b^2);

(a + b)²

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

Для завершения работы с текущим документом достаточно исполнить команду quit, done или stop, набранную в строке ввода (со знаком ; в конце).

3.5.2. Оценивание выражений

Встречая выражение, Maple оценивает его, то есть устанавливает возможность его вычисления и, если возможно, вычисляет его. Если выражение — скалярная переменная, то ее значение будет выведено в ячейке вывода. Для переменных более сложных типов выводится не их значение, а просто повторяется имя переменной. Просто повторяются также имена неопределенных переменных.

Для оценивания выражений различного типа существует группа функций, основные из которых перечислены ниже:

• eval(array) — возвращает вычисленное содержимое массива array;

• evalf(expr, n) — вычисляет expr и возвращает вычисленное значение в форме числа с плавающей точкой, имеющего n цифр после десятичной точки;

• evalhf(expr) — вычисляет expr и возвращает вычисленное значение с точностью, присущей оборудованию данного компьютера;

• evalf(int(f, x=a..b)) — оценивает и возвращает значение определенного интеграла int(f,x=a..b);

• evalf(Int(f, x=a..b)) — оценивает и возвращает значение определенного интеграла, заданного инертной функцией Int(f,x=a..b);

• evalf(Int(f, x=a..b, digits, flag)) — аналогично предыдущему, но возвращает значение интеграла с заданным параметром digits числом цифр после десятичной точки и со спецификацией метода вычислений flag;

• evalm(mexpr) — вычисляет значение матричного выражения mexpr и возвращает его;

• evalb(bexpr) — вычисляет и возвращает значения логических условий;

• evalc(cexpr) — вычисляет значение комплексного выражения;

• evalr(expr, ampl) — оценивает и возвращает значения интервальных выражений (функция должна вызываться из библиотеки);

• shake(expr, ampl) — вычисляет интервальное выражение.

Для функции evalf параметр n является необязательным, при его отсутствии полагается n=10, то есть вещественные числа по умолчанию выводятся с мантиссой, имеющей десять цифр после десятичной запятой.

В выражении expr могут использоваться константы, например, Pi, ехр(1), и функции, такие как ехр, ln, arctan, cosh, GAMMA и erf. В матричном выражении mexpr для функции evalm могут использоваться операнды в виде матриц и матричные операторы &*, +, - и ^. В комплексных выражениях cexpr наряду с комплексными операндами вида (а+I*b) могут использоваться многие обычные математические функции:

Sin     cos      tan     csc     sec     cot

Sinh    cosh     tanh    csch    sech    coth

Arcsin  arccos   arctan  arccsc  arcsec  arccot

Arcsinh arccosh  arctanh arccsch arcsech arccoth

Exp     ln       sqrt    ^       abs     conjugate

Polar   argument signum  csgn    Re      Im

Ei      LambertW dilog   surd

Примеры применения функций оценивания даны ниже (файл eval):

> А: = [[1,2],[3,4]];

А:= [[1,2], [3, 4]]

> eval(А);

[[1,2], [3, 4]]

> evalf(sin(1));

.8414709848

> evalf(sin(2)^2+cos(2)^2,20);

1.0000000000000000000

> evalhf(sin(1));

.841470984807896505

> evalm(20*A+1);

> 1<3;

1<3

> evalb(1<3);

true

> readlib(shake) : evalr(min(2,sqrt(3) )) ;

√3

> evalr(abs(x));

INTERVAL(INTERVAL(, 0..∞), -INTERVAL(, -∞..0))

> shake(Pi,3);

INTERVAL(3.1102..3.1730)

В дальнейшем мы многократно будем применять функции оценивания для демонстрации тех или иных вычислений.

3.5.3. Последовательности выражений

Maple может работать не только с одиночными выражениями, но и с последовательностями выражений. Последовательность выражений — это ряд выражений, разделенных запятыми и завершенный фиксатором (файл expr1):

> a, y+z, 12.3, cos(1.0);

a, y + z, 12.3, .5403023059

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

> f$5;

f,f,f,f,f

> $1..5;

1, 2, 3, 4, 5

> (n^2)$5;

n², n², n², n², n²

> (n^2)$n=0..5;

0, 1, 4, 9, 16, 25

> Vl[i]$i=1..5;

Vl1, Vl2, Vl3, Vl4, Vl5

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

> seq(sin(х),х=0..5);

0, sin(1), sin(2), sin(3), sin(4), sin(5)

> seq(sin(x*1.),x=0..5);

0., .8414709848, .9092974268, .1411200081, -.7568024953, -.9589242747

> seq(f1(1.),f1=[sin,cos,tan]);

1 ... 33 34 35 36 37 38 39 40 41 ... 125
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов.
Комментарии