You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用SymPy将符号矩阵分解为矩阵之和

分解SymPy符号矩阵为基矩阵乘积之和

这里提供一个通用方法,能把任意规模的SymPy符号矩阵分解为「元素×对应位置单位基矩阵」的项列表,也能直接得到求和形式:

import sympy as sp

def decompose_matrix(M):
    rows, cols = M.shape
    terms = []
    for i in range(rows):
        for j in range(cols):
            # 创建仅(i,j)位置为1的零矩阵
            base_matrix = sp.Matrix.zeros(rows, cols)
            base_matrix[i, j] = 1
            terms.append(M[i, j] * base_matrix)
    return terms

# 测试示例
a, b, c, d = sp.symbols('a b c d')
M = sp.Matrix([[a, b], [c, d]])

# 获取乘积项列表
decomposed_terms = decompose_matrix(M)
print(decomposed_terms)
# 输出:[a*Matrix([[1, 0], [0, 0]]), b*Matrix([[0, 1], [0, 0]]), c*Matrix([[0, 0], [1, 0]]), d*Matrix([[0, 0], [0, 1]])]

# 验证求和结果等于原矩阵
print(sum(decomposed_terms) == M)  # 输出 True

关键说明

  • 这个函数不需要提前知道矩阵的具体元素或规模,完全通用
  • 对于你实际使用的元素为复杂符号函数的矩阵,直接传入即可,逻辑完全适用
  • 若需要求和形式,直接对返回的decomposed_terms列表调用sum()函数

内容的提问来源于stack exchange,提问作者lzcostademoraes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 08:03:39