我尝试结交朋友物理包和矩阵。但我遇到了困难。更具体地说,考虑一下代码:
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;
为什么p0,pp,pm只能变为一个变量x1?
有趣的是枫子明白了 the next matrix
为什么只有一个变量?
答案 0 :(得分:0)
在这种情况下,查阅文档通常很有用。在Coordinates的帮助页面中,您会看到“坐标命令还为大写字母X设置别名以表示坐标列表...”所以:您键入X并自动扩展为x1,x2, x3,x4,而这个变量序列显示为单个X.但是,当你定义一个过程时,如在pt:= proc(X).... end proc,X你看到只有一个虚拟表示(只有一个)过程的参数。
这回答了你的问题:你看p0,pp,pm只作为一个变量的函数,因为pt被定义为只有一个变量的函数:当你执行pt(X)时,只有序列中的第一个元素,即使用x1,其他三个被丢弃。从上下文我明白你想要定义的是pt:= proc(x1,x2,x3,x4).... end proc。然后将它用作pt(X),您将看到p0,pp,pm作为四个变量的函数,而显示为作为单个大写X.
Edgardo S. Cheb-Terrab物理,微分方程和数学函数,Maplesoft。