Но, системы Maple 9.5, благодаря встроенному аппарату точной арифметики, способна обеспечить эффективную проверку подобных формул. В нашем случае мы ограничились случаем n= 100 (максимальное значение k) и провели вычисления «всего» 600 цифр числа π — с тем, чтобы результаты вместились в один рисунок. И они говорит сам за себя — все цифры при вычислении числа π по формуле Рамануджана и по встроенному в Maple алгоритму полностью совпали, а вычисленная ошибка равна нулю!
2.1.6. Работа с комплексными числами
Maple, естественно, как и другие СКМ, может работать с комплексными числами вида z=Re(z)+I∙Im(z). Мнимая единица в комплексном числе (корень квадратный из -1) обозначается как I. Функции Re(z) и Im(z) возвращают действительную и мнимую части комплексных чисел. На комплексной плоскости числа задаются координатами точек (х, у) — рис. 2.2.
Рис. 2.2. Представление обычных и комплексных чисел на плоскости
Для представления чисел на рис. 2.2 используется функция pointplot(list), где list — список координат точек. Эта функция становится доступной при подключении пакета plots командой with(plots). Кроме того, использована функция вывода ряда графических объектов на один график — display (см. далее описание представления комплексных чисел).
Примеры задания комплексного числа и вывода его действительной и мнимой частей представлены ниже:
> a+b*I;
a+bI> 1.25+Pi*I;
1.25 + I π> Re(1.25+Pi*I);
1.25> Im(1.25+Pi*I);
πКомплексные числа обычно представляют на так называемой комплексной плоскости, у точек которой координата x задает действительную часть комплексного числа, а у (мнимая ось) показывает мнимую часть такого числа. На рис. 2.2 показано задание в виде радиус-векторов комплексного числа z=4+3I, -z и комплексно-сопряженного числа 4-3I. А на рис. 2.3 показан пример вычисления корней уравнения z^n=1 для случая n=16 (другие случаи читатель может рассмотреть самостоятельно, просто изменив n). Нетрудно заметить, что корни уравнения — комплексные числа и что на комплексной плоскости они ложатся на окружность единичного радиуса.
Рис. 2.3. Вычисление корней уравнения z^n=1 и расположение корней на комплексной плоскости
Окружность радиуса
2.1.7. Контроль над типами чисел
Числа могут служить объектами ввода, вывода и константами, входящими в математические выражения. Функция type(x, numeric) позволяет выяснить, является ли х числом. Если является, то она возвращает логическое значение true (истина), а если нет, то false (ложь). Например:
> type(2,numeric);
true> type(2.6,numeric);
true> type(Pi,numeric);
false> type(I,numeric);
false> type(3/7,numeric);
true> type(3^7,numeric);
true> type(х^2,numeric);
falseФункции type(x, integer), type(x, rational) и type(x, fraction) можно использовать для проверки того, имеет ли х значение, соответственно, целого числа, рационального числа или простой дроби:
> type(123,integer);
true> type(123.,integer);
false> type(123/456,rational);
true> type(1./3,rational);
false> type(1/2,fraction);
true> type(0.5,fraction);
false2.1.8. Преобразования чисел с разным основанием
В Maple возможна работа с числами, имеющими различное основание (base), в частности, с двоичными числами (основание 2 — binary), восьмеричными (основание 8 — octal) и шестнадцатиричными (основание 16 — hex). Функция convert позволяет легко преобразовывать форматы чисел:
> convert(12345,binary);
11000000111001> convert(%,decimal,binary);
12345> convert(12345,octal);
30071> convert(123456,hex);
1E240> convert(%,decimal,hex);
123456Помимо приведенных вариантов функция convert имеет еще ряд других форм. С ними можно познакомиться с помощью справки по этой мощной функции. В дальнейшем будет приведен ряд других применений этой функции.
2.1.9. Пакет RealDomain для вычислений с действительными данными
В целом ряде случаев работа вычислителей Maple по умолчанию в области комплексных значений данных нежелательна, поскольку приводит к представлению результатов также в комплексном виде:
> restart:simplify(sqrt(х^2)); ln(-2); solve(х^3-8=0,x);
csgn(x) x ln(2)+ π I 2, -1+√3I, -1-√3IВ связи с этим в Maple введен новый математический пакет расширения RealDomain, переводящий вычисления в область реальных значений данных. Вызов пакета обеспечивается следующим образом: