Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
default.doc
Скачиваний:
10
Добавлен:
14.09.2019
Размер:
231 Кб
Скачать
☆
  1. Mathematica. Стандартныей порядок вычисления выражения

Вычисление выражения в Mathematica основано на использовании правил преобразования. К выражению применяются все возможные пра­вила, которым обучена система. Какие правила применять, система оп-

ределяет, просматривая списки правил, ассоциированных с тем или иным символом. Таким образом, процесс вычисления выражения опира¬ется на вычисление символов. Какие существуют возможности пакета при работе с символами?

Во-первых, с символами связаны четыре типа правил преобразова¬ния глобального характера. А именно, правила преобразований, введен¬ные посредством функций семейства xSetxxx, обязательно заносятся в один из списков

• Собственных значений символа Own Values,

• Верхних значений символа Up Values,

• Нижних значений символа Down Values,

• Дальних значений символа Sub Values,

которые система просматривает при вычислении выражения.

Во-вторых, символы могут снабжаться атрибутами, то есть наделя-яться некоторыми свойствами. Эти свойства учитываются на определен¬ных этапах вычисления выражения.

Стандартный порядок вычисления выражения следующий:

1. Атомарные объекты: числа, строки и символы, не имеющие собствен¬ных значений, не вычисляются.

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

3. Если встречаются символы, имеющие собственные значения Own Va¬lues, то им присваивается указанное собственное значение.

4. Если символ-голова наделен свойствами коммутативности, ассоциа¬тивности, дистрибутивности относительно списков (имеет атрибуты Orderless, Flat, bistable), то применяются эти свойства.

5. Выполняются правила преобразований, определенные пользователем в текущей Сессии. При этом списки значений символа просматрива¬ются в следующем порядке:

• Список верхних значений символа Up Values,

• Список нижних значений символа Down Values,

• Список дальних значений символа Sub Values.

6. Применяются встроенные в систему (built-in) определения.

7. Если в процессе вычисления ни одна часть выражения не изменилась, вычисления прекращаются.

  1. Mathematica. Как можно изменить стандартный порядок вычисления выражения

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

  • Атрибут HoldAll блокирует вычисление всех подвыражений первого уровня,

  • Атрибут HoldFirst опускает вычисление первого подвыражения пер­вого уровня,

  • Атрибут HoldRest блокирует вычисление всех подвыражений первого уровня, кроме первого.

Такими свойствами наделяют символ, если требуется не вычислять какую-либо часть обрабатываемого системой выражения. При этом го­ворят, что тот или иной аргумент функции замораживается.

SetAttributes[f,HoldFirst] f[l+5, x+2]

f[1+5,2+x]

В рассмотренном выше примере заморожен первый аргумент выра­жения с головой f, поэтому система его не вычислила.

В случае, когда необходимо локально вычислить некоторое заморо­женное подвыражение, применяют функцию Evaluate [expression].

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]