首页 > 解决方案 > sympy 可以简化块矩阵表达式吗?

问题描述

考虑以下示例:(我尝试计算涉及块矩阵的矩阵乘积)

import sympy as sy

k, n = sy.symbols('k,n')
A = sy.MatrixSymbol("A", n, n)
B = sy.MatrixSymbol("B", n, k)
M = sy.BlockMatrix([[A * B, A]])
A.inverse() * M

这将输出

A^-1*Matrix([[A*B, A]])

有没有办法将其简化/扩展/取消为更易于阅读的形式Matrix([[B, I]])

标签: pythonsympysymbolic-math

解决方案


是的,使用将block_collapse块矩阵表达式评估到块级别的函数。

sy.block_collapse(A.inverse()*M)   

返回Matrix([[B, I]])


推荐阅读