枫树 - 物理包中的非常大的错误或矩阵

maple - very big error or matrixes in physics package

我试着交朋友物理包和矩阵。但我面临着困难。更具体的,考虑一个代码:

with(Physics)

Setup(mathematicalnotation = true)

Coordinates(X)

Setup(tensors = A[mu](X))

PDEtools:-declare(A(X), p0(X), pm(X), pp(X), pt(X), U(X), m5(X))

然后我创建一个矩阵:

pt := proc (X) options operator, arrow; Matrix(2, 2, [[p0(X), sqrt(2)*pp(X)], [sqrt(2)*pm(X), -p0(X)]]) end proc;

NULL;

It displays as

为什么p0,pp,pm变成只有一个变量x1的函数?

有趣的是枫树懂 the next matrix

为什么只有一个变量?

在这种情况下,查阅文档通常很有用。在 Coordinates 的帮助页面中,您阅读 "The Coordinates command also sets an alias for a capital letter X to represent a list of coordinates ..." 因此:您键入 X 并自动扩展为 x1、x2、x3、x4,同时显示此变量序列 作为单个 X。但是,当您定义过程时,如 pt := proc(X) .... end proc,您看到的 X 只是一个代表(只有一个)过程参数的虚拟对象。

这回答了您的问题:您将 p0、pp、pm 视为仅一个变量的函数,因为 pt 被定义为仅一个变量的函数:当您仅执行序列中的第一个元素时,即 x1,被使用,其他三个被丢弃。从上下文我知道你想要定义的是 pt := proc(x1, x2, x3, x4) .... end proc。然后用它作为 pt(X) 你会看到 p0, pp, pm 作为四个变量的函数,依次 显示 作为单个大写 X.

Edgardo S. Cheb-Terrab

物理学、微分方程和数学函数,Maplesoft。