Иллюстрированный самоучитель по Mathematica

         

Арифметические операторы


Математические выражения в системе Mathematica записываются с помощью операторов и функций. Операторы (от слова operator — исполнитель) являются элементами записи математических выражений, указывающими на то, какие действия производятся над символьными или числовыми данными. Когда эти данные используются совместно с операторами, их называют операндами.

Выражения, составленные из операторов, операндов и функций, способны возвращать результат своего вычисления. К примеру, если вычисляется сумма 2+3, то знак «+» является оператором, числа 2 и 3 — операндами, а вся запись 2+3 — выражением. Сами по себе операторы не возвращают какого-либо значения.

Существуют общепринятые приоритеты выполнения операций, например, в первую очередь выполняются сложение и вычитание, затем умножение и деление и далее другие операции. С помощью круглых скобок можно изменять последовательность выполнения действий, например, в выражении (2+3) М вначале будет вычислено 2+3, а затем уже результат будет умножен на число 4. В сомнительных случаях применение скобок особенно желательно, например 2^2+3 даст 7, а 2^ (2 + 3) даст 32.

Ниже перечислены основные операторы для выполнения арифметических операций (х, у и z — операнды, задающие данные, над которыми выполняются вычисления):



x+y+z  Сложение

x-y-z    Вычитание

х*у*z   или x у z    Умножение

х/у       Деление

х^у      Возведение х в степень у

Expr //N        Дает приближенное (с установленной точностью и                 формой) значение выражения ехрг

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

Как уже отмечалось, при выполнении вычислений особая роль принадлежит символам «%». Эти символы как сами по себе, так и в качестве аргументов функций используются для указания на применение результата предшествующих операций:


  • % — возвращает результат последней операции;
  • %% — возвращает результат предпоследней операции;
  • %...% — возвращает результат операции, выполненной в строке, отстоящей от конца на число повторений символа «%»;
  • %n — возвращает результат операции в строке n.
Нетрудно заметить, что применение этих символов облегчает выполнение последовательных вычислений.

Как уже отмечалось, для представления арифметических выражений ехрг в виде вещественного результата используется функция N[expr,m]. Можно также задать вычисление любого выражения в численном виде, используя выражение ехрг //N:

1/3+2/7

13/21

1/3+2/7 //N

0.619048

Таким образом, используя функцию N[expr,m] или вывод с помощью символов //N, можно организовать вычисления в режиме калькулятора, находясь в среде оболочки системы.

Если х имеет вещественное значение, то функция

MantissaExponent[x]

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

123.456 10^10

1.23456 х1012

MantissaExponent[%]

{0.123456, 13}

Арифметические вычисления с повышенной точностью

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

Следующие две функции, Rationalize [х] и Rationalize [x, dx], дают приближение для числа х в виде рациональных чисел. Вторая из этих функций задает приближение с заданной точностью dx.

Mathematica может работать с большими числами и выполнять определенные операции с очень высокой точностью. Примеры, приведенные на рис. 3.3, иллюстрируют эти возможности.

Как видно из примеров представления рациональных чисел, результат приближения зависит от заданной погрешности. Чем она меньше, тем большие значения целых чисел в числителе и знаменателе результата разыскивает система.


Функция Rationalize открывает широкие возможности для разработки целочисленных алгоритмов вычислений, позволяя легко получать рациональные приближения для наиболее распространенных числовых констант — на рис. 3.3 примеры этого даны для числа 8.

Обратите внимание на последние два примера — вычисление факториала достаточно большого числа. Первый результат целочисленный: он занял целых три строки, но зато он точен. С помощью функции N [ехрг] результат всегда можно представить в виде большого вещественного числа — но приближенного. При этом может использоваться научная форма представления чисел — с мантиссой и порядком.



Рис. 3.3. Примеры представления чисел в разных формах

Укороченная форма записи арифметических операций

Спецификой систем Mathematica являются арифметические операторы с укороченной формой записи, объединяющие операцию присваивания с арифметической операцией. Эти довольно специфические операторы, хорошо известные пользователям языка С, представлены ниже вместе с соответствующими им функциями.

Функция

Оператор

Назначение

Increment [i]

i++

Увеличивает значение i на 1 после использования i в выражении

Decrement [i]

i --

Уменьшает значение i на 1 после использования i в выражении

Preincrement [i]

++i

Увеличивает значение i на 1 до использования i в выражении

PreDecrement [i]

--i

Уменьшает значение i на 1 до использования i в выражении

AddTo[x,d]

x += dx

Прибавляет dx к х и возвращает новое значение х

SubtractFrom[x,dx]

x -= dx

Отнимает dx от х и возвращает новое значение х _

TimesBy [х, с] X **= 'С Умножает х на с и возвращает новое значение х
DivideBy [х, с] X /= С Делит х на с и возвращает новое значение х
Применение укороченных операторов делает запись математических выражений более короткой, хотя наглядность их при этом несколько снижается. Ниже представлены примеры выполнения укороченных арифметических операций.

Ввод (In)

Вывод (Out)

i=0

0

++i; ++i; ++i

3

i=0; i++; i++; i++

2

i=5

5

-- i

4

i=5

5

i --

5

i --

4

x=5

5

x+=0 . 5

5.5

x-=0 . 5

5.

x*=2

10.

x/=5

2.



Содержание раздела