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

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

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

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 19 20 21 22 23 24 25 26 27 ... 125
Перейти на страницу:

> 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

2.1.4. Точная арифметика

Благодаря возможности выполнения символьных вычислений 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 году предложил алгоритмы и формулы для вычисления числа π с произвольной точностью.

На рис. 2.1 представлено задание одной из самых известных формул Рамануджана. Уже первый член суммы этой формулы (k= 1) дает значение числа π с погрешностью вычисления менее 3∙10-8. Увеличение k на 1 каждый раз увеличивает число верных десятичных знаков на 8, т. е. в сто миллионов раз! В принципе эта формула может дать до миллиарда и более точных знаков числа π!

Рис. 2.1. Проверка вычислений по формуле Рамануджана

У инженеров формула Рамануджана может вызвать приступ головной или зубной боли. Уж больно несуразна она с первого взгляда. О какой точности можно говорить, если на подавляющем большинстве языков программирования корень квадратный из двух, факториал и степень вычисляются всего с 8–15 точными знаками?

Но, системы 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 и расположение корней на комплексной плоскости

Окружность радиуса  представляет абсолютное значение комплексного числа z=a+b*I. Она является геометрическим множеством комплексных чисел, образованных концом вращающегося радиус-вектора числа z вокруг его начала в точке (0, 0) комплексной плоскости, иллюстрацией чего и является частный пример рис. 2.2. Позже мы рассмотрим ряд функций для работы с комплексными числами.

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);

false

2.1.8. Преобразования чисел с разным основанием

В Maple возможна работа с числами, имеющими различное основание (base), в частности, с двоичными числами (основание 2 — binary), восьмеричными (основание 8 — octal) и шестнадцатиричными (основание 16 — hex). Функция convert позволяет легко преобразовывать форматы чисел:

> convert(12345,binary);

11000000111001

> convert(%,decimal,binary);

1 ... 19 20 21 22 23 24 25 26 27 ... 125
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов.
Комментарии