2017-02-18 83 views
1

我嘗試交朋友物理包和矩陣。但我面臨困難。具體而言,考慮代碼:楓 - 物理封裝非常大的錯誤或矩陣

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

爲什麼只有一個變量?

回答

0

在這種情況下,查閱文檔通常很有用。在Coordinates的幫助頁面中,您閱讀「座標命令還設置大寫字母X的別名以表示座標列表...」所以:您鍵入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.

埃德加多·S.海布-Terrab

物理學,微分方程和數學函數,Maplesoft。