Основные классы данных. Численные данные.
Вещественные числа
Численные данные могут быть представлены также десятичными вещественными числами, которые могут иметь различную форму, например 123.456, 1.23456 10^2.12345.6 10^-2 и т. д. В общем случае они содержат мантиссу с целой и дробной частями и порядок, вводимый как степень числа 10. Как правило, вещественные числа в системах символьной математики могут иметь мантиссу с любым, но конечным числом знаков. Пробел между мантиссой и порядком эквивалентен знаку умножения *:
23.456
*
10
^
100
2.3456
*
10
^
101
10
^
-
100
1
/
100000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000000000000000000
10
.
^
-
100
1
.x
10
^
-
100
Как принято в большинстве языков программирования, целая часть мантиссы отделяется от дробной части точкой, а не запятой.
Mathematica производит операции с числами изначально как с целыми. Однако установка значка разделительной точки означает, что число должно рассматриваться как вещественное. Например, 1 – целое число, но 1. – уже вещественное число. Для представления выражения ехрг в форме вещественного числа используется функция N [ехрг] или N [ехрг, число_цифр_результата].
Примеры
1
/
3
1
/
3
1
.
/
3
.
0.333333
N[
1
/
3
]
0.333333
N[
2
*
Pi,
50
]
6.283185307179586476925286766559005768394338
Вещественные числа всегда имеют некоторую погрешность представления результатов из-за неизбежного округления и существования так называемого машинного нуля – наименьшего числа, которое воспринимается как нуль. В терминах системы Mathematica говорят о приближении числовых данных как об их аппроксимации, хотя в отечественной литературе под аппроксимацией чаще подразумевают описание некоторой зависимости между данными достаточно приближенной аналитической зависимостью.
Mathematica имеет две системные переменные, позволяющие вывести максимально и минимально возможные значения чисел, с которыми оперирует система:
$MaxMachineNumber
1.79769
*
10
^
308
$MinMachineNumber
2.22507
*
10
^
-
308
Обратите внимание на то, что функция N [ехрr, m] позволяет получить число с практическим любым числом цифр результата m. Разработчики последней версии Mathematica 4 утверждают, что это верно при количестве цифр результата до одного миллиона, что с лихвой удовлетворяет требованиям подавляющего большинства расчетов и вычислений.
Функции IntegerPart [x] и FractionalPart [x] обеспечивают возврат целой и дробной частей вещественного числа х:
N[Pi]
3.14159
IntegerPart[Pi]
3
FractionalPart[Pi]
-
3
.
+
Pi
N[FractionalPart[Pi]]
0.141593
Еще одна функция RealDigits [x] возвращает список реальных цифр результата и число цифр целой части х:
RealDigits[N[
2
*
Pi]] {{
6
,
2
,
8
,
3
,
1
,
8
,
5
,
3
,
0
,
7
,
1
,
7
,
9
,
5
,
8
,
6
},
1
}
Есть и множество других функций для работы с вещественными числами. Они будут рассмотрены в дальнейшем. В Mathematica 4 функция RealDigits имеет расширенные формы, например RealDigits [x, b, len, n]. Для получения цифр мантиссы введены функции MantissaExponent [x] и MantissaExpo-nent[x,b].
Комплексные числа
Многие математические операции базируются на понятии комплексных чисел. Они задаются в форме:
z
=
Re(z)
+
I
*
Im(z)
…или:
z
=
Re(z)
+
i Im(z)
Где знак I (i) – мнимая единица (квадратный корень из -1), Re (z) – действительная часть комплексного числа, а Im (z) – мнимая часть комплексного числа. Пример задания комплексного числа:
2
+
I3
…или:
2
+
3
*
I
Мнимая часть задается умножением ее значения на символ мнимой единицы I. При этом знак умножения * можно указывать явно или заменить его пробелом – в последнем случае комплексное число выглядит более естественным. Функции Re [ z ] и Im [ z ] выделяют, соответственно, действительную и мнимую части комплексного числа z. Это иллюстрируют следующие примеры:
Re[
3
+
2
*
1
]
3
Im[
3
+
2
I]
2
Большинство операторов и функций системы Mathematica работают с комплексными числами. Разумеется, это расширяет сферу применения системы и позволяет решать с ее помощью различные специальные задачи – например, относящиеся к теории функций комплексного аргумента. Комплексные числа широко используются в практике электро- и радиотехнических расчетов на переменном токе.