Mathematica. Функции порождения списков

В системе существует несколько функций, порождающих списки: Range, Table, Array. Range[n]-порождает список {1, 2, …, n}

Range[m, n]- порождает список {m, m+1, …, m+ki}, причём m и n не обязательно целые и m+ki<n<m+(k+1)i. Если в Range заданы 3 аргумента, то последний определяет шаг порождения чисел, т.е. разность между последовательными элементами списка.

Table[expr, {n}]-порождает список из n элементов одного и того же значения expr. Table[expr, {i, n}]- порождает список из n значений выражения expr, отвечающих параметру i, изменяющемуся от 1 до n. Второй аргумент Table –итератор. Если {i, m, n}, то expr вычисляется начиная с i=m, если же итератор равен {i, m, n, di}, то di есть шаг по переменной i. В случае, когда указано несколько итераторов: Table[expr, {i, imin, imax}, {j, jmin, jmax}, …], порождаются вложенные списки.

Array[a, n] порождает список длины n с элементами a[i] для i=1, 2, …, n.Итератор в виде {n1, n2, …} приводит к вложенному списку с элементами a[i1, i2, …]. Array[a, iterarors, origin] даёт список, в котором индексы итераторов изменяются со значения origin, по умолчанию равному единице.

Mathematica. Функции добавления, извлечения, удаления элементов из списков.

Delete[list, k] удаляет k-ый элемент из list(другие опции аналогичны Insert)

Drop[list, k] удаляет k первых элементов из list(если вместо k-{m, n}, то с m-го по n-й)

Rest[list] убирает первый элемент списка

Part[list, k] извлекает k-ый элемент list(Esc[[Esc Esc]] Esc), если надо извлечь элемент из внутренних списков или из неатомарного элемента списка, то вместо k-k1, k2, …

Take[list, k] извлекает первых k элементов из list

First извлекает первый элемент из list

Last извлекает последний элемент из list

Mathematica. Операции над списками как над множествами.

Подвыражения первого уровня списка можно рассматривать как элементы некоторого множества. Система предоставляет функции, выполняющие операции над списками как над множествами.

Intersection[list1, list2, ..., listn]возвращает упорядоченный список элементов множества, являющегося пересечением множеств элементов указанных списков.

Complement[list, list1, list2, ..., listk]дает список элементов, содержащихся в list, но не содержащихся ни в одном из listi, i=1,...,k

Join[list1, list2, ..., listk]соединяет элементы указанных списков в один список, который не сортируется

Union[list1, list2, ..., listk]возвращает упорядоченный список - объединение множеств listi i=1,...,k

Mathematica. Изменение структуры списка.

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

Partition [list,n] -разбивает список на подсписки длины n;

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

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

FlattenAt[list,position] -поднимает на первый уровень выражения, стоящие на указанных позициях position

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

Функция Innerвыполняет операцию обобщенного скалярного произведения. При вычислении скалярного произведения векторов используется операции умножения соответствующих координат векторов и суммирование полученных произведений. Общий вид Inner[f_function,expr1,expr2,g_function].Она формирует список - результат действия функции f_function на соответствующее подвыражение первого уровня выражений expr1, expr2 и затем меняет голову List на g_function. Пример: Inner[Times,a+b,x+y,Power] - (ax)^by

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

Наши рекомендации