python - 在 SymPy 中自动填充矩阵元素

标签 python sympy

有没有一种方法可以按照如下规则在 SymPy 中隐式定义符号矩阵的元素:symbol 后跟矩阵中的 subindices(或数字对)

例如,我想定义一个名为 M 的 3 x 2 矩阵,我希望 SymPy 自动创建它并将其填充为:

M = 
[ M_11 M_12]
[ M_21 M_22]
[ M_31 M_32]

如果没有办法隐式执行此操作,那么显式执行此操作(例如循环)的最简单方法是什么?

最佳答案

考虑使用 MatrixSymbol 而不是 Matrix 对象。 MatrixSymbol 表示不需要显式元素的矩阵。

In [1]: M = MatrixSymbol('M', 3, 2)

In [2]: M  # Just an expression
Out[2]: M

In [3]: Matrix(M)  # Turn it into an explicit matrix if you desire
Out[3]: 
⎡M₀₀  M₀₁⎤
⎢        ⎥
⎢M₁₀  M₁₁⎥
⎢        ⎥
⎣M₂₀  M₂₁⎦


In [4]: M.T * M   # Still just an expression
Out[4]: 
 T  
M ⋅M

In [5]: Matrix(M.T * M)  # Fully evaluate
Out[5]: 
⎡       2      2      2                                  ⎤
⎢    M₀₀  + M₁₀  + M₂₀        M₀₀⋅M₀₁ + M₁₀⋅M₁₁ + M₂₀⋅M₂₁⎥
⎢                                                        ⎥
⎢                                    2      2      2     ⎥
⎣M₀₁⋅M₀₀ + M₁₁⋅M₁₀ + M₂₁⋅M₂₀      M₀₁  + M₁₁  + M₂₁      ⎦

关于python - 在 SymPy 中自动填充矩阵元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6877061/

相关文章:

python - 将没有主键的 CSV 导入现有表

python - Sympy Eq() 行为和 Sympy 一般用法

python - 用于特殊渲染的 sympy 符号命名约定的文档?

python - 系数应为整数 : sympy diophantine equations

python - 总结字典的值(value)

python - 有没有办法在 Python 2.7 或 numpy 中将图像数据保存为列表/数组?

python - 使用多个命令行参数的 az cli run-command 调用失败

python - 在类中键入提示

Python SymPy : Error while solving inequality

python - sympy 中的多元泰勒近似