Некоторые операторы представлены двумя символами — например, оператор присваивания переменным их значения := содержит двоеточие и знак равенства. В таких операторах между символами недопустим знак пробела. Однако его можно использовать между отдельными частями выражений — так, (a+b)/c эквивалентно (a + b) / c.
2.1.3. Работа с числами и арифметические вычисления
Maple обеспечивает вполне естественную работу с целыми числами. В частности обеспечивается смена знака числа и выполнение основных арифметических операций с числами. Ввиду общеизвестности арифметических операций их определения не приводятся. Ограничимся примерами простых операций с числами, приведенными ниже:
> 12+34/47;
> -12+34*47;
1586
> 12*10^(-15)*3;
Результаты операций с целыми числами в общем случае представляются рациональными числами , являющимися отношениями целых чисел.
Десятичная точка в числах имеет особый статус — указание ее в любом месте числа, в том числе в конце, делает число вещественным и ведет к переводу вычислений в режим работы с вещественными числами. Например:
> 12.*10^(-15)*3;
.3600000000 10 -13
Количеством выводимых после десятичной точки цифр можно управлять, задавая значение системной переменной окружения Digits:
> Digits:=3: 1./3;
.333
> Digits:=10; ехр(1.);
Digits := 10
2.718281828
> Digits:=40: evalf(Pi);
3.141592653589793238462643383279502884197
Как видно из этих примеров, ввод и вывод чисел имеет следующие особенности:
• для отделения целой части мантиссы от дробной используется разделительная точка;
• нулевая мантисса не отображается (число начинается с разделительной точки);
• мантисса отделятся от порядка пробелом, который рассматривается как знак умножения;
• мнимая часть комплексных чисел задается умножением ее на символ мнимой единицы I (квадратный корень из -1);
• по возможности Maple представляет численный результат в виде точного рационального числа (отношения двух целых чисел).
Для работы с числами Maple имеет множество функций. Они будут рассмотрены в дальнейшем. С помощью многофункциональной функции convert Maple может преобразовывать числа с различным основанием (от 2 до 36, в том числе бинарные и шестнадцатиричные) в десятичные числа:
> convert("11001111", decimal, binary);
207
> convert("1AF.С", decimal, hex);
431.7500000
> convert("Maple", decimal, 36);
37451282
Благодаря возможности выполнения символьных вычислений Maple, как и другие СКА, реализует точную арифметику. Это значит, что результат может быть получен с любым числом точных цифр. Однако надо помнить, что идеально точные численные вычисления выполняются только в случае целочисленных операций, например, таких как приведены ниже:
> 101!;
942594775983835942085162312448293674956231279470254376832 \
788935341697759931622147650308786159180834691162349000 \
3549599583369706302603264000000000000000000000000
> (101!+1)-101!;
1
> (10005!)/10000!;
100150085022502740120
> 2^101-2^100;
1267650600228229401496703205376
> 2^(2^(2^2));
65536
> 2^101-2^100.0;
0.1267650600 10³¹
> Digits;
10
Обратите внимание на то, что в последнем примере точность резко потеряна, так как показатель степени 100.0 был задан как число с плавающей точкой. Соответственно и результат оказался в форме такого числа. Число верных цифр результата задает системная переменная Digits (по умолчанию 10).
Приведем еще пару примеров точных вычислений некоторых функций (с точностью до 150 знаков мантиссы):
> evalf(ехр(1),150);
2.71828182845904523536028747135266249775724709369995957496 \
696762772407663035354759457138217852516642742746639193 \
200305992181741359662904357290033429526
> evalf(sin(1.),150);
0.84147098480789650665250232163029899962256306079837106567 \
275170999191040439123966894863974354305269585434903790 \
7920674293259118920991898881193410327729
2.1.5. Вычисление числа π с произвольной точностью
Разработчики систем Maple и Mathematica утверждают, что в принципе возможны вычисления и с плавающей точкой с заданием до миллиона точных цифр мантиссы. Практически такая точность почти никогда не нужна, по крайней мере для физиков и инженеров. Например, всего 39 точных цифр числа π достаточно, чтобы вычислить длину окружности всей Вселенной с точностью до диаметра атома водорода. Однако истинные математики одно время были просто «помешаны» на вычислении числа π с большой точностью. Кое кто потратил на это всю жизнь. Выдающийся вклад в такие расчеты внес Рамануджан, который еще в 1916 году предложил алгоритмы и формулы для вычисления числа π с произвольной точностью.
Читать дальше
Конец ознакомительного отрывка
Купить книгу