首页 文章

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

提问于
浏览
1

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

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

    我不确定你想要什么,但我认为你想要制作一个具有差异元素的矩阵 . 在这种情况下,看看这是否适合你 .

    创建一个包含函数元素的矩阵:

    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)]])
    

    然后你可以根据需要更换东西 .

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

相关问题