Удаление элементов выражения. Другие манипуляции с выражениями.
Иногда возникает необходимость в удалении части выражения. Для этого используются следующие функции:
- 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, и, разумеется, попробовать свои собственные примеры.