python - 如何创建符号矩阵并用sympy批量替换?

标签 python numpy sympy python-3.5

我需要创建完全符号矩阵,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/

相关文章:

python - 恒速循环高精度信号采样

python - 比较 pandas/numpy 中的 NaN 列

python - C中如何判断一个内存页是否被mmaped

python - sin(y) 导致 "can' t 将表达式转换为 float"错误

python - sympy 类型错误 : can't convert expression to float

python-3.x - sympy 中具有可变指数的展开多项式

python - Django 记录器 - 正确输出到 stdout 和 stderr

python - Tkinter 绑定(bind)事件传递给函数而不是变量

python - 使用 numpy 从过滤、排序的数组返回索引

python - 在python中从数独难题中提取网格