В Maple глобальное имя D
имеет предварительно назначенное значение. Это дифференциальный оператор. Например,
f := t -> sec(t):
D(f);
t -> sec(t)*tan(t)
Глобальное имя D
также защищено , ie. Вы не можете присвоить ему другие значения.
И вообще, не рекомендуется использовать имя D
как фиктивную переменную в вашем коде (поскольку по умолчанию ей уже назначена системная процедура ). Ваш пример - (неудачный) пример странности, которая может произойти.
D * Vector([-3,1]);
Error, (in LinearAlgebra:-Multiply) invalid arguments
У вас есть несколько альтернатив:
1) Вместо этого используйте другое имя, например DD
.
2) Если ваша версия Maple является последней, вы можете объявить ее (один раз) как локальное имя для использования на верхнем уровне. Например,
restart;
local D;
D
D * Vector([-3,1]);
[-3 D]
[ ]
[ D ]
Если вы объявите local D
для использования на верхнем уровне, вы все равно можете использовать дифференциальный оператор по его глобальному имени :-D
. Например,
restart;
local D:
f := t -> sec(t):
D(f); # does nothing, since this is the local D
D(f)
:-D(f);
t -> sec(t)*tan(t)
Если все это звучит запутанно, вам, вероятно, лучше просто использовать другое имя.
Это всего лишь несколько коротких символов с предварительно назначенными значениями или использованиями, например , Pi
, I
, D
.
Возможно, вы захотите взглянуть на страницу справки по темам initialconstants и trydeclaringlocal .