2015-12-03 40 views
1

我正在尋找一種可能性來指定取決於變量的矩陣量。對於標量的作品如下,使用未定義功能:矩陣在SymPy中定義未定義的函數

from sympy import * 
x = Function('f')(t) 
diff(x,t) 

矩陣符號像

x = MatrixSymbol('x',3,3) 

我無法找到一個等效。有

i,j = Symbols('i j') 
x = FunctionMatrix(6,1,Lambda((i,j),f)) 

但這不是我需要的,因爲你需要指定矩陣的內容。上下文是我有方程 應該及時派生幷包含矩陣值元素。 我無法逐個處理矩陣的元素。

謝謝!

+0

我沒有看到這樣的事情。可能最接近的是'FunctionMatrix'。我認爲你可以通過繼承'MatrixExpr'來創建你自己的。拉請求將其添加到SymPy是受歡迎的。 – asmeurer

回答

0

我不知道你想要什麼,但我想你想用微元素的矩陣。在這種情況下,看看這是否適合你。

與功能的元素創建一個矩陣:

X = sym.FunctionMatrix(6,1,lambda i,j:sym.Function("x_%d%d" % (i,j))(t)) 
M = sym.Matrix(X) 
M.diff(t) 

這導致

Matrix([ 
[Derivative(x_00(t), t)], 
[Derivative(x_10(t), t)], 
[Derivative(x_20(t), t)], 
[Derivative(x_30(t), t)], 
[Derivative(x_40(t), t)], 
[Derivative(x_50(t), t)]]) 

然後,您可以根據需要更換的東西。

另外,如果您使用之前的表達式填充矩陣,可能會更喜歡區分。將它們留作未定義的函數可能會使您更難以在替換後進行簡化。