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

С помощью встроенных функций можно изменить структуру спи­ска: создать в списке дополнительный уровень или, наоборот, уменьшить уровень вложенности списка. Это достигается при помощи функций Par­tition и Flatten соответственно.

Функция Partition [list, п] разбивает список на подсписки длины п. Если число элементов не кратно п, то оставшиеся k < п элементов удаляется из списка. Использование функции с тремя аргументами Partition [list, n, d] разбивает список на подсписки длины п с отступом d от начала списка. Первый элемент k-того подсписка имеет номер (k-l)d + 1 в исходном списке и так далее. Таким образом, при d < п списки перекрываются, при d > п - элементы (п+1),... ,d не включаются.

Partition [Range [20] , 4, 6]

{{1, 2, 3, 4}, {7, 8, 9, 10}, {13, 14, 15, 16}} Partition[Range[20] , 6, 4]

{{1, 2, 3, 4, 5, б}, {5, б, 7, 8, 9, 10}, {9, 10, 11, 12, 13, 14}, {13, 14, 15, 16, 17, 18}}

Функция Flatten [list, п] уменьшает количество уровней в списке. Она убирает головы List в списках от первого до n-го уровня включи­тельно.

Flatten[{l, {2, {3, 4, {5, 6}}}, {7, 8}}, 2]

{1, 2, 3, 4, {5, 6}, 7, 8}

Если указан третий аргумент Flatten [list, n, head], из всех подвыра­жений указанных уровней выбираются только выражения с головой head.

Функция Flatten At [list, positions] поднимает на первый уровень вы­ражения, стоящие на указанных позициях positions.

FlattenAt[{l, {2, {3, 4, {5, 6}}}, {7, 8}}, 3]

{1, {2, {3, 4, {5, 6}}}, 7, 8}

  1. Mathematica. Функции Inner и Outer работы со списками

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

Plus @@ MapThread [Times, {listl, list2}]

Функция Inner обобщает конструкцию. Вместо операций сло­жения и умножения можно указывать другие функции

gfunction @@ MapThread [ffunction, {listb list2}]

Функция f function должна иметь два аргумента, количество аргументов функции gfunction определяет длина списков listi, list2. Общий вид функции

Inner [ffunction, expression!, expression, gfunction]

Она формирует список - результат действия функции ffunction на соот­ветствующие подвыражения первого уровня выражений expression^ ex­pression, и затем меняет голову List на голову gfunction. Если послед­ний аргумент не задан, по умолчанию головой результата является Plus. Выражения expression^ expression не обязательно должны быть списка­ми, но головы выражений, а также количество их подвыражений первого уровня должны совпадать.

Функция Outer [function, listi, list2, head] применяет функцию func­tion ко всем элементам прямого (декартова) произведения списков и воз­вращает выражение с головой head. Если четвертый аргумент не указан, вычисленное выражение - список.

Outer[f, {а, Ь}, {х, у, z}]

{{f [а, х] , f[a, у], f [a, z]}, {f [b, x] , f [b, y] , f [b, z]}}

  1. Mathematica. Функции семейства Nest и Fold

  1. Mathematica. Механизм нижних значений

  1. Mathematica. Механизм верхних значений

  1. Mathematica. Как определяются глобальные правила преобразований

  1. Mathematica. Функции семейства Replace

  1. Mathematica. Локальные правила преобразований

  1. Mathematica. Укажите не менее девяти атрибутов, которые можно присвоить функции

  1. Считывается введенная строковая информация.

  2. К введенному тексту применяется функция $PreRead.

  3. Выдается синтаксическое сообщение-предупреждение, если это необ­ходимо.

  4. В случае наличия синтаксической ошибки применяется функция $SyntaxHandler. Если эта функция возвращает $Failed, обработка вы­ражения прекращается.

  5. Формируется объект InString[n], представляющий текстовую форму n-ной входной ячейки. Далее управление передается Ядру:

  1. Применяется функция rе, обрабатывающая каждое входное выра­жение перед его вычислением.

  2. Создается объект In[n], представляющий п - ную входную строку в виде выражения.

  3. Вычисляется (эволюционирует) выражение.

  4. Применяется функция $Post, обрабатывающая выражение после его вычисления.

10.Создается объект Out[n], представляющий вычисленное выражение.

Снова попадаем в Блокнот:

11.Применяется функция $PrePrint, обрабатывающая вычисленное вы­ражение перед его помещением в выходную ячейку. 12.Создается объект MessageList[n].

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

14.Счетчик $Line, указывающий номер текущей выходной ячейки, уве­личивается на единицу при вычислении одного выражения.

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