Matrix在SymPy中定义了未定义的函数

时间:2015-12-03 10:09:02

标签: matrix sympy

我正在寻找指定依赖于变量的矩阵量的可能性。对于按以下方式工作的标量,使用未定义的函数:

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

对于像

这样的Matrix符号
x = MatrixSymbol('x',3,3)

我找不到相应的东西。有

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

但这不是我需要的,因为你需要指定矩阵的内容。上下文是我有方程式 它应该及时导出并包含矩阵值元素。 我无法逐一处理矩阵的元素。

谢谢!

1 个答案:

答案 0 :(得分: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)]])

然后您可以根据需要更换内容。

此外,如果在区分之前使用所需的表达式填充矩阵,则可能更为可取。将它们保留为未定义的函数可能会使您在替换后更难以简化。