Проект . Функции и выражения в Maple

Я полагаю, что искушенные пользователи Maple имеют представление о разнице между выражением и функцией, но на всякий случай считаю нужным обсудить это здесь.

Большинство процедур Maple использует и выдает в качестве значений не функции (отображения, зависимости между переменными, как бы эти переменные не назывались), а выражения (содержащие переменные с вполне определенными именами).

Функции, в действительности, используются в Maple редко. К сожалению, в help'е пакета авторы, с присущей школьникам (и алгебраистам) беззаботностью, часто называют выражения функциями, что затрудняет понимание. Вслед за ними эту путаницу допускает и автор книги [3] (см. примеры).

Эту разницу, при необходимости, можно уяснить, разобрав предлагаемые здесь вопросы и ответы на них.

 

Q. Maple-функция piecewise создает выражение или функцию?

A. Выражение типа piecewise.

 

Q. x(t) – это функция или выражение?

A. Это выражение, значение которого является значением функции x при значении аргумента, равного t. Однако, это значение может быть функцией какого-то другого аргумента.

 

Q. Что в Maple подвергается интегрированию и интегральным преобразованиям Лапласа, Фурье и т.д.?

A. Нет, не функции, а выражения, содержащие некоторую переменную, по которой и совершается интегрирование.

Q. Если x – функция одного аргумента, то int(x(s), s = 0..t) представляет собой выражение или функцию?

A. Выражение, содержащее переменную t. Если мы хотели получить функцию, нам следовало написать
func := t -> int(x(s), s = 0..t);

 

Q. Как получить значение функции x в точке 1/2?

A. x(1/2);

Q. Как подставить значение t = 1/2 в выражение x?

A. subs(t = 1/2, x)

 

Q. x(t) и x(s) – это одно и то же или нет?

A. Нет, это разные выражения. Однако, они равны, если переменным t и s было присвоено одно и то же значение.
А функция одна и та же в любом случае!

 

Q. Что будет выведено на экран в результате выполнения следующих двух последовательностей команд? Они довольно часто встречаются в практике программирования итерационных процессов.
   Для выражений:    Для функций:
f := t:
f_old := f:
f := t^2:
f - f_old;
f := t -> t:
f_old := f:
f := t -> t^2:
f(t) - f_old(t);

A. В версии Maple V R4 в первом случае получается , а во втором – 0. Что наводит на очень глубокие мысли о возможных источниках ошибок.

У Вас другая, более совершенная версия? – Тогда проверьте сами.

 

Q. Пусть X – выражение и
x := t -> X:
Если в выражение x(t) подставить s вместо t:
subs(t=s, x(t)):
то получится ли то же, что и x(s)?
А что получится, если в x(t) подставить t вместо s:
subs(s=t, x(t)):?

A. Это для вашего самостоятельного размышления. Главное, чтобы был понят вопрос!