у) Если атом, не упомянутый выше или subscripted-индексированная переменная
или subscripted-индексированное выражение дано как аргумент, это вычисляется и если
результат есть уравнение или присвоение, то выделенное закрепление или замена
выполняются. Если результат есть список, тогда члены списка рассматриваются, как
будто они были дополнительными аргументами, данными ev. Это разрешает списку
уравнений быть данными (например [X=1, Y=A ** 2]) или список имен уравнений
(например, [%t1, %t2], где %t1 и %t2 - уравнения), которые возвращают решение.
Аргументы ev могут быть даны в любом порядке, за исключением уравнений
substitution-замены, которые обработываются в последовательности, слева направо, и
функции вычисляются, которые составлены, например, ev(expr, ratsimp,
realpart), обрабатываясь как realpart (ratsimp (expr)).
Функции simp, numer, float и pred переключаются так, чтобы быть локальными в
блоке, или глобальными в Maxima так, чтобы они остались в силе до того, чтобы быть
перезагруженными.
Если expr есть canonical rational expression (CRE) — канонические рациональные
выражения, то выражение возвращается функцией ev также как CRE, если numer и
float выключатели не оба верны одновременно.
2. В течение шага (1), список делается из неиндексированных переменных,
появляющихся на левой стороне уравнений в аргументах или в значениях некоторых
аргументов, если значение - уравнение. Переменные (индексированные переменные,
которые не имеют функций ассоциированых массивов так же как неиндексированные
переменные) в выражении expr заменены их глобальными значениями, за исключением
тех, которые появляются в этом списке. Обычно, expr - только метка или % (как в %i2 в
примере ниже), таким образом этот шаг просто восстанавливает выражение, названное
меткой, так, чтобы ev мог воздействовать на это.
3. Если какие-нибудь замены обозначены аргументами, они выполняются теперь.
4. Получающееся выражение тогда перевычисляется (если один из аргументов не
был noeval), и упрощается согласно аргументам. Заметьте, что любые запросы функции
в expr будут выполнены после того, как переменные в нем вычислены и что ev(F(x))
таким образом может вести себя как F(ev (x)).
5. Для каждого случая вычисления в аргументах повторяются шаги (3) и (4).
Примеры:
(%i1) sin(x) + cos(y) + (w+1)^2 + 'diff (sin(w), w);
(%o1)
cos ysin x' diff sinw , w ,1w1
2
(%i2) ev (%, sin, expand, diff, x=2, y=1);
(%o2)
cos w w
2
2∗wcos11.909297426825682
Выше альтернативный уровень синтаксиса был предусмотрен для ev, посредством
чего можно только набрать его аргументы без ev(). Таким образом, можно написать
просто
expr, arg_1, ..., arg_n
Этот синтаксис не разрешен как часть другого выражения, например, в функциях,
блоках, и т.д.
Обратите внимание на параллельный обязательный процесс в следующем
примере:
(%i1) sin(x) + cos(y) + (w+1)^2 + 'diff (sin(w), w);
(%o1) cos(y)+sin(x)+'diff(sin(w),w,1)+(w+1)^2
(%i2) ev (%, sin, expand, diff, x=2, y=1);
10