При выполнении математических преобразований часто необходимо произвести замену переменных в выражении, функции, уравнении и т.д., то есть вместо какой-то переменной подставить ее представление через некоторые другие переменные. А иногда необходимо выполнить преобразование выражения одного типа в другой. (Такое преобразование типов может потребоваться для выполнения некоторых команд, не работающих с исходным тиом выражения). Для этих целей в Maple существует несколько команд:
subs(подстановка, ВЫРАЖЕНИЕ) | Синтаксическая подстановка одного выражения вместо другого в ВЫРАЖЕНИЕ |
algsubs(подстановка, ВЫРАЖЕНИЕ) | Алгебраическая подстановка одного выражения вместо другого в ВЫРАЖЕНИЕ |
subsop(N=новое значение, ВЫРАЖЕНИЕ) | Подстановка нового значения вместо N-го операнда ВЫРАЖЕНИЯ |
convert(ВЫРАЖЕНИЕ, тип) | Преобразует ВЫРАЖЕНИЕ в новый тип данных |
whattype(ВЫРАЖЕНИЕ) | Определяет тип выражения. |
Для подстановки вместо некоторой переменной (выражения) другого выражения служит команда subs(), синтаксис которой имеет следующий вид:
subs(старое выражение=новое выражение, ВЫРАЖЕНИЕ)
subs(s1, s2,.. sn, ВЫРАЖЕНИЕ)
subs([s1, s2,.. sn], ВЫРАЖЕНИЕ)
где каждое из s1,..sn является уравнением, определяющим подстановку.
Первая форма команды анализирует ВЫРАЖЕНИЕ, определяет в нем все вхождения старое выражение и подставляет вместо них новое выражение.
Вторая форма команды позволяет выполнить серию подстановок в ВЫРАЖЕНИЕ, причем подстановки выполняются последовательно, начиная с s1. Это означает, что после выполнения первой подстановки, определенной s1, Maple отыскивает вхождения левой части уравнения s2 во вновь полученном выражении и заменяет каждое такое вхождение на выражение, заданное в правой части уравнения s2.
Третья форма команды содержит подстановки в виде множества или списка. Эти подстановки выполняются ОДНОВРЕМЕННО, а не последовательно, как в предыдущем варианте команды. |
То есть вхождения выражений, заданных в левых частях уравнений s1, s2, определяются в исходном параметре ВЫРАЖЕНИЕ. (см. примеры)
Команда subs() осуществляет так называемую "синтаксическую подстановку", т.е. замена в ВЫРАЖЕНИИпроисходит только тогда, когда левая часть уравнения подстановки совпадает с одним из операндов в структурном представлении ВЫРАЖЕНИЯ. В примере слева команда subs() не подставила в выражение s3 вместо s2 выражение 1-с2. Для осуществления подстановки можно воспользоваться несколькими способами:
|
- Воспользоваться командой simplify(), указав в качестве параметра требуемую замену (см. след раздел).
- Воспользоваться командой algsubs(), которая осуществляет алгебраическую подстановку.
Отметим, что полное исключение "старой" переменной произведено только при использовании первого из указанных способов. В остальных случаях "старая" переменная все-таки остается в преобразованном выражении.
Если известно, какой операнд выражения необходимо заменить, то следует использовать команду subsop() со следующим синтаксисом: subsop(s1, s2,.. sn, ВЫРАЖЕНИЕ) где s1, s2,.. sn представляют собой уравнения вида N_i=замена_i, в которых N_i - номер операнда в ВЫРАЖЕНИИ. На месте N_i может стоять список, в котором целые числа представляют порядковые номера операндов ПОСЛЕДУЮЩИХ уровней в структуре выражения (0 используется для имени функции). |
Преобразовать выражение в другой тип можно командой convert(ВЫРАЖЕНИЕ, новый тип). Преобразование типов в Maple имеет некоторые ограничения, т.е. нельзя преобразовать выражение произвольного типа в выражение другого типа, который поддерживается системой аналитических вычислений. Все допустимые преобразования типов можно посмотреть в справке по команде convert(). |