我需要创建完全符号矩阵,sympy
中是否有现成的函数? ?
例如,如果我要手动创建一个 2x2 矩阵,我会这样做
from sympy import *
a00, a01, a10, a11 = symbols('a00 a01 a10 a11')
A = Matrix([[a00, a01],[a10, a11]])
问题是我在模拟之前不知道尺寸,并且当尺寸变高时,手动创建每个符号会很快变老。理想情况下,我希望能够使用
A=Matrix(10,10)
创建一个 10x10 矩阵与 A[0,0]=Symbol('A00')
, 等等。此外,如果上述方法可行,那么能够批量替换也非常好。例如,我想要类似
some_equation.subs([(A,numpy.random.rand(2,2))])
的东西
最佳答案
您可以使用 subs
方法来进行替换。
In [5]: A = MatrixSymbol('A', 2, 2)
In [6]: B = MatrixSymbol('B', 2, 2)
In [7]: C = A*B
In [8]: C.subs({A: Matrix([[0, 1], [1, 0]]), B: Matrix([[2, 3], [4, 5]])})
Out[8]:
Matrix([
[0, 1],
[1, 0]])*Matrix([
[2, 3],
[4, 5]])
您的
MatrixSymbol
可能需要符号维度对象。
关于python - 如何创建符号矩阵并用sympy批量替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32961422/