不能通过直接使用表达式来指定Maple函数,只能通过引用输出

时间:2016-09-13 19:46:34

标签: maple

为什么这不适用于分配函数:

F(t) := Matrix(matrixDE(A, t)[1])

使用标签引用输出时:

Matrix(matrixDE(A, t)[1])      (1)
F1(t) := (1)

matrixDE(A, t)[1]              (2)
F2(t) := Matrix((2))

似乎索引操作[1]是造成问题的原因,但我不明白这背后的机制。

我发现了这个question,但它并没有让我更聪明......

修改

我最终使用eval

获得了预期的效果
F(x) := eval(Matrix(matrixDE(A, t)[1]), t = x)

付出的代价是F的参数被命名为x而不是t

1 个答案:

答案 0 :(得分:1)

问题与索引无关。问题正是你在标题中所说的:你不能(正确地)通过直接使用(无代值)表达式来分配Maple函数;相反,你必须引用输出(或评估)。

更具体地说,它取决于这两个操作的所需顺序:参数化表达式的评估和参数值的替换。如果您想首先使用符号参数(在这种情况下 t )评估表达式,那么要使用的命令是 unapply

F:= unapply(Matrix(matrixDE(A, t)[1]), t);