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

Удаление элементов выражения. Другие манипуляции с выражениями.

Иногда возникает необходимость в удалении части выражения. Для этого используются следующие функции:

  • Delete [expr, n] – удаляет элемент в позиции п в выражении ехрг. Если п отрицательно, позиция отсчитывается с конца;
  • Deletefexpr, (i, j,…}] – стирает часть выражения в позиции {i, j,…};
  • Delete [expr, {{i1, j1,…}, {i2, j2,…},…}] – удаляет части выражения в нескольких указанных позициях;
  • DeleteCases [expr, pattern] – удаляет все элементы выражения expr, которые совпадают с образцом pattern;
  • DeleteCases[expr, pattern, levspec] – удаляет все части выражения ехрг на уровнях, указанных levspec и соответствующих образцу pattern.

Следующие примеры иллюстрируют применение этих функций.

Ввод (In) Вывод (Out)
ехрr = а * b + с – d ab + с – d
Delete [expr, 1] c-d
Delete [expr, 3] ab+ с
Delete [expr, {{!}, {3}}] с
DeleteCases [expr, а*b] c-d
DeleteCases [expr, с, 1] ab-d

Обратите внимание на то, что в общем случае выражения могут быть многоуровневыми. Уровень задается спецификацией levspec.

Другие манипуляции с выражениями

В процессе преобразования выражений с ними возможны и иные манипуляции. Наиболее важные из них выполняются следующими функциями:

  • Append [expr, elem] – возвращает ехрг с дополнением elem;
  • AppendTo [s, elem] – добавляет elem к значению s и присваивает s новое значение;
  • Apply [f, expr, levelspec] – возвращает ехрг, замещая заголовки в тех частях ехрг, которые указаны спецификацией уровня levelspec;
  • Cancel [expr] – возвращает ехрг с сокращением общих множителей числителя и знаменателя;
  • Cases [expr, pattern, levelspec] – возвращает список всех частей выражения expr на уровнях, указанных спецификацией levelspec, которые соответствуют шаблону pattern;
  • Chop [expr] – присваивает значение 0 тем приближенным вещественным числам в выражении expr, абсолютные величины которых меньше 10-10;
  • Chop [expr, tol ] – присваивает значение 0 тем приближенным вещественным числам в выражении expr, абсолютные величины которых меньше tol;
  • Replace [expr, rules] – возвращает expr с подстановкой, заданной правилом или списком правил rules;
  • ReplaceAll – используется в виде expr / .rules и возвращает expr с подстановками, заданными правилом или списком правил rules;
  • ReplacePart [expr, new, n] – возвращает выражение, в котором п-я часть expr заменена на new;
  • ReplacePart [expr, new, {i, j,…}] – заменяет на new часть в позиции {i, j,…};
  • ReplacePart [expr, new, {{il, jl,…}, {i2, j 2,…},…}] – заменяет на new части в нескольких позициях выражения;
  • ReplaceRepeated – применяется в виде expr // .rules и неоднократно выполняет замещения до тех пор, пока expr не перестанет изменяться.

Действие этих функций достаточно очевидно и поясняется следующими примерами.

Ввод (In) Вывод (Out)
Append [a + с, b] a+ b+ с
х = {а, b, с} {a, b, c}
AppendTo [ х, 15 ] {a, b, c, 15}
x {a, b, c, 15}
Apply[f, аА 2 + b^ 2, 2] f[a, 2] +f[b, 2]
Cancel [(z-1)^ 2/ (z – 1) ] -1 + Z
Cases[{a, 3.5, 2, 5, "HELLO"}, _Integer] {2, 5}
Exp[N[-лI]] -1. -1. 22461 x 10-16 I
Chop[%] -1.
Ехр[N[-лI]] -1. -1. 22461 x1016 I
Chop[%, 1*10^-10] -1.
Replace[s^ 2, s^ 2 › a] a
s^2 / .s › a a2

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

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.