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

Sympy中非方阵系数提取:如何获取(a+b)作为c的系数

解决Sympy中提取非方阵矩阵表达式系数的问题

首先修正代码中的错误:原代码里b的符号名误写为a,导致a和b指向同一个矩阵符号,需改为:

from sympy import MatrixSymbol, diff, Matrix, factor

a = MatrixSymbol('a', 1, 4)
b = MatrixSymbol('b', 1, 4)  # 修正符号名
c = MatrixSymbol('c', 4, 1)

expr = a*c + b*c

方法一:利用偏导数提取系数

由于expr是关于c元素的线性表达式,系数矩阵的每个元素对应expr对c对应元素的偏导数:

# 对c的每个元素求偏导,组成1x4的系数矩阵
c_coeff = Matrix([[diff(expr[0, 0], c[i, 0]) for i in range(4)]])

执行后c_coeff即为a + b,这是最可靠的方法,不受矩阵形状限制。

方法二:因式分解直接提取

如果Sympy支持矩阵乘法的因式分解,可通过factor方法直接拆分表达式:

factored_expr = factor(expr)
c_coeff = factored_expr.args[0]

此方法依赖Sympy对矩阵符号运算的因式分解支持,适合简单的线性组合场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 03:31:22